diff options
| author | Paulo Alcantara <pc@manguebit.org> | 2026-02-12 19:53:07 -0300 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2026-02-12 17:49:55 -0600 |
| commit | 4c91b67f87ac032c77650108ef9841772b9dc364 (patch) | |
| tree | 2dfd545596eb5279b9ec4ede0eb0d10e87af6896 /rust/alloc/collections/git@git.tavy.me:linux.git | |
| parent | 3774289f525cba0f33610a390bd6a28bb636b637 (diff) | |
smb: client: fix data corruption due to racy lease checks
Customer reported data corruption in some of their files. It turned
out the client would end up calling cacheless IO functions while
having RHW lease, bypassing the pagecache and then leaving gaps in the
file while writing to it. It was related to concurrent opens changing
the lease state while having writes in flight. Lease breaks and
re-opens due to reconnect could also cause same issue.
Fix this by serialising the lease updates with
cifsInodeInfo::open_file_lock. When handling oplock break, make sure
to use the downgraded oplock value rather than one in cifsInodeinfo as
it could be changed concurrently.
Reported-by: Frank Sorenson <sorenson@redhat.com>
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Reviewed-by: David Howells <dhowells@redhat.com>
Cc: linux-cifs@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'rust/alloc/collections/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
