From: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> The main issue is allowing support on 2 stage writes (i.e. unstable WRITE followed by a COMMIT) since those don't follow the current assumption that the 'dropbehind' flag can be fulfilled as soon as the writeback lock is dropped. v2: - Make use of the new iocb parameter for nfs_write_begin() v3: - Set/clear PG_DROPBEHIND on the head of the nfs_page group - Simplify helper folio_end_dropbehind v4: - Replace filemap_end_dropbehind_write() with folio_end_dropbehind() - Add a helper to replace folio_end_writeback with an equivalent that does not attempt to interpret the dropbehind flag - Keep the folio dropbehind flag set until the NFS client is ready to call folio_end_dropbehind. - Don't try to do a read-modify-write in nfs_write_begin() if the folio has the dropbehind flag set. v5: - Change helper function export types to EXPORT_SYMBOL_GPL Trond Myklebust (3): filemap: Add a helper for filesystems implementing dropbehind filemap: Add a version of folio_end_writeback that ignores dropbehind NFS: Enable use of the RWF_DONTCACHE flag on the NFS client fs/nfs/file.c | 9 +++++---- fs/nfs/nfs4file.c | 1 + fs/nfs/write.c | 4 +++- include/linux/pagemap.h | 2 ++ mm/filemap.c | 34 ++++++++++++++++++++++++++-------- 5 files changed, 37 insertions(+), 13 deletions(-) -- 2.51.0