mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
nfsd: fix crash on LOCKT on reexported NFSv3
Unlike other filesystems, NFSv3 tries to use fl_file in the GETLK case. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
bb0a55bb71
commit
0bcc7ca40b
@ -7043,8 +7043,7 @@ out:
|
||||
/*
|
||||
* The NFSv4 spec allows a client to do a LOCKT without holding an OPEN,
|
||||
* so we do a temporary open here just to get an open file to pass to
|
||||
* vfs_test_lock. (Arguably perhaps test_lock should be done with an
|
||||
* inode operation.)
|
||||
* vfs_test_lock.
|
||||
*/
|
||||
static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock)
|
||||
{
|
||||
@ -7059,7 +7058,9 @@ static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct
|
||||
NFSD_MAY_READ));
|
||||
if (err)
|
||||
goto out;
|
||||
lock->fl_file = nf->nf_file;
|
||||
err = nfserrno(vfs_test_lock(nf->nf_file, lock));
|
||||
lock->fl_file = NULL;
|
||||
out:
|
||||
fh_unlock(fhp);
|
||||
nfsd_file_put(nf);
|
||||
|
Loading…
Reference in New Issue
Block a user