On Wed, Aug 28, 2024 at 09:45:31AM -0400, Chuck Lever wrote: > On Wed, Aug 28, 2024 at 03:02:42PM +1000, NeilBrown wrote: > > On Wed, 28 Aug 2024, cel@xxxxxxxxxx wrote: > > > From: Chuck Lever <chuck.lever@xxxxxxxxxx> > > > > > > Currently, fh_verify() makes some daring assumptions about which > > > version of file handle the caller wants, based on the things it can > > > find in the passed-in rqstp. The about-to-be-introduced LOCALIO use > > > case sometimes has no svc_rqst context, so this logic won't work in > > > that case. > > > > > > Instead, examine the passed-in file handle. It's .max_size field > > > should carry information to allow nfsd_set_fh_dentry() to initialize > > > the file handle appropriately. > > > > > > lockd appears to be the only kernel consumer that does not set the > > > file handle .max_size when during initialization. > > > > > > write_filehandle() is the other question mark, as it looks possible > > > to specify a maxsize between NFS_FHSIZE and NFS3_FHSIZE here. > > > > The file handle used by lockd and the one created by write_filehandle > > never need any of the version-specific fields. > > Those fields affect things like write requests and getattr requests and > > pre/post attributes. > > Then we could simply drop the "case 0:" arm and maybe the lockd hunk > from this patch. OK, will do.