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?