summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2024-04-02 12:11:35 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-04-10 17:36:00 +0300
commit0fdada1ef5b10ea73bf618d0498723c7860b5be9 (patch)
treeb6311ac9ccff24322ce8574d165a3eaccc4cde02 /lib
parent0f28afed9f9d71a3f97df94b9691ac49f49ec887 (diff)
downloadlinux-0fdada1ef5b10ea73bf618d0498723c7860b5be9.tar.xz
cifs: Fix caching to try to do open O_WRONLY as rdwr on server
[ Upstream commit e9e62243a3e2322cf639f653a0b0a88a76446ce7 ] When we're engaged in local caching of a cifs filesystem, we cannot perform caching of a partially written cache granule unless we can read the rest of the granule. This can result in unexpected access errors being reported to the user. Fix this by the following: if a file is opened O_WRONLY locally, but the mount was given the "-o fsc" flag, try first opening the remote file with GENERIC_READ|GENERIC_WRITE and if that returns -EACCES, try dropping the GENERIC_READ and doing the open again. If that last succeeds, invalidate the cache for that file as for O_DIRECT. Fixes: 70431bfd825d ("cifs: Support fscache indexing rewrite") Signed-off-by: David Howells <dhowells@redhat.com> cc: Steve French <sfrench@samba.org> cc: Shyam Prasad N <nspmangalore@gmail.com> cc: Rohith Surabattula <rohiths.msft@gmail.com> cc: Jeff Layton <jlayton@kernel.org> cc: linux-cifs@vger.kernel.org cc: netfs@lists.linux.dev cc: linux-fsdevel@vger.kernel.org Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions