mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 23:51:39 +00:00
[PATCH] nfsd4_lock() returns bogus values to clients
missing nfserrno() in default case of a switch by return value of posix_lock_file(); as the result we send negative host-endian to clients that expect positive network-endian, preferably mentioned in RFC... BTW, that case is not impossible - posix_lock_file() can return -ENOLCK and we do not handle that one explicitly. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
de1ae286f8
commit
7fcd53303d
@ -2761,7 +2761,10 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock
|
|||||||
goto conflicting_lock;
|
goto conflicting_lock;
|
||||||
case (EDEADLK):
|
case (EDEADLK):
|
||||||
status = nfserr_deadlock;
|
status = nfserr_deadlock;
|
||||||
|
dprintk("NFSD: nfsd4_lock: posix_lock_file() failed! status %d\n",status);
|
||||||
|
goto out;
|
||||||
default:
|
default:
|
||||||
|
status = nfserrno(status);
|
||||||
dprintk("NFSD: nfsd4_lock: posix_lock_file() failed! status %d\n",status);
|
dprintk("NFSD: nfsd4_lock: posix_lock_file() failed! status %d\n",status);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user