• Christian Brauner's avatar
    ovl: use ovl_do_notify_change() wrapper · a15506ea
    Christian Brauner authored
    Introduce ovl_do_notify_change() as a simple wrapper around
    notify_change() to support idmapped layers. The helper mirrors other
    ovl_do_*() helpers that operate on the upper layers.
    
    When changing ownership of an upper object the intended ownership needs
    to be mapped according to the upper layer's idmapping. This mapping is
    the inverse to the mapping applied when copying inode information from
    an upper layer to the corresponding overlay inode. So e.g., when an
    upper mount maps files that are stored on-disk as owned by id 1001 to
    1000 this means that calling stat on this object from an idmapped mount
    will report the file as being owned by id 1000. Consequently in order to
    change ownership of an object in this filesystem so it appears as being
    owned by id 1000 in the upper idmapped layer it needs to store id 1001
    on disk. The mnt mapping helpers take care of this.
    
    All idmapping helpers are nops when no idmapped base layers are used.
    
    Cc: <linux-unionfs@vger.kernel.org>
    Tested-by: default avatarGiuseppe Scrivano <gscrivan@redhat.com>
    Reviewed-by: default avatarAmir Goldstein <amir73il@gmail.com>
    Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    a15506ea
inode.c 31.8 KB