Re: [PATCH 5/5] CIFS: Fix write after setting a read lock for read oplock files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/11/27 Steve French <smfrench@xxxxxxxxx>:
> Am curious how you noticed this problem?  Did you have a test case?

The test case that reproduces the problem:
1) client1 opens "filename" (file that already has enough data ~~ 4096
bytes is ok)
2) client1 sets a read lock a file from pos=1 to pos=2
3) client2 opens "filename" - client1 gets oplock break to level II
and push lock from #2 to the server.
4) client1 writes 'a' to a file (from pos 0) - got status OK, but the
server reject the write (due to the client1 writes the whole page from
pos=0 to pos=4096 and conflicts with the read lock from pos=1 to
pos=2) - ERROR.
5) client2 reads 1 byte and got the old data (not 'a') because the
server returns it's version of the data

It is suitable for both CIFS and SMB2.

-- 
Best regards,
Pavel Shilovsky.
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux