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 <[email protected]>
---
Since v1:
- Moved the set_inode_xattr logic for the root directory
from __populate_fs to populate_fs2.
misc/create_inode.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/misc/create_inode.c b/misc/create_inode.c
index e8d1df6b55a5..fe66faf1b53d 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;
--
2.26.2
> On Jul 17, 2020, at 4:08 AM, Antoine Tenart <[email protected]> wrote:
>
> 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 <[email protected]>
Reviewed-by: Andreas Dilger <[email protected]>
> ---
>
> Since v1:
> - Moved the set_inode_xattr logic for the root directory
> from __populate_fs to populate_fs2.
>
> misc/create_inode.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/misc/create_inode.c b/misc/create_inode.c
> index e8d1df6b55a5..fe66faf1b53d 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;
> --
> 2.26.2
>
Cheers, Andreas
Hello,
Gentle ping. What's the status of this patch?
Thanks!
Antoine
Quoting Andreas Dilger (2020-07-17 13:17:08)
>
> > On Jul 17, 2020, at 4:08 AM, Antoine Tenart <[email protected]> wrote:
> >
> > 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 <[email protected]>
>
> Reviewed-by: Andreas Dilger <[email protected]>
>
> > ---
> >
> > Since v1:
> > - Moved the set_inode_xattr logic for the root directory
> > from __populate_fs to populate_fs2.
> >
> > misc/create_inode.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/misc/create_inode.c b/misc/create_inode.c
> > index e8d1df6b55a5..fe66faf1b53d 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;
> > --
> > 2.26.2
> >
>
>
> Cheers, Andreas
>
>
>
>
>
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Hello,
Quoting Antoine Tenart (2020-07-30 09:27:50)
>
> Gentle ping. What's the status of this patch?
Do anyone know if anything else is required to get this merged?
Thanks!
Antoine
> Quoting Andreas Dilger (2020-07-17 13:17:08)
> >
> > > On Jul 17, 2020, at 4:08 AM, Antoine Tenart <[email protected]> wrote:
> > >
> > > 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 <[email protected]>
> >
> > Reviewed-by: Andreas Dilger <[email protected]>
> >
> > > ---
> > >
> > > Since v1:
> > > - Moved the set_inode_xattr logic for the root directory
> > > from __populate_fs to populate_fs2.
> > >
> > > misc/create_inode.c | 8 ++++++++
> > > 1 file changed, 8 insertions(+)
> > >
> > > diff --git a/misc/create_inode.c b/misc/create_inode.c
> > > index e8d1df6b55a5..fe66faf1b53d 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;
> > > --
> > > 2.26.2
> > >
> >
> >
> > Cheers, Andreas
> >
> >
> >
> >
> >
>
> --
> Antoine Ténart, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
On Sep 4, 2020, at 2:23 AM, Antoine Tenart <[email protected]> wrote:
>
> Hello,
>
> Quoting Antoine Tenart (2020-07-30 09:27:50)
>>
>> Gentle ping. What's the status of this patch?
>
> Do anyone know if anything else is required to get this merged?
Based on other emails to the list, Ted has a backlog of patches to be
merged for ext4 and e2fsprogs, so it isn't that your patch was missed.
He will hopefully be able to start landing patches again soon.
Cheers, Andreas
>> Quoting Andreas Dilger (2020-07-17 13:17:08)
>>>
>>>> On Jul 17, 2020, at 4:08 AM, Antoine Tenart <[email protected]> wrote:
>>>>
>>>> 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 <[email protected]>
>>>
>>> Reviewed-by: Andreas Dilger <[email protected]>
>>>
>>>> ---
>>>>
>>>> Since v1:
>>>> - Moved the set_inode_xattr logic for the root directory
>>>> from __populate_fs to populate_fs2.
>>>>
>>>> misc/create_inode.c | 8 ++++++++
>>>> 1 file changed, 8 insertions(+)
>>>>
>>>> diff --git a/misc/create_inode.c b/misc/create_inode.c
>>>> index e8d1df6b55a5..fe66faf1b53d 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;
>>>> --
>>>> 2.26.2
>>>>
>>>
>>>
>>> Cheers, Andreas
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Antoine Ténart, Bootlin
>> Embedded Linux and Kernel engineering
>> https://bootlin.com
>
> --
> Antoine Ténart, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Cheers, Andreas
Hello Andreas,
Quoting Andreas Dilger (2020-09-04 21:43:18)
> On Sep 4, 2020, at 2:23 AM, Antoine Tenart <[email protected]> wrote:
> > Quoting Antoine Tenart (2020-07-30 09:27:50)
> >>
> >> Gentle ping. What's the status of this patch?
> >
> > Do anyone know if anything else is required to get this merged?
>
> Based on other emails to the list, Ted has a backlog of patches to be
> merged for ext4 and e2fsprogs, so it isn't that your patch was missed.
> He will hopefully be able to start landing patches again soon.
Thanks for the explanation!
Antoine
--
Antoine Ténart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Thanks, applied.
And apologies for the delay!
- Ted