Commit Graph
100 Commits
Author SHA1 Message Date
Al Viro 1689c73a73 Fix off-by-one in __pipe_get_pages()
it actually worked only when requested area ended on the page boundary...

Reported-by: Marco Grassi <[email protected]>
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2016-10-11 10:40:01 -07:00
Al Viro 3873691e5a Merge remote-tracking branch 'ovl/rename2' into for-linus 2016-10-10 23:02:51 -04:00
Al Viro cd27e45504 [btrfs] fix check_direct_IO() for non-iovec iterators
looking for duplicate ->iov_base makes sense only for
iovec-backed iterators; for kvec-backed ones it's pointless,
for bvec-backed ones it's pointless and broken on 32bit (we
walk through an array of struct bio_vec accessing them as if
they were struct iovec; works by accident on 64bit, but on
32bit it'll blow up) and for pipe-backed ones it's pointless
and ends up oopsing.

Signed-off-by: Al Viro <[email protected]>
2016-10-10 13:58:16 -04:00
Al Viro b57332b410 constify iov_iter_count() and iter_is_iovec()
Signed-off-by: Al Viro <[email protected]>
2016-10-10 13:57:37 -04:00
Al Viro c3a6902404 fix ITER_PIPE interaction with direct_IO
by making sure we call iov_iter_advance() on original
iov_iter even if direct_IO (done on its copy) has returned 0.
It's a no-op for old iov_iter flavours and does the right thing
(== truncation of the stuff we'd allocated, but not filled) in
ITER_PIPE case.  Failures (e.g. -EIO) get caught and dealt with
by cleanup in generic_file_read_iter().

Signed-off-by: Al Viro <[email protected]>
2016-10-10 13:36:06 -04:00
Al Viro e55f1d1d13 Merge remote-tracking branch 'jk/vfs' into work.misc 2016-10-08 11:06:08 -04:00
Al Viro f334bcd94b Merge remote-tracking branch 'ovl/misc' into work.misc 2016-10-08 11:00:01 -04:00
Al Viro 73e8fb2d59 Merge branch 'work.const-qstr' into work.misc 2016-10-08 10:44:55 -04:00
Al Viro 33e09f0ee7 Merge branch 'work.iget' into work.misc 2016-10-08 10:44:37 -04:00
Al Viro 41fefa36be Merge remote-tracking branch 'fuse/xattr' into work.xattr 2016-10-07 20:10:55 -04:00
Al Viro bf02f5d2c0 Merge commit '2c563880ea' into work.xattr
pick xattr_handler conversion from lustre tree
2016-10-07 20:09:18 -04:00
Al Viro c531716785 proc: switch auxv to use of __mem_open()
Signed-off-by: Al Viro <[email protected]>
2016-10-05 18:43:43 -04:00
Al Viro a7c2242166 relay: simplify relay_file_read()
to hell with actors...

Signed-off-by: Al Viro <[email protected]>
2016-10-05 18:23:57 -04:00
Al Viro 523ac9afc7 switch default_file_splice_read() to use of pipe-backed iov_iter
we only use iov_iter_get_pages_alloc() and iov_iter_advance() -
pages are filled by kernel_readv() via a kvec array (as we used
to do all along), so iov_iter here is used only as a way of
arranging for those pages to be in pipe.

Signed-off-by: Al Viro <[email protected]>
2016-10-05 18:23:56 -04:00
Al Viro 82c156f853 switch generic_file_splice_read() to use of ->read_iter()
... and kill the ->splice_read() instances that can be switched to it

Signed-off-by: Al Viro <[email protected]>
2016-10-05 18:23:56 -04:00
Al Viro 241699cd72 new iov_iter flavour: pipe-backed
iov_iter variant for passing data into pipe.  copy_to_iter()
copies data into page(s) it has allocated and stuffs them into
the pipe; copy_page_to_iter() stuffs there a reference to the
page given to it.  Both will try to coalesce if possible.
iov_iter_zero() is similar to copy_to_iter(); iov_iter_get_pages()
and friends will do as copy_to_iter() would have and return the
pages where the data would've been copied.  iov_iter_advance()
will truncate everything past the spot it has advanced to.

New primitive: iov_iter_pipe(), used for initializing those.
pipe should be locked all along.

Running out of space acts as fault would for iovec-backed ones;
in other words, giving it to ->read_iter() may result in short
read if the pipe overflows, or -EFAULT if it happens with nothing
copied there.

In other words, ->read_iter() on those acts pretty much like
->splice_read().  Moreover, all generic_file_splice_read() users,
as well as many other ->splice_read() instances can be switched
to that scheme - that'll happen in the next commit.

Signed-off-by: Al Viro <[email protected]>
2016-10-05 18:23:36 -04:00
Al Viro d82718e348 fuse_dev_splice_read(): switch to add_to_pipe()
Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:40:56 -04:00
Al Viro 25869262ef skb_splice_bits(): get rid of callback
since pipe_lock is the outermost now, we don't need to drop/regain
socket locks around the call of splice_to_pipe() from skb_splice_bits(),
which kills the need to have a socket-specific callback; we can just
call splice_to_pipe() and be done with that.

Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:40:56 -04:00
Al Viro 79fddc4efd new helper: add_to_pipe()
single-buffer analogue of splice_to_pipe(); vmsplice_to_pipe() switched
to that, leaving splice_to_pipe() only for ->splice_read() instances
(and that only until they are converted as well).

Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:40:55 -04:00
Al Viro 8924feff66 splice: lift pipe_lock out of splice_to_pipe()
* splice_to_pipe() stops at pipe overflow and does *not* take pipe_lock
* ->splice_read() instances do the same
* vmsplice_to_pipe() and do_splice() (ultimate callers of splice_to_pipe())
  arrange for waiting, looping, etc. themselves.

That should make pipe_lock the outermost one.

Unfortunately, existing rules for the amount passed by vmsplice_to_pipe()
and do_splice() are quite ugly _and_ userland code can be easily broken
by changing those.  It's not even "no more than the maximal capacity of
this pipe" - it's "once we'd fed pipe->nr_buffers pages into the pipe,
leave instead of waiting".

Considering how poorly these rules are documented, let's try "wait for some
space to appear, unless given SPLICE_F_NONBLOCK, then push into pipe
and if we run into overflow, we are done".

Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:40:55 -04:00
Al Viro db85a9eb2e splice: switch get_iovec_page_array() to iov_iter
Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:40:54 -04:00
Al Viro e7c3c64624 splice_to_pipe(): don't open-code wakeup_pipe_readers()
Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:40:54 -04:00
Al Viro 4038acdb18 consistent treatment of EFAULT on O_DIRECT read/write
Make local filesystems treat a fault as shortened IO,
returning -EFAULT only if nothing had been transferred.
That's how everything else (NFS, FUSE, ceph, Lustre)
behaves.

Signed-off-by: Al Viro <[email protected]>
2016-10-03 20:38:55 -04:00
Al Viro 3daa9c5165 fuse_ioctl_copy_user(): don't open-code copy_page_{to,from}_iter()
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Miklos Szeredi <[email protected]>
2016-10-01 07:32:33 +02:00
Al Viro dbbab32574 cifs: get rid of unused arguments of CIFSSMBWrite()
they used to be used, but...

Signed-off-by: Al Viro <[email protected]>
2016-09-27 21:54:53 -04:00
Al Viro fc56b9838a cifs: don't use memcpy() to copy struct iov_iter
it's not 70s anymore.

Signed-off-by: Al Viro <[email protected]>
2016-09-27 18:13:04 -04:00
Al Viro 4bce9f6ee8 get rid of separate multipage fault-in primitives
* the only remaining callers of "short" fault-ins are just as happy with generic
variants (both in lib/iov_iter.c); switch them to multipage variants, kill the
"short" ones
* rename the multipage variants to now available plain ones.
* get rid of compat macro defining iov_iter_fault_in_multipage_readable by
expanding it in its only user.

Signed-off-by: Al Viro <[email protected]>
2016-09-27 18:12:24 -04:00
Al Viro 1ae2293dd6 fix memory leaks in tracing_buffers_splice_read()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-25 13:30:13 -04:00
Al Viro e23d4159b1 fix fault_in_multipages_...() on architectures with no-op access_ok()
Switching iov_iter fault-in to multipages variants has exposed an old
bug in underlying fault_in_multipages_...(); they break if the range
passed to them wraps around.  Normally access_ok() done by callers will
prevent such (and it's a guaranteed EFAULT - ERR_PTR() values fall into
such a range and they should not point to any valid objects).

However, on architectures where userland and kernel live in different
MMU contexts (e.g. s390) access_ok() is a no-op and on those a range
with a wraparound can reach fault_in_multipages_...().

Since any wraparound means EFAULT there, the fix is trivial - turn
those

    while (uaddr <= end)
	    ...
into

    if (unlikely(uaddr > end))
	    return -EFAULT;
    do
	    ...
    while (uaddr <= end);

Reported-by: Jan Stancek <[email protected]>
Tested-by: Jan Stancek <[email protected]>
Cc: [email protected] # v3.5+
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2016-09-20 16:44:28 -07:00
Al Viro 5d3ddd84ea udf: don't bother with full-page write optimisations in adinicb case
... it would get converted to regular if such had been attempted

Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Jan Kara <[email protected]>
2016-09-19 10:47:01 +02:00
Al Viro d4690f1e1c fix iov_iter_fault_in_readable()
... by turning it into what used to be multipages counterpart

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2016-09-17 14:05:30 -07:00
Al Viro 1c109fabbd fix minor infoleak in get_user_ex()
get_user_ex(x, ptr) should zero x on failure.  It's not a lot of a leak
(at most we are leaking uninitialized 64bit value off the kernel stack,
and in a fairly constrained situation, at that), but the fix is trivial,
so...

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
[ This sat in different branch from the uaccess fixes since mid-August ]
Signed-off-by: Linus Torvalds <[email protected]>
2016-09-15 12:54:04 -07:00
Al Viro 8630c32275 avr32: fix copy_from_user()
really ugly, but apparently avr32 compilers turns access_ok() into
something so bad that they want it in assembler.  Left that way,
zeroing added in inline wrapper.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:18 -04:00
Al Viro e98b9e37ae microblaze: fix __get_user()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:17 -04:00
Al Viro d0cf385160 microblaze: fix copy_from_user()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:17 -04:00
Al Viro c90a3bc506 m32r: fix __get_user()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:16 -04:00
Al Viro 8f035983dd blackfin: fix copy_from_user()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:16 -04:00
Al Viro 917400cecb sparc32: fix copy_from_user()
Cc: [email protected]
Acked-by: David S. Miller <[email protected]>
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:15 -04:00
Al Viro 6e050503a1 sh: fix copy_from_user()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:15 -04:00
Al Viro c685238922 sh64: failing __get_user() should zero
It could be done in exception-handling bits in __get_user_b() et.al.,
but the surgery involved would take more knowledge of sh64 details
than I have or _want_ to have.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:14 -04:00
Al Viro b615e3c746 score: fix copy_from_user() and friends
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:14 -04:00
Al Viro c2f18fa4cb score: fix __get_user/get_user
* should zero on any failure
* __get_user() should use __copy_from_user(), not copy_from_user()

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:13 -04:00
Al Viro fd2d2b191f s390: get_user() should zero on failure
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:13 -04:00
Al Viro 224264657b ppc32: fix copy_from_user()
should clear on access_ok() failures.  Also remove the useless
range truncation logics.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:50:02 -04:00
Al Viro aace880fee parisc: fix copy_from_user()
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:44 -04:00
Al Viro acb2505d01 openrisc: fix copy_from_user()
... that should zero on faults.  Also remove the <censored> helpful
logics wrt range truncation copied from ppc32.  Where it had ever
been needed only in case of copy_from_user() *and* had not been merged
into the mainline until a month after the need had disappeared.
A decade before openrisc went into mainline, I might add...

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:44 -04:00
Al Viro 2e29f50ad5 nios2: fix __get_user()
a) should not leave crap on fault
b) should _not_ require access_ok() in any cases.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:43 -04:00
Al Viro e33d1f6f72 nios2: copy_from_user() should zero the tail of destination
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:43 -04:00
Al Viro ae7cc577ec mn10300: copy_from_user() should zero on access_ok() failure...
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:42 -04:00
Al Viro 43403eabf5 mn10300: failing __get_user() and get_user() should zero
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:42 -04:00
Al Viro e69d700535 mips: copy_from_user() must zero the destination on access_ok() failure
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:41 -04:00
Al Viro 8ae95ed4ae metag: copy_from_user() should zero the destination on access_ok() failure
Cc: [email protected]
Acked-by: James Hogan <[email protected]>
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:40 -04:00
Al Viro a5e541f796 ia64: copy_from_user() should zero the destination on access_ok() failure
Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:40 -04:00
Al Viro f35c1e0671 hexagon: fix strncpy_from_user() error return
It's -EFAULT, not -1 (and contrary to the comment in there,
__strnlen_user() can return 0 - on faults).

Cc: [email protected]
Acked-by: Richard Kuo <[email protected]>
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:39 -04:00
Al Viro 3b8767a8f0 frv: fix clear_user()
It should check access_ok().  Otherwise a bunch of places turn into
trivially exploitable rootholes.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:39 -04:00
Al Viro eb47e0293b cris: buggered copy_from_user/copy_to_user/clear_user
* copy_from_user() on access_ok() failure ought to zero the destination
* none of those primitives should skip the access_ok() check in case of
small constant size.

Cc: [email protected]
Acked-by: Jesper Nilsson <[email protected]>
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:38 -04:00
Al Viro 9ad18b75c2 asm-generic: make get_user() clear the destination on errors
both for access_ok() failures and for faults halfway through

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-13 17:49:10 -04:00
Al Viro 2545e5da08 asm-generic: make copy_from_user() zero the destination properly
... in all cases, including the failing access_ok()

Note that some architectures using asm-generic/uaccess.h have
__copy_from_user() not zeroing the tail on failure halfway
through.  This variant works either way.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-09 19:34:32 -04:00
Al Viro 2561d309df alpha: fix copy_from_user()
it should clear the destination even when access_ok() fails.

Cc: [email protected]
Signed-off-by: Al Viro <[email protected]>
2016-09-09 19:34:32 -04:00
Al Viro 4cae780e54 lustre: introduce lnet_copy_{k, }iov2iter(), kill lnet_copy_{k, }iov2{k, }iov()
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: James Simmons <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro c1b7b8eb86 lustre: pass iov_iter to ->lnd_recv()
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro 03766dca62 lustre: constify lib-move.c stuff
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro a482284865 lustre: ->kss_scratch... are unused now
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro 1b4e992f50 staging: lustre: ksocknal_lib_send_kiov(): sendmsg doesn't bugger iovec...
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro 805560e8f1 staging: lustre: ksocknal_lib_send_iov(): sendmsg doesn't bugger iovec...
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro 8040ddfb68 staging: lustre: ksocknal_lib_recv_iov(): recvmsg doesn't bugger iovec anymore...
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Oleg Drokin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-21 16:03:38 +02:00
Al Viro 65ffc67993 lustre: don't reinvent struct bio_vec
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-15 18:48:28 +02:00
Al Viro 28ac4ad0e3 lustre: simplify the living hell out of ksocknal_lib_recv_kiov()
... by using ITER_BVEC recvmsg

Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-15 18:39:44 +02:00
Al Viro fd25dc3460 lustre: switch lnet_sock_write() to sock_sendmsg()
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2016-08-15 18:39:44 +02:00
Al Viro 3baf32898e parisc: use %pD
Signed-off-by: Al Viro <[email protected]>
2016-08-07 23:38:49 -04:00
Al Viro 47b34458fc lustre: use %pD
Signed-off-by: Al Viro <[email protected]>
2016-08-07 23:38:49 -04:00
Al Viro bcd599e790 gpu: use %pd
Signed-off-by: Al Viro <[email protected]>
2016-08-07 23:38:48 -04:00
Al Viro 27a22096b2 iwlwifi: use %pd
Signed-off-by: Al Viro <[email protected]>
2016-08-07 23:38:48 -04:00
Al Viro f66debf1b3 orangefs: use %pd/%pD
Signed-off-by: Al Viro <[email protected]>
2016-08-07 23:38:47 -04:00
Al Viro 8ecfb75216 Merge branch 'for-viro' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs into for-linus 2016-08-03 13:31:51 -04:00
Al Viro 7d50a29fe4 9p: use clone_fid()
in a bunch of places it cleans the things up

Signed-off-by: Al Viro <[email protected]>
2016-08-03 11:12:12 -04:00
Al Viro 797fc16d8f 9p: fix braino introduced in "9p: new helper - v9fs_parent_fid()"
In v9fs_vfs_rename() we need to clone the parents' fids, not just
find them.

Spotted-by: Johannes Berg <[email protected]>
Signed-off-by: Al Viro <[email protected]>
2016-08-03 11:02:48 -04:00
Al Viro 6fa67e7075 get rid of 'parent' argument of ->d_compare()
Signed-off-by: Al Viro <[email protected]>
2016-07-31 16:37:25 -04:00
Al Viro 19a6d89de2 qstr: constify instances in adfs
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:53 -04:00
Al Viro 1e95e9a0b7 qstr: constify instances in lustre
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:52 -04:00
Al Viro 185de68fcb qstr: constify instances in f2fs
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:50 -04:00
Al Viro ac3ba644bc qstr: constify instances in ext2
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:49 -04:00
Al Viro b59091c04a qstr: constify instances in vfat
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:47 -04:00
Al Viro dc12e90949 qstr: constify instances in procfs
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:46 -04:00
Al Viro 13983d062f qstr: constify instances in fuse
Signed-off-by: Al Viro <[email protected]>
2016-07-30 12:25:26 -04:00
Al Viro d3fe19852e cifs, msdos, vfat, hfs+: don't bother with parent in ->d_compare()
dentry->d_sb is just as good as parent->d_sb

Signed-off-by: Al Viro <[email protected]>
2016-07-29 18:27:51 -04:00
Al Viro e0b3f595d1 affs ->d_compare(): don't bother with ->d_inode
Use ->d_sb directly.

Signed-off-by: Al Viro <[email protected]>
2016-07-29 18:22:49 -04:00
Al Viro 15d3c589f6 fold _d_rehash() and __d_rehash() together
The only place where we feed to __d_rehash() something other than
d_hash(dentry->d_name.hash) is __d_move(), where we give it d_hash
of another dentry.  Postpone rehashing until we'd switched the
names and we are rid of that exception, along with the need to
keep _d_rehash() and __d_rehash() separate.

Signed-off-by: Al Viro <[email protected]>
2016-07-29 17:45:21 -04:00
Al Viro d614146d18 fold dentry_rcuwalk_invalidate() into its only remaining caller
Signed-off-by: Al Viro <[email protected]>
2016-07-29 17:28:58 -04:00
Al Viro 29c42e80ba qstr: constify instances in overlayfs
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Miklos Szeredi <[email protected]>
2016-07-29 12:05:24 +02:00
Al Viro 17648b871d Merge branch 'test.d_iput' into work.misc 2016-07-24 16:36:04 -04:00
Al Viro 9aba36dea5 qstr constify instances in fs/dcache.c
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro beffb8feb6 qstr: constify instances in nfs
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro 612645f7cf qstr: constify instances in ocfs2
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro 8ac790f312 qstr: constify instances in autofs4
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro 71e939634d qstr: constify instances in hfs
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro b5cce521e8 qstr: constify instances in hfsplus
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro 7f5458ec5c qstr: constify instances in logfs
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro 4f3ccd7657 qstr: constify dentry_init_security
Signed-off-by: Al Viro <[email protected]>
2016-07-20 23:30:06 -04:00
Al Viro a4a4f9439c bdev: get rid of ->bd_inodes
Since 2006 we have ->i_bdev pinning bdev in question, so there's no
way to get to bdev ->evict_inode() while there's an aliasing inode
anywhere.  In other words, the only place walking the list of aliases
is guaranteed to do it only when the list is empty...

Remove the detritus; it should've been done in "[PATCH] Fix a race
condition between ->i_mapping and iput()", but nobody had noticed it
back then.

Signed-off-by: Al Viro <[email protected]>
2016-07-19 13:16:52 -04:00