Re: [PATCH v2 6/8] fs: remove no_llseek

From: Jason A. Donenfeld
Date: Sat Jun 25 2022 - 17:53:14 EST


Hi Christoph,

On Sat, Jun 25, 2022 at 06:10:02AM -0700, Christoph Hellwig wrote:
> On Sat, Jun 25, 2022 at 01:01:13PM +0200, 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.
>
> Shouldn't this and the checks for no_llseek simply be merged into patch
> 2?

I'd done that at first, but Al had suggested it be a separate commit in
<https://lore.kernel.org/lkml/YrYxOC5dgCKBHwVE@ZenIV/>, when he mentions
"next commit would", so I did how he asked.

>
> > + if ((file->f_mode & FMODE_LSEEK) && file->f_op->llseek)
> > + return file->f_op->llseek(file, offset, whence);
> > + return -ESPIPE;
>
> No function change, but in general checking for the error condition
> in the branch tends to be more readable. i.e.:
>
> if (!(file->f_mode & FMODE_LSEEK) || !file->f_op->llseek)
> return -ESPIPE;
> return file->f_op->llseek(file, offset, whence);
>

I thought about this kind of reverse: what is the acceptable condition
in which one may call ->llseek? Easier to express it that way than in
the inverse. But if you really want, I can change it around if there's a
v3 with other changes (which at the moment doesn't seem like there's
going to be).

Jason