linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Kleikamp <dave.kleikamp@oracle.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Christoph Hellwig <hch@infradead.org>,
	LKML <linux-kernel@vger.kernel.org>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"Maxim V. Patlasov" <mpatlasov@parallels.com>,
	linux-aio@kvack.org, Kent Overstreet <kmo@daterainc.com>,
	Jens Axboe <axboe@kernel.dk>
Subject: [GIT PULL] direct IO support for loop driver
Date: Mon, 18 Nov 2013 13:03:43 -0600	[thread overview]
Message-ID: <528A648F.1030007@oracle.com> (raw)

Linus,

Please pull the following patches. They add the infrastructure for
kernel-initiated direct-io, change the loop driver to perform direct-io,
and change swap-over-nfs to use the new infrastructure.

These patches have been under development for a long time and have been
in linux-next since August. I'd have sent the request sooner, but I was
on vacation last week.

There are merge conflicts with several files, so I will follow up with
a merge patch.

The following changes since commit 1e52db6908ca5aa8e035caeaf96e8de2567fd84d:

  Merge tag 'vfio-v3.12-rc5' of git://github.com/awilliam/linux-vfio (2013-10-14 18:11:28 -0700)

are available in the git repository at:


  git://github.com/kleikamp/linux-shaggy.git tags/aio-direct-for-3.13

for you to fetch changes up to bb6f7be483180a9674f3d00b8e97e9b29b39d55d:

  tmpfs: add support for read_iter and write_iter (2013-10-18 10:56:54 -0500)

----------------------------------------------------------------
Allow the loop driver to perform direct IO to the underlying file system

----------------------------------------------------------------
Asias He (1):
      block_dev: add support for read_iter, write_iter

Dave Kleikamp (22):
      iov_iter: iov_iter_copy_from_user() should use non-atomic copy
      iov_iter: add __iovec_copy_to_user()
      fuse: convert fuse to use iov_iter_copy_[to|from]_user
      iov_iter: ii_iovec_copy_to_user should pre-fault user pages
      dio: Convert direct_IO to use iov_iter
      dio: add bio_vec support to __blockdev_direct_IO()
      aio: add aio_kernel_() interface
      aio: add aio support for iov_iter arguments
      fs: create file_readable() and file_writable() functions
      fs: use read_iter and write_iter rather than aio_read and aio_write
      fs: add read_iter and write_iter to several file systems
      ocfs2: add support for read_iter and write_iter
      ext4: add support for read_iter and write_iter
      nfs: add support for read_iter, write_iter
      nfs: simplify swap
      btrfs: add support for read_iter and write_iter
      xfs: add support for read_iter and write_iter
      gfs2: Convert aio_read/write ops to read/write_iter
      udf: convert file ops from aio_read/write to read/write_iter
      afs: add support for read_iter and write_iter
      ecrpytfs: Convert aio_read/write ops to read/write_iter
      ubifs: convert file ops from aio_read/write to read/write_iter

Hugh Dickins (1):
      tmpfs: add support for read_iter and write_iter

Zach Brown (9):
      iov_iter: move into its own file
      iov_iter: add copy_to_user support
      iov_iter: hide iovec details behind ops function pointers
      iov_iter: add bvec support
      iov_iter: add a shorten call
      iov_iter: let callers extract iovecs and bio_vecs
      fs: pull iov_iter use higher up the stack
      bio: add bvec_length(), like iov_length()
      loop: use aio to perform io on the underlying file

 Documentation/filesystems/Locking   |   6 +-
 Documentation/filesystems/vfs.txt   |  12 +-
 drivers/block/loop.c                | 158 +++++++++----
 drivers/char/raw.c                  |   4 +-
 drivers/mtd/nand/nandsim.c          |   4 +-
 drivers/usb/gadget/storage_common.c |   4 +-
 fs/9p/vfs_addr.c                    |  12 +-
 fs/9p/vfs_file.c                    |   8 +-
 fs/Makefile                         |   2 +-
 fs/adfs/file.c                      |   4 +-
 fs/affs/file.c                      |   4 +-
 fs/afs/file.c                       |   4 +-
 fs/afs/internal.h                   |   3 +-
 fs/afs/write.c                      |   9 +-
 fs/aio.c                            | 136 ++++++++++-
 fs/bad_inode.c                      |  14 ++
 fs/bfs/file.c                       |   4 +-
 fs/block_dev.c                      |  27 ++-
 fs/btrfs/file.c                     |  42 ++--
 fs/btrfs/inode.c                    |  63 +++---
 fs/ceph/addr.c                      |   3 +-
 fs/cifs/file.c                      |   4 +-
 fs/direct-io.c                      | 223 +++++++++++++------
 fs/ecryptfs/file.c                  |  15 +-
 fs/exofs/file.c                     |   4 +-
 fs/ext2/file.c                      |   4 +-
 fs/ext2/inode.c                     |   8 +-
 fs/ext3/file.c                      |   4 +-
 fs/ext3/inode.c                     |  15 +-
 fs/ext4/ext4.h                      |   3 +-
 fs/ext4/file.c                      |  34 +--
 fs/ext4/indirect.c                  |  16 +-
 fs/ext4/inode.c                     |  23 +-
 fs/f2fs/data.c                      |   4 +-
 fs/f2fs/file.c                      |   4 +-
 fs/fat/file.c                       |   4 +-
 fs/fat/inode.c                      |  10 +-
 fs/fuse/cuse.c                      |  10 +-
 fs/fuse/file.c                      |  90 ++++----
 fs/fuse/fuse_i.h                    |   5 +-
 fs/gfs2/aops.c                      |   7 +-
 fs/gfs2/file.c                      |  21 +-
 fs/hfs/inode.c                      |  11 +-
 fs/hfsplus/inode.c                  |  10 +-
 fs/hostfs/hostfs_kern.c             |   4 +-
 fs/hpfs/file.c                      |   4 +-
 fs/internal.h                       |   4 +
 fs/iov-iter.c                       | 411 ++++++++++++++++++++++++++++++++++
 fs/jffs2/file.c                     |   8 +-
 fs/jfs/file.c                       |   4 +-
 fs/jfs/inode.c                      |   7 +-
 fs/logfs/file.c                     |   4 +-
 fs/minix/file.c                     |   4 +-
 fs/nfs/direct.c                     | 301 ++++++++++++++++---------
 fs/nfs/file.c                       |  33 ++-
 fs/nfs/internal.h                   |   4 +-
 fs/nfs/nfs4file.c                   |   4 +-
 fs/nilfs2/file.c                    |   4 +-
 fs/nilfs2/inode.c                   |   8 +-
 fs/ocfs2/aops.c                     |   8 +-
 fs/ocfs2/aops.h                     |   2 +-
 fs/ocfs2/file.c                     |  55 ++---
 fs/ocfs2/ocfs2_trace.h              |   6 +-
 fs/omfs/file.c                      |   4 +-
 fs/ramfs/file-mmu.c                 |   4 +-
 fs/ramfs/file-nommu.c               |   4 +-
 fs/read_write.c                     |  78 +++++--
 fs/reiserfs/file.c                  |   4 +-
 fs/reiserfs/inode.c                 |   7 +-
 fs/romfs/mmap-nommu.c               |   2 +-
 fs/sysv/file.c                      |   4 +-
 fs/ubifs/file.c                     |  12 +-
 fs/udf/file.c                       |  13 +-
 fs/udf/inode.c                      |  10 +-
 fs/ufs/file.c                       |   4 +-
 fs/xfs/xfs_aops.c                   |  13 +-
 fs/xfs/xfs_file.c                   |  51 ++---
 include/linux/aio.h                 |  25 ++-
 include/linux/bio.h                 |   8 +
 include/linux/blk_types.h           |   2 -
 include/linux/fs.h                  | 165 ++++++++++++--
 include/linux/nfs_fs.h              |  13 +-
 include/uapi/linux/loop.h           |   1 +
 mm/filemap.c                        | 433 ++++++++++++++----------------------
 mm/page_io.c                        |  15 +-
 mm/shmem.c                          |  61 ++---
 86 files changed, 1857 insertions(+), 1003 deletions(-)
 create mode 100644 fs/iov-iter.c

--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

             reply	other threads:[~2013-11-18 19:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-18 19:03 Dave Kleikamp [this message]
2013-11-18 19:07 ` [GIT PULL] direct IO support for loop driver Dave Kleikamp
2013-11-20 21:19 ` Linus Torvalds
2013-11-20 21:38   ` Linus Torvalds
2013-11-20 21:50     ` Kent Overstreet
2013-11-20 22:46     ` Dave Kleikamp
2013-11-21  4:24       ` Stephen Rothwell
2013-11-21  9:58   ` Christoph Hellwig
2013-11-21 10:06     ` Kent Overstreet
2013-11-21 10:11       ` Christoph Hellwig
2013-11-21 10:13         ` Kent Overstreet
2013-11-21 17:34       ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=528A648F.1030007@oracle.com \
    --to=dave.kleikamp@oracle.com \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=kmo@daterainc.com \
    --cc=linux-aio@kvack.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpatlasov@parallels.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).