02 Apr, 2014
40 commits
-
sg_iovec array passed to it can be const
Signed-off-by: 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
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
saner variable names, update linuxdoc comments, etc.
Signed-off-by: Al Viro
-
we can calculate that in the caller just fine, TYVM
Signed-off-by: Al Viro
-
... makes passing the amount of pages unnecessary
Signed-off-by: Al Viro
-
... and trim the fuck out of process_vm_rw_pages() argument list.
Signed-off-by: Al 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
-
instead of keeping its pieces in separate variables and passing
pointers to all of them...Signed-off-by: Al 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
-
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
-
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
-
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
-
... 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
-
Signed-off-by: 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
-
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
-
Signed-off-by: Al 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
-
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
-
Signed-off-by: Kent Overstreet
-
Signed-off-by: Al Viro
-
... it does that itself (via kmap_atomic())
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
all pipe_buffer_operations have the same instances of those...
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
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
Signed-off-by: Al Viro -
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: 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
staticallySigned-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: 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
-
Signed-off-by: Al Viro