[CIFS] Byte range unlock request to non-Unix server can unlock too much
authorJeff Layton <jlayton@redhat.com>
Fri, 24 Aug 2007 03:16:51 +0000 (03:16 +0000)
committerSteve French <sfrench@us.ibm.com>
Fri, 24 Aug 2007 03:16:51 +0000 (03:16 +0000)
commit39db810cb6c1e7d1f2e43ae38b437b7ee72fe815
tree049b895e905cddeec0580388b636ca965b90ec8a
parent95ba7362105646523ee712fd252ec2e34ccbec15
[CIFS] Byte range unlock request to non-Unix server can unlock too much

On a mount without posix extensions enabled, when an unlock request is
made, the client can release more than is intended. To reproduce, on a
CIFS mount without posix extensions enabled:

1) open file
2) do fcntl lock: start=0 len=1
3) do fcntl lock: start=2 len=1
4) do fcntl unlock: start=0 len=1

...on the unlock call the client sends an unlock request to the server
for both locks. The problem is a bad test in cifs_lock.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/CHANGES
fs/cifs/file.c