aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Tenart <antoine.tenart@bootlin.com>2020-07-17 12:08:46 +0200
committerTheodore Ts'o <tytso@mit.edu>2020-12-15 13:38:28 -0500
commit7616fd6a599e44c5700c2c3a2e08979c6c5c747e (patch)
treec236c137036ba0929f7a05194abcb0e76f6a0ded
parentaf1a882fd27ecd93a00e26667f0737088ccbe586 (diff)
downloade2fsprogs-7616fd6a599e44c5700c2c3a2e08979c6c5c747e.tar.gz
create_inode: set xattrs to the root directory as well
populate_fs do copy the xattrs for all files and directories, but the root directory is skipped and as a result its extended attributes aren't set. This is an issue when using mkfs to build a full system image that can be used with SElinux in enforcing mode without making any runtime fix at first boot. This patch adds logic to set the root directory's extended attributes. Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com> Reviewed-by: Andreas Dilger <adilger@dilger.ca> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--misc/create_inode.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/misc/create_inode.c b/misc/create_inode.c
index 837f38755..6f8487b92 100644
--- a/misc/create_inode.c
+++ b/misc/create_inode.c
@@ -1050,9 +1050,17 @@ errcode_t populate_fs2(ext2_filsys fs, ext2_ino_t parent_ino,
file_info.path_max_len = 255;
file_info.path = calloc(file_info.path_max_len, 1);
+ retval = set_inode_xattr(fs, root, source_dir);
+ if (retval) {
+ com_err(__func__, retval,
+ _("while copying xattrs on root directory"));
+ goto out;
+ }
+
retval = __populate_fs(fs, parent_ino, source_dir, root, &hdlinks,
&file_info, fs_callbacks);
+out:
free(file_info.path);
free(hdlinks.hdl);
return retval;