diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-14 18:31:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-14 18:31:03 -0400 |
commit | ca2ec32658db160745990496f0f4580056a5dc9f (patch) | |
tree | d211f239219c85214da46dc1cbad4184a81d0248 /drivers/usb | |
parent | 6c8a53c9e6a151fffb07f8b4c34bd1e33dddd467 (diff) | |
parent | fdc81f45e9f57858da6351836507fbcf1b7583ee (diff) |
Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs update from Al Viro:
"Part one:
- struct filename-related cleanups
- saner iov_iter_init() replacements (and switching the syscalls to
use of those)
- ntfs switch to ->write_iter() (Anton)
- aio cleanups and splitting iocb into common and async parts
(Christoph)
- assorted fixes (me, bfields, Andrew Elble)
There's a lot more, including the completion of switchover to
->{read,write}_iter(), d_inode/d_backing_inode annotations, f_flags
race fixes, etc, but that goes after #for-davem merge. David has
pulled it, and once it's in I'll send the next vfs pull request"
* 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (35 commits)
sg_start_req(): use import_iovec()
sg_start_req(): make sure that there's not too many elements in iovec
blk_rq_map_user(): use import_single_range()
sg_io(): use import_iovec()
process_vm_access: switch to {compat_,}import_iovec()
switch keyctl_instantiate_key_common() to iov_iter
switch {compat_,}do_readv_writev() to {compat_,}import_iovec()
aio_setup_vectored_rw(): switch to {compat_,}import_iovec()
vmsplice_to_user(): switch to import_iovec()
kill aio_setup_single_vector()
aio: simplify arguments of aio_setup_..._rw()
aio: lift iov_iter_init() into aio_setup_..._rw()
lift iov_iter into {compat_,}do_readv_writev()
NFS: fix BUG() crash in notify_change() with patch to chown_common()
dcache: return -ESTALE not -EBUSY on distributed fs race
NTFS: Version 2.1.32 - Update file write from aio_write to write_iter.
VFS: Add iov_iter_fault_in_multipages_readable()
drop bogus check in file_open_root()
switch security_inode_getattr() to struct path *
constify tomoyo_realpath_from_path()
...
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 6 | ||||
-rw-r--r-- | drivers/usb/gadget/legacy/inode.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 175c9956cbe3..a12315a78248 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/export.h> | 23 | #include <linux/export.h> |
24 | #include <linux/hid.h> | 24 | #include <linux/hid.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/uio.h> | ||
26 | #include <asm/unaligned.h> | 27 | #include <asm/unaligned.h> |
27 | 28 | ||
28 | #include <linux/usb/composite.h> | 29 | #include <linux/usb/composite.h> |
@@ -655,9 +656,10 @@ static void ffs_user_copy_worker(struct work_struct *work) | |||
655 | unuse_mm(io_data->mm); | 656 | unuse_mm(io_data->mm); |
656 | } | 657 | } |
657 | 658 | ||
658 | aio_complete(io_data->kiocb, ret, ret); | 659 | io_data->kiocb->ki_complete(io_data->kiocb, ret, ret); |
659 | 660 | ||
660 | if (io_data->ffs->ffs_eventfd && !io_data->kiocb->ki_eventfd) | 661 | if (io_data->ffs->ffs_eventfd && |
662 | !(io_data->kiocb->ki_flags & IOCB_EVENTFD)) | ||
661 | eventfd_signal(io_data->ffs->ffs_eventfd, 1); | 663 | eventfd_signal(io_data->ffs->ffs_eventfd, 1); |
662 | 664 | ||
663 | usb_ep_free_request(io_data->ep, io_data->req); | 665 | usb_ep_free_request(io_data->ep, io_data->req); |
diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c index 200f9a584064..662ef2c1c62b 100644 --- a/drivers/usb/gadget/legacy/inode.c +++ b/drivers/usb/gadget/legacy/inode.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/poll.h> | 26 | #include <linux/poll.h> |
27 | #include <linux/mmu_context.h> | 27 | #include <linux/mmu_context.h> |
28 | #include <linux/aio.h> | 28 | #include <linux/aio.h> |
29 | #include <linux/uio.h> | ||
29 | 30 | ||
30 | #include <linux/device.h> | 31 | #include <linux/device.h> |
31 | #include <linux/moduleparam.h> | 32 | #include <linux/moduleparam.h> |
@@ -469,7 +470,7 @@ static void ep_user_copy_worker(struct work_struct *work) | |||
469 | ret = -EFAULT; | 470 | ret = -EFAULT; |
470 | 471 | ||
471 | /* completing the iocb can drop the ctx and mm, don't touch mm after */ | 472 | /* completing the iocb can drop the ctx and mm, don't touch mm after */ |
472 | aio_complete(iocb, ret, ret); | 473 | iocb->ki_complete(iocb, ret, ret); |
473 | 474 | ||
474 | kfree(priv->buf); | 475 | kfree(priv->buf); |
475 | kfree(priv->to_free); | 476 | kfree(priv->to_free); |
@@ -497,7 +498,8 @@ static void ep_aio_complete(struct usb_ep *ep, struct usb_request *req) | |||
497 | kfree(priv); | 498 | kfree(priv); |
498 | iocb->private = NULL; | 499 | iocb->private = NULL; |
499 | /* aio_complete() reports bytes-transferred _and_ faults */ | 500 | /* aio_complete() reports bytes-transferred _and_ faults */ |
500 | aio_complete(iocb, req->actual ? req->actual : req->status, | 501 | |
502 | iocb->ki_complete(iocb, req->actual ? req->actual : req->status, | ||
501 | req->status); | 503 | req->status); |
502 | } else { | 504 | } else { |
503 | /* ep_copy_to_user() won't report both; we hide some faults */ | 505 | /* ep_copy_to_user() won't report both; we hide some faults */ |