summaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
authorOlga Kornievskaia <kolga@netapp.com>2021-03-09 09:41:14 -0500
committerChuck Lever <chuck.lever@oracle.com>2021-03-09 13:26:59 -0500
commit614c9750173e412663728215152cc6d12bcb3425 (patch)
tree7c9d3690167970186ee21ca503fe0db32d0badd0 /fs/nfsd
parent6ee65a773096ab3f39d9b00311ac983be5bdeb7c (diff)
downloadlinux-stable-614c9750173e412663728215152cc6d12bcb3425.tar.gz
linux-stable-614c9750173e412663728215152cc6d12bcb3425.tar.bz2
linux-stable-614c9750173e412663728215152cc6d12bcb3425.zip
NFSD: fix dest to src mount in inter-server COPY
A cleanup of the inter SSC copy needs to call fput() of the source file handle to make sure that file structure is freed as well as drop the reference on the superblock to unmount the source server. Fixes: 36e1e5ba90fb ("NFSD: Fix use-after-free warning when doing inter-server copy") Signed-off-by: Olga Kornievskaia <kolga@netapp.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Tested-by: Dai Ngo <dai.ngo@oracle.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/nfs4proc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index acdb3cd806a1..dd9f38d072dd 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -1302,7 +1302,7 @@ nfsd4_cleanup_inter_ssc(struct vfsmount *ss_mnt, struct nfsd_file *src,
struct nfsd_file *dst)
{
nfs42_ssc_close(src->nf_file);
- /* 'src' is freed by nfsd4_do_async_copy */
+ fput(src->nf_file);
nfsd_file_put(dst);
mntput(ss_mnt);
}