Hi, everyone, This patch series contains all of the non-BTRFS changes that I've made as a part of implementing swap file support on BTRFS. The BTRFS parts of that series (https://lkml.org/lkml/2014/12/9/718) are still undergoing development, and the non-BTRFS changes now outnumber those within BTRFS, so it'll probably work best to get these in separately. Long story short, the generic swap file infrastructure introduced for swap-over-NFS isn't quite ready for other clients without making some changes. Before I forget, this patch series was built against cbfe0de in Linus' tree (to avoid conflicts with the recent iov_iter work). Patches 1 and 2 fix an issue with NFS and the swap file infrastructure not following the direct_IO locking conventions, leading to locking issues for anyone else trying to use the interface (discussed here: https://lkml.org/lkml/2014/12/12/677). Patch 3 removes the ITER_BVEC flag from the rw argument passed to direct_IO, as many, but not all, direct_IO implementations expect either rw == READ or rw == WRITE. The lack of documentation about what's correct here is probably going to break something at some point, but that's another conversation. Patch 4 adds iov_iter_bvec for swap_writepage, the upcoming swap_readpage change, and splice. Patches 5 and 6 are preparation for patch 7, teaching the VFS and NFS to handle ITER_BVEC reads. Patch 7 is the biggest change in the series: it changes swap_readpage to proxy through ->direct_IO rather than ->readpage. Using readpage for a swapcache page requires all sorts of messy workarounds (see here for context: https://lkml.org/lkml/2014/11/19/46). Patch 8 updates the documentation accordingly. Thanks! Omar Sandoval (8): nfs: follow direct I/O write locking convention swap: lock i_mutex for swap_writepage direct_IO swap: don't add ITER_BVEC flag to direct_IO rw iov_iter: add iov_iter_bvec and convert callers direct-io: don't dirty ITER_BVEC pages on read nfs: don't dirty ITER_BVEC pages read through direct I/O swap: use direct I/O for SWP_FILE swap_readpage vfs: update swap_{,de}activate documentation Documentation/filesystems/Locking | 7 +++--- Documentation/filesystems/vfs.txt | 7 +++--- fs/direct-io.c | 8 ++++--- fs/nfs/direct.c | 17 ++++++++------- fs/nfs/file.c | 8 +++++-- fs/splice.c | 7 ++---- include/linux/uio.h | 2 ++ mm/iov_iter.c | 12 +++++++++++ mm/page_io.c | 45 ++++++++++++++++++++++++++++----------- 9 files changed, 76 insertions(+), 37 deletions(-) -- 2.1.3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>