OSDN Git Service

CIFS: Fix read after write for files with read caching
authorPavel Shilovsky <piastryyy@gmail.com>
Tue, 5 Mar 2019 01:48:01 +0000 (17:48 -0800)
committerSteve French <stfrench@microsoft.com>
Wed, 6 Mar 2019 00:10:51 +0000 (18:10 -0600)
commit6dfbd84684700cb58b34e8602c01c12f3d2595c8
treed543bce68a9221a4f9dcfce5953973320b118777
parent96281b9e46ebb90cefa8b57b11ca40e5ac05f649
CIFS: Fix read after write for files with read caching

When we have a READ lease for a file and have just issued a write
operation to the server we need to purge the cache and set oplock/lease
level to NONE to avoid reading stale data. Currently we do that
only if a write operation succedeed thus not covering cases when
a request was sent to the server but a negative error code was
returned later for some other reasons (e.g. -EIOCBQUEUED or -EINTR).
Fix this by turning off caching regardless of the error code being
returned.

The patches fixes generic tests 075 and 112 from the xfs-tests.

Cc: <stable@vger.kernel.org>
Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
fs/cifs/file.c