Messages in this thread | | | Date | Thu, 30 Jun 2022 15:50:41 +0200 | From | "Jason A. Donenfeld" <> | Subject | Re: [PATCH v3 5/7] fs: remove no_llseek |
| |
Hi Nikolay,
On Thu, Jun 30, 2022 at 09:45:04AM +0300, Nikolay Borisov wrote: > > > On 29.06.22 г. 16:07 ч., Jason A. Donenfeld wrote: > > Now that all callers of ->llseek are going through vfs_llseek(), we > > don't gain anything by keeping no_llseek around. Nothing compares it or > > calls it. > > > > Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> > > --- > > fs/read_write.c | 17 +++-------------- > > include/linux/fs.h | 1 - > > 2 files changed, 3 insertions(+), 15 deletions(-) > > > > diff --git a/fs/read_write.c b/fs/read_write.c > > index b1b1cdfee9d3..69cd8d72d91e 100644 > > --- a/fs/read_write.c > > +++ b/fs/read_write.c > > @@ -227,12 +227,6 @@ loff_t noop_llseek(struct file *file, loff_t offset, int whence) > > } > > EXPORT_SYMBOL(noop_llseek); > > > > -loff_t no_llseek(struct file *file, loff_t offset, int whence) > > -{ > > - return -ESPIPE; > > -} > > -EXPORT_SYMBOL(no_llseek); > > - > > loff_t default_llseek(struct file *file, loff_t offset, int whence) > > { > > struct inode *inode = file_inode(file); > > @@ -290,14 +284,9 @@ EXPORT_SYMBOL(default_llseek); > > > > loff_t vfs_llseek(struct file *file, loff_t offset, int whence) > > { > > - loff_t (*fn)(struct file *, loff_t, int); > > - > > - fn = no_llseek; > > - if (file->f_mode & FMODE_LSEEK) { > > - if (file->f_op->llseek) > > - fn = file->f_op->llseek; > > - } > > - return fn(file, offset, whence); > > + if (!(file->f_mode & FMODE_LSEEK) || !file->f_op->llseek) > > Is it not sufficient here to just check for the presence of FMODE_LSEEK? > NULL llseek shall result in FMODE_LSEEK not being set when the file is > opened?
Yes, that's probably fine. I did this out of an abundance of caution, but I have a feeling Al might agree with you that useless is useless. I can send a v4 changing that.
Al, what do you think?
Jason
| |