]> git.baikalelectronics.ru Git - kernel.git/commit
vfs: fix flock compat thinko
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Jul 2017 20:48:18 +0000 (13:48 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Jul 2017 20:48:18 +0000 (13:48 -0700)
commit6d7d37532e18605c2b8397f507633f6cfbaf2b78
tree7b68bd0bd6666dfd5e377b0999d99d74c1396736
parent345cb9aa8cd0f53f49fe58bcd6bb106bb3f66d02
vfs: fix flock compat thinko

Michael Ellerman reported that commit 13cc6443e449 ("Switch flock
copyin/copyout primitives to copy_{from,to}_user()") broke his
networking on a bunch of PPC machines (64-bit kernel, 32-bit userspace).

The reason is a brown-paper bug by that commit, which had the arguments
to "copy_flock_fields()" in the wrong order, breaking the compat
handling for file locking.  Apparently very few people run 32-bit user
space on x86 any more, so the PPC people got the honor of noticing this
"feature".

Michael also sent a minimal diff that just changed the order of the
arguments in that macro.

This is not that minimal diff.

This not only changes the order of the arguments in the macro, it also
changes them to be pointers (to be consistent with all the other uses of
those pointers), and makes the functions that do all of this also have
the proper "const" attribution on the source pointers in order to make
issues like that (using the source as a destination) be really obvious.

Reported-by: Michael Ellerman <mpe@ellerman.id.au>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/fcntl.c