NFSD: fix dest to src mount in inter-server COPY
authorOlga Kornievskaia <kolga@netapp.com>
Tue, 9 Mar 2021 14:41:14 +0000 (09:41 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 9 Mar 2021 18:26:59 +0000 (13:26 -0500)
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>
fs/nfsd/nfs4proc.c

index acdb3cd806a1537da45f975b5f4ee528830b97e3..dd9f38d072dd6ecd04fe7aa92e24290e45dab1db 100644 (file)
@@ -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);
 }