> On Jul 14, 2022, at 1:12 PM, Jeff Layton <jlayton@xxxxxxxxxx> wrote: > > On Thu, 2022-07-14 at 16:47 +0000, Chuck Lever III wrote: >> >>> On Jul 14, 2022, at 11:28 AM, Jeff Layton <jlayton@xxxxxxxxxx> wrote: >>> >>> We'll need the nfs4_open to vet the filename. Change nfs4_set_delegation >>> to take the same arguments are nfs4_open_delegation. >> >> ^are^as >> >> Nit: Considering that in the next patch you change the synopsis of >> nfs4_open_delegation again but not nfs4_set_delegation, this >> description causes a little whiplash. >> >> > > Yeah, I should have squashed a couple of those together. I _did_ say it > was an RFC. I can resend a cleaned-up version later if you want to take > this in. I'm interested in Neil's thoughts about this approach, but I'm willing to run with it unless test results show a regression. >>> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> >>> --- >>> fs/nfsd/nfs4state.c | 8 +++++--- >>> 1 file changed, 5 insertions(+), 3 deletions(-) >>> >>> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c >>> index 4f81c0bbd27b..347794028c98 100644 >>> --- a/fs/nfsd/nfs4state.c >>> +++ b/fs/nfsd/nfs4state.c >>> @@ -5260,10 +5260,12 @@ static int nfsd4_check_conflicting_opens(struct nfs4_client *clp, >>> } >>> >>> static struct nfs4_delegation * >>> -nfs4_set_delegation(struct nfs4_client *clp, >>> - struct nfs4_file *fp, struct nfs4_clnt_odstate *odstate) >>> +nfs4_set_delegation(struct nfsd4_open *open, struct nfs4_ol_stateid *stp) >>> { >>> int status = 0; >>> + struct nfs4_client *clp = stp->st_stid.sc_client; >>> + struct nfs4_file *fp = stp->st_stid.sc_file; >>> + struct nfs4_clnt_odstate *odstate = stp->st_clnt_odstate; >>> struct nfs4_delegation *dp; >>> struct nfsd_file *nf; >>> struct file_lock *fl; >>> @@ -5405,7 +5407,7 @@ nfs4_open_delegation(struct nfsd4_open *open, struct nfs4_ol_stateid *stp) >>> default: >>> goto out_no_deleg; >>> } >>> - dp = nfs4_set_delegation(clp, stp->st_stid.sc_file, stp->st_clnt_odstate); >>> + dp = nfs4_set_delegation(open, stp); >>> if (IS_ERR(dp)) >>> goto out_no_deleg; >>> >>> -- >>> 2.36.1 >>> >> >> -- >> Chuck Lever >> >> >> > > -- > Jeff Layton <jlayton@xxxxxxxxxx> -- Chuck Lever