Skip to content
  • Linus Torvalds's avatar
    vfs: fix flock compat thinko · b59eea55
    Linus Torvalds authored
    Michael Ellerman reported that commit 8c6657cb
    
     ("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: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b59eea55