Commit f9bbe0c9 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'nfsd-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux

Pull nfsd fixes from Chuck Lever:

 - Fix an export leak

 - Fix a potential tracepoint crash

* tag 'nfsd-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
  nfsd: put the export reference in nfsd4_verify_deleg_dentry
  nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
parents e2559b79 50256e47
...@@ -1076,6 +1076,7 @@ nfsd_file_do_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp, ...@@ -1076,6 +1076,7 @@ nfsd_file_do_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp,
goto open_file; goto open_file;
nfsd_file_slab_free(&nf->nf_rcu); nfsd_file_slab_free(&nf->nf_rcu);
nf = NULL;
if (ret == -EEXIST) if (ret == -EEXIST)
goto retry; goto retry;
trace_nfsd_file_insert_err(rqstp, key.inode, may_flags, ret); trace_nfsd_file_insert_err(rqstp, key.inode, may_flags, ret);
......
...@@ -5382,6 +5382,7 @@ nfsd4_verify_deleg_dentry(struct nfsd4_open *open, struct nfs4_file *fp, ...@@ -5382,6 +5382,7 @@ nfsd4_verify_deleg_dentry(struct nfsd4_open *open, struct nfs4_file *fp,
if (err) if (err)
return -EAGAIN; return -EAGAIN;
exp_put(exp);
dput(child); dput(child);
if (child != file_dentry(fp->fi_deleg_file->nf_file)) if (child != file_dentry(fp->fi_deleg_file->nf_file))
return -EAGAIN; return -EAGAIN;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment