• Miklos Szeredi's avatar
    locks: fix file locking on overlayfs · c568d683
    Miklos Szeredi authored
    This patch allows flock, posix locks, ofd locks and leases to work
    correctly on overlayfs.
    Instead of using the underlying inode for storing lock context use the
    overlay inode.  This allows locks to be persistent across copy-up.
    This is done by introducing locks_inode() helper and using it instead of
    file_inode() to get the inode in locking code.  For non-overlayfs the two
    are equivalent, except for an extra pointer dereference in locks_inode().
    Since lock operations are in "struct file_operations" we must also make
    sure not to call underlying filesystem's lock operations.  Introcude a
    super block flag MS_NOREMOTELOCK to this effect.
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    Acked-by: default avatarJeff Layton <jlayton@poochiereds.net>
    Cc: "J. Bruce Fields" <bfields@fieldses.org>
locks.c 71.8 KB