2020-07-17 10:11:55

by Antoine Tenart

[permalink] [raw]
Subject: [PATCH v2] 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 <[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


2020-07-17 11:17:49

by Andreas Dilger

[permalink] [raw]
Subject: Re: [PATCH v2] create_inode: set xattrs to the root directory as well


> 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






Attachments:
signature.asc (890.00 B)
Message signed with OpenPGP

2020-07-30 07:28:35

by Antoine Tenart

[permalink] [raw]
Subject: Re: [PATCH v2] create_inode: set xattrs to the root directory as well

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

2020-09-04 08:27:46

by Antoine Tenart

[permalink] [raw]
Subject: Re: [PATCH v2] create_inode: set xattrs to the root directory as well

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

2020-09-04 19:44:08

by Andreas Dilger

[permalink] [raw]
Subject: Re: [PATCH v2] create_inode: set xattrs to the root directory as well

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






Attachments:
signature.asc (890.00 B)
Message signed with OpenPGP

2020-09-07 07:28:12

by Antoine Tenart

[permalink] [raw]
Subject: Re: [PATCH v2] create_inode: set xattrs to the root directory as well

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

2020-12-15 18:40:55

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH v2] create_inode: set xattrs to the root directory as well

Thanks, applied.

And apologies for the delay!

- Ted