mirror of
https://github.com/containers/fuse-overlayfs.git
synced 2025-08-03 18:05:58 -04:00
main: create dir in two steps with xattrs permissions
if xattrs permissions are used, create the directory in two steps and set the correct ownership before moving it into the target. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
parent
d65ce2a8bb
commit
d9e78eadb7
3
main.c
3
main.c
@ -2866,7 +2866,7 @@ create_directory (struct ovl_data *lo, int dirfd, const char *name, const struct
|
||||
bool need_rename;
|
||||
mode_t backing_file_mode = mode | (lo->xattr_permissions ? 0755 : 0);
|
||||
|
||||
need_rename = set_opaque || times || xattr_sfd >= 0 || uid != lo->uid || gid != lo->gid;
|
||||
need_rename = set_opaque || times || xattr_sfd >= 0 || uid != lo->uid || gid != lo->gid || get_upper_layer (lo)->stat_override_mode != STAT_OVERRIDE_NONE;
|
||||
if (! need_rename)
|
||||
{
|
||||
/* mkdir can be used directly without a temporary directory in the working directory. */
|
||||
@ -2937,6 +2937,7 @@ create_directory (struct ovl_data *lo, int dirfd, const char *name, const struct
|
||||
ret = fstat (dfd, st_out);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
st_out->st_mode = (st_out->st_mode & S_IFMT) | (mode & ~S_IFMT);
|
||||
}
|
||||
|
||||
ret = inherit_acl (lo, parent, dfd, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user