linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] clean up and generalize swap-over-NFS
@ 2014-12-15  5:26 Omar Sandoval
  2014-12-15  5:26 ` [PATCH 1/8] nfs: follow direct I/O write locking convention Omar Sandoval
                   ` (7 more replies)
  0 siblings, 8 replies; 30+ messages in thread
From: Omar Sandoval @ 2014-12-15  5:26 UTC (permalink / raw)
  To: Alexander Viro, Andrew Morton, Trond Myklebust,
	Christoph Hellwig, David Sterba, linux-fsdevel, linux-mm,
	linux-nfs, linux-kernel
  Cc: Omar Sandoval

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


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2014-12-23  9:37 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-15  5:26 [PATCH 0/8] clean up and generalize swap-over-NFS Omar Sandoval
2014-12-15  5:26 ` [PATCH 1/8] nfs: follow direct I/O write locking convention Omar Sandoval
2014-12-15 12:49   ` Trond Myklebust
2014-12-15 15:42     ` Omar Sandoval
2014-12-15  5:26 ` [PATCH 2/8] swap: lock i_mutex for swap_writepage direct_IO Omar Sandoval
2014-12-15 16:27   ` Jan Kara
2014-12-15 16:56     ` Christoph Hellwig
2014-12-15 22:11       ` Omar Sandoval
2014-12-16  8:35         ` Christoph Hellwig
2014-12-16  8:56           ` Omar Sandoval
2014-12-17  8:06             ` Christoph Hellwig
2014-12-17  8:20               ` Al Viro
2014-12-17  8:24                 ` Christoph Hellwig
2014-12-17 14:58                   ` Omar Sandoval
2014-12-17 18:52                     ` Christoph Hellwig
2014-12-17 22:03                       ` Al Viro
2014-12-19  6:24                         ` Omar Sandoval
2014-12-19  6:28                           ` Al Viro
2014-12-20  6:51       ` Al Viro
2014-12-22  7:26         ` Omar Sandoval
2014-12-23  9:37         ` Christoph Hellwig
2014-12-15  5:26 ` [PATCH 3/8] swap: don't add ITER_BVEC flag to direct_IO rw Omar Sandoval
2014-12-15  6:16   ` Al Viro
2014-12-15 15:57     ` Omar Sandoval
2014-12-15  5:26 ` [PATCH 4/8] iov_iter: add iov_iter_bvec and convert callers Omar Sandoval
2014-12-15  5:26 ` [PATCH 5/8] direct-io: don't dirty ITER_BVEC pages on read Omar Sandoval
2014-12-15  5:27 ` [PATCH 6/8] nfs: don't dirty ITER_BVEC pages read through direct I/O Omar Sandoval
2014-12-15  6:17   ` Al Viro
2014-12-15  5:27 ` [PATCH 7/8] swap: use direct I/O for SWP_FILE swap_readpage Omar Sandoval
2014-12-15  5:27 ` [PATCH 8/8] vfs: update swap_{,de}activate documentation Omar Sandoval

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).