ovl: add support for unique fsid per instance
authorAmir Goldstein <amir73il@gmail.com>
Mon, 26 Jun 2023 13:34:25 +0000 (16:34 +0300)
committerAmir Goldstein <amir73il@gmail.com>
Sat, 12 Aug 2023 16:02:50 +0000 (19:02 +0300)
commitb0504bfe1b8acdcfb5ef466581d930835ef3c49e
tree69074291700ec64db7789139faca31b5f5d05f58
parent16aac5ad1fa94894b798dd522c5c3a6a0628d7f0
ovl: add support for unique fsid per instance

The legacy behavior of ovl_statfs() reports the f_fsid filled by
underlying upper fs. This fsid is not unique among overlayfs instances
on the same upper fs.

With mount option uuid=on, generate a non-persistent uuid per overlayfs
instance and use it as the seed for f_fsid, similar to tmpfs.

This is useful for reporting fanotify events with fid info from different
instances of overlayfs over the same upper fs.

The old behavior of null uuid and upper fs fsid is retained with the
mount option uuid=null, which is the default.

The mount option uuid=off that disables uuid checks in underlying layers
also retains the legacy behavior.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Documentation/filesystems/overlayfs.rst
fs/overlayfs/copy_up.c
fs/overlayfs/namei.c
fs/overlayfs/overlayfs.h
fs/overlayfs/ovl_entry.h
fs/overlayfs/params.c
fs/overlayfs/super.c