summaryrefslogtreecommitdiffstats
path: root/fs/cifs/transport.c
diff options
context:
space:
mode:
authorPavel Shilovsky <piastryyy@gmail.com>2019-02-13 15:43:08 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-03-23 20:09:56 +0100
commit3ed9f22e28dd3a2b18f65ee5442882ebded6413e (patch)
treefbd20d7db8fda64013973843c5e096c6f137ea45 /fs/cifs/transport.c
parent41e2d1c43c87512e6209b3aa2429056d45179065 (diff)
downloadlinux-stable-3ed9f22e28dd3a2b18f65ee5442882ebded6413e.tar.gz
linux-stable-3ed9f22e28dd3a2b18f65ee5442882ebded6413e.tar.bz2
linux-stable-3ed9f22e28dd3a2b18f65ee5442882ebded6413e.zip
CIFS: Do not reset lease state to NONE on lease break
commit 7b9b9edb49ad377b1e06abf14354c227e9ac4b06 upstream. Currently on lease break the client sets a caching level twice: when oplock is detected and when oplock is processed. While the 1st attempt sets the level to the value provided by the server, the 2nd one resets the level to None unconditionally. This happens because the oplock/lease processing code was changed to avoid races between page cache flushes and oplock breaks. The commit c11f1df5003d534 ("cifs: Wait for writebacks to complete before attempting write.") fixed the races for oplocks but didn't apply the same changes for leases resulting in overwriting the server granted value to None. Fix this by properly processing lease breaks. Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com> CC: Stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/cifs/transport.c')
0 files changed, 0 insertions, 0 deletions