]> git.baikalelectronics.ru Git - kernel.git/commit
cifs: Implement cache I/O by accessing the cache directly
authorDavid Howells <dhowells@redhat.com>
Thu, 27 Jan 2022 16:02:58 +0000 (16:02 +0000)
committerSteve French <stfrench@microsoft.com>
Tue, 1 Feb 2022 16:29:18 +0000 (10:29 -0600)
commitc29d5b413824a6a0ed9fca9f9f46a0331ff14512
tree83086393333773940fbdac71557aca27d17c66d2
parent01d7eff03c01df9561719499fc956a25c45e1d3f
cifs: Implement cache I/O by accessing the cache directly

Move cifs to using fscache DIO API instead of the old upstream I/O API as
that has been removed.  This is a stopgap solution as the intention is that
at sometime in the future, the cache will move to using larger blocks and
won't be able to store individual pages in order to deal with the potential
for data corruption due to the backing filesystem being able insert/remove
bridging blocks of zeros into its extent list[1].

cifs then reads and writes cache pages synchronously and one page at a time.

The preferred change would be to use the netfs lib, but the new I/O API can
be used directly.  It's just that as the cache now needs to track data for
itself, caching blocks may exceed page size...

This code is somewhat borrowed from my "fallback I/O" patchset[2].

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Steve French <smfrench@gmail.com>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: linux-cifs@vger.kernel.org
cc: linux-cachefs@redhat.com
Link: https://lore.kernel.org/r/YO17ZNOcq+9PajfQ@mit.edu
Link: https://lore.kernel.org/r/202112100957.2oEDT20W-lkp@intel.com/
Acked-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/file.c
fs/cifs/fscache.c
fs/cifs/fscache.h