summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-04-01export generic_perform_write(), start getting rid of generic_file_buffer_write()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01generic_file_direct_write(): get rid of ppos argumentAl Viro
always equal to &iocb->ki_pos. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01btrfs_file_aio_write(): get rid of pposAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01kill the 5th argument of generic_file_buffered_write()Al Viro
same story - it's &iocb->ki_pos in all cases Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01kill the 4th argument of __generic_file_aio_write()Al Viro
It's always equal to &iocb->ki_pos, where iocb is the value of the 1st argument. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01lustre: don't open-code kernel_recvmsg()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01ocfs2: don't open-code kernel_recvmsg()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01drbd: don't open-code kernel_recvmsg()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01constify blk_rq_map_user_iov() and friendsAl Viro
sg_iovec array passed to it can be const Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01lustre: switch to kernel_sendmsg()Al Viro
(casts are due to misannotations in lustre; it uses iovec where kvec would be correct type; too much noise to properly annotate right now). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01ocfs2: don't open-code kernel_sendmsg()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01take iov_iter stuff to mm/iov_iter.cAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01process_vm_access: tidy up a bitAl Viro
saner variable names, update linuxdoc comments, etc. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01process_vm_access: don't bother with returning the amounts of bytes copiedAl Viro
we can calculate that in the caller just fine, TYVM Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01process_vm_rw_pages(): pass accurate amount of bytesAl Viro
... makes passing the amount of pages unnecessary Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01process_vm_access: take get_user_pages/put_pages one level upAl Viro
... and trim the fuck out of process_vm_rw_pages() argument list. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01process_vm_access: switch to copy_page_to_iter/iov_iter_copy_from_userAl Viro
... rather than open-coding those. As a side benefit, we get much saner loop calling those; we can just feed entire pages, instead of the "copy would span the iovec boundary, let's do it in two loop iterations" mess. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01process_vm_access: switch to iov_iterAl Viro
instead of keeping its pieces in separate variables and passing pointers to all of them... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01untangling process_vm_..., part 4Al Viro
instead of passing vector size (by value) and index (by reference), pass the number of elements remaining. That's all we care about in these functions by that point. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01untangling process_vm_..., part 3Al Viro
lift iov one more level out - from process_vm_rw_single_vec to process_vm_rw_core(). Same story as with the previous commit. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01untangling process_vm_..., part 2Al Viro
move iov to caller's stack frame; the value we assign to it on the next call of process_vm_rw_pages() is equal to the value it had when the last time we were leaving process_vm_rw_pages(). drop lvec argument of process_vm_rw_pages() - it's not used anymore. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01untangling process_vm_..., part 1Al Viro
we want to massage it to use of iov_iter. This one is an equivalent transformation - just introduce a local variable mirroring lvec + *lvec_current. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01read_code(): go through vfs_read() instead of calling the method directlyAl Viro
... and don't skip on sanity checks. It's *not* a hot path, TYVM (a couple of calls per a.out execve(), for pity sake) and headers of random a.out binary are not to be trusted. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01fold cifs_iovec_read() into its (only) callerAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01cifs_iovec_read: keep iov_iter between the calls of cifs_readdata_to_iov()Al Viro
... we are doing them on adjacent parts of file, so what happens is that each subsequent call works to rebuild the iov_iter to exact state it had been abandoned in by previous one. Just keep it through the entire cifs_iovec_read(). And use copy_page_to_iter() instead of doing kmap/copy_to_user/kunmap manually... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01switch vmsplice_to_user() to copy_page_to_iter()Al Viro
I've switched the sanity checks on iovec to rw_copy_check_uvector(); we might need to do a local analog, if any behaviour differences are not actually bugfixes here... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01switch pipe_read() to copy_page_to_iter()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01cifs_iovec_read(): resubmit shouldn't restart the loopAl Viro
... by that point the request we'd just resent is in the head of the list anyway. Just return to the beginning of the loop body... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01introduce copy_page_to_iter, kill loop over iovec in generic_file_aio_read()Al Viro
generic_file_aio_read() was looping over the target iovec, with loop over (source) pages nested inside that. Just set an iov_iter up and pass *that* to do_generic_file_aio_read(). With copy_page_to_iter() doing all work of mapping and copying a page to iovec and advancing iov_iter. Switch shmem_file_aio_read() to the same and kill file_read_actor(), while we are at it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01iov_iter: Move iov_iter to uio.hKent Overstreet
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
2014-04-01do_shmem_file_read(): call file_read_actor() directlyAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01callers of iov_copy_from_user_atomic() don't need pagecache_disable()Al Viro
... it does that itself (via kmap_atomic()) Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01switch ->is_partially_uptodate() to saner argumentsAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01pipe: kill ->map() and ->unmap()Al Viro
all pipe_buffer_operations have the same instances of those... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01fuse/dev: use atomic mapsAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01VFS: Make delayed_free() call free_vfsmnt()David Howells
Make delayed_free() call free_vfsmnt() so that we don't have two functions doing the same job. This requires the calls to mnt_free_id() in free_vfsmnt() to be moved into the callers of that function. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01mn10300: kmap_atomic() returns void *, not unsigned long...Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01cifs: ->rename() without ->lookup() makes no senseAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01get rid of pointless checks for NULL ->i_opAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01ntfs: don't put NULL into ->i_op/->i_fopAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01new helper: readlink_copy()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01lustre: generic_readlink() is just fine there, TYVM...Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01get rid of files_defer_init()Al Viro
the only thing it's doing these days is calculation of upper limit for fs.nr_open sysctl and that can be done statically Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01namei.c: move EXPORT_SYMBOL to corresponding definitionsAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01get_write_access() is inlined, exporting it is pointlessAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01tidy do_dentry_open() up a bitAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01mark struct file that had write access grabbed by open()Al Viro
new flag in ->f_mode - FMODE_WRITER. Set by do_dentry_open() in case when it has grabbed write access, checked by __fput() to decide whether it wants to drop the sucker. Allows to stop bothering with mnt_clone_write() in alloc_file(), along with fewer special_file() checks. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01fold __get_file_write_access() into its only callerAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01get rid of DEBUG_WRITECOUNTAl Viro
it only makes control flow in __fput() and friends more convoluted. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-04-01don't bother with {get,put}_write_access() on non-regular filesAl Viro
it's pointless and actually leads to wrong behaviour in at least one moderately convoluted case (pipe(), close one end, try to get to another via /proc/*/fd and run into ETXTBUSY). Cc: stable@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>