Commit f55ac56d authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull vfs fixes (try two) from Al Viro:
 "nfsd performance regression fix + seq_file lseek(2) fix"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  seq_file: always update file->f_pos in seq_lseek()
  nfsd regression since delayed fput()
parents 4208c471 05e16745
...@@ -297,7 +297,7 @@ void flush_delayed_fput(void) ...@@ -297,7 +297,7 @@ void flush_delayed_fput(void)
delayed_fput(NULL); delayed_fput(NULL);
} }
static DECLARE_WORK(delayed_fput_work, delayed_fput); static DECLARE_DELAYED_WORK(delayed_fput_work, delayed_fput);
void fput(struct file *file) void fput(struct file *file)
{ {
...@@ -317,7 +317,7 @@ void fput(struct file *file) ...@@ -317,7 +317,7 @@ void fput(struct file *file)
} }
if (llist_add(&file->f_u.fu_llist, &delayed_fput_list)) if (llist_add(&file->f_u.fu_llist, &delayed_fput_list))
schedule_work(&delayed_fput_work); schedule_delayed_work(&delayed_fput_work, 1);
} }
} }
......
...@@ -328,6 +328,8 @@ loff_t seq_lseek(struct file *file, loff_t offset, int whence) ...@@ -328,6 +328,8 @@ loff_t seq_lseek(struct file *file, loff_t offset, int whence)
m->read_pos = offset; m->read_pos = offset;
retval = file->f_pos = offset; retval = file->f_pos = offset;
} }
} else {
file->f_pos = offset;
} }
} }
file->f_version = m->version; file->f_version = m->version;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment