Re: [PATCH 00/18] new API for FS_IOC_[GS]ETFLAGS/FS_IOC_FS[GS]ETXATTR

From: Matthew Wilcox
Date: Mon Feb 08 2021 - 09:18:18 EST


On Mon, Feb 08, 2021 at 09:25:22AM +0100, Miklos Szeredi wrote:
> On Mon, Feb 8, 2021 at 3:00 AM Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> >
> > On Wed, Feb 03, 2021 at 04:03:06PM +0100, Miklos Szeredi wrote:
> > > On Wed, Feb 3, 2021 at 3:56 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> > >
> > > > But let's talk specifics. What does CIFS need to contact the server for?
> > > > Could it be cached earlier?
> > >
> > > I don't understand what CIFS is doing, and I don't really care. This
> > > is the sort of operation where adding a couple of network roundtrips
> > > so that the client can obtain the credentials required to perform the
> > > operation doesn't really matter. We won't have thousands of chattr(1)
> > > calls per second.
> >
> > Incorrect.
>
> Okay, I was wrong.
>
> Still, CIFS may very well be able to perform these operations without
> a struct file. But even if it can't, I'd still only add the file
> pointer as an *optional hint* from the VFS, not as the primary object
> as Matthew suggested.
>
> I stand by my choice of /struct dentry/ as the object to pass to these
> operations.

Why the dentry? This is an inode operation. Why doesn't it take an
inode as its primary object?