From: Linus Torvalds Date: Sat, 18 Apr 2015 21:45:30 +0000 (-0400) Subject: Merge tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel... X-Git-Tag: Ubuntu-snapdragon-4.4.0-1050.54~8332 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=dba94f2155f581395ef9608418778e3491b3d470;p=mirror_ubuntu-artful-kernel.git Merge tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs Pull 9pfs updates from Eric Van Hensbergen: "Some accumulated cleanup patches for kerneldoc and unused variables as well as some lock bug fixes and adding privateport option for RDMA" * tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs: net/9p: add a privport option for RDMA transport. fs/9p: Initialize status in v9fs_file_do_lock. net/9p: Initialize opts->privport as it should be. net/9p: use memcpy() instead of snprintf() in p9_mount_tag_show() 9p: use unsigned integers for nwqid/count 9p: do not crash on unknown lock status code 9p: fix error handling in v9fs_file_do_lock 9p: remove unused variable in p9_fd_create() 9p: kerneldoc warning fixes --- dba94f2155f581395ef9608418778e3491b3d470 diff --cc fs/9p/vfs_addr.c index be35d05a4d0e,3672b16feac6..e9e04376c52c --- a/fs/9p/vfs_addr.c +++ b/fs/9p/vfs_addr.c @@@ -230,10 -241,9 +230,8 @@@ static int v9fs_launder_page(struct pag /** * v9fs_direct_IO - 9P address space operation for direct I/O - * @rw: direction (read or write) * @iocb: target I/O control block - * @iov: array of vectors that define I/O buffer * @pos: offset in file to begin the operation - * @nr_segs: size of iovec array * * The presence of v9fs_direct_IO() in the address space ops vector * allowes open() O_DIRECT flags which would have failed otherwise. diff --cc net/9p/protocol.c index e9d0f0c1a048,305e4789f2cc..16d287565987 --- a/net/9p/protocol.c +++ b/net/9p/protocol.c @@@ -439,13 -437,23 +439,13 @@@ p9pdu_vwritef(struct p9_fcall *pdu, in stbuf->extension, stbuf->n_uid, stbuf->n_gid, stbuf->n_muid); } break; - case 'D':{ - uint32_t count = va_arg(ap, uint32_t); - const void *data = va_arg(ap, const void *); - - errcode = p9pdu_writef(pdu, proto_version, "d", - count); - if (!errcode && pdu_write(pdu, data, count)) - errcode = -EFAULT; - } - break; - case 'U':{ + case 'V':{ - int32_t count = va_arg(ap, int32_t); + uint32_t count = va_arg(ap, uint32_t); - const char __user *udata = - va_arg(ap, const void __user *); + struct iov_iter *from = + va_arg(ap, struct iov_iter *); errcode = p9pdu_writef(pdu, proto_version, "d", count); - if (!errcode && pdu_write_u(pdu, udata, count)) + if (!errcode && pdu_write_u(pdu, from, count)) errcode = -EFAULT; } break;