RE: [PATCH v2 2/2] f2fs: Advertise encrypted casefolding in sysfs

From: David Laight
Date: Thu Jun 03 2021 - 16:55:01 EST


From: Greg KH
> Sent: 03 June 2021 19:13
>
> On Thu, Jun 03, 2021 at 10:53:26AM -0700, Jaegeuk Kim wrote:
> > On 06/03, Greg KH wrote:
> > > On Thu, Jun 03, 2021 at 08:40:24AM -0700, Jaegeuk Kim wrote:
> > > > On 06/03, Greg KH wrote:
> > > > > On Thu, Jun 03, 2021 at 09:50:38AM +0000, Daniel Rosenberg wrote:
> > > > > > Older kernels don't support encryption with casefolding. This adds
> > > > > > the sysfs entry encrypted_casefold to show support for those combined
> > > > > > features. Support for this feature was originally added by
> > > > > > commit 7ad08a58bf67 ("f2fs: Handle casefolding with Encryption")
> > > > > >
> > > > > > Fixes: 7ad08a58bf67 ("f2fs: Handle casefolding with Encryption")
> > > > > > Cc: stable@xxxxxxxxxxxxxxx # v5.11+
> > > > > > Signed-off-by: Daniel Rosenberg <drosen@xxxxxxxxxx>
> > > > > > ---
> > > > > > fs/f2fs/sysfs.c | 15 +++++++++++++--
> > > > > > 1 file changed, 13 insertions(+), 2 deletions(-)
> > > > > >
> > > > > > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
> > > > > > index 09e3f258eb52..6604291a3cdf 100644
> > > > > > --- a/fs/f2fs/sysfs.c
> > > > > > +++ b/fs/f2fs/sysfs.c
> > > > > > @@ -161,6 +161,9 @@ static ssize_t features_show(struct f2fs_attr *a,
> > > > > > if (f2fs_sb_has_compression(sbi))
> > > > > > len += scnprintf(buf + len, PAGE_SIZE - len, "%s%s",
> > > > > > len ? ", " : "", "compression");
> > > > > > + if (f2fs_sb_has_casefold(sbi) && f2fs_sb_has_encrypt(sbi))
> > > > > > + len += scnprintf(buf + len, PAGE_SIZE - len, "%s%s",
> > > > > > + len ? ", " : "", "encrypted_casefold");
> > > > > > len += scnprintf(buf + len, PAGE_SIZE - len, "%s%s",
> > > > > > len ? ", " : "", "pin_file");
> > > > > > len += scnprintf(buf + len, PAGE_SIZE - len, "\n");
> > > > >
> > > > > This is a HUGE abuse of sysfs and should not be encouraged and added to.
> > > >
> > > > This feature entry was originally added in 2017. Let me try to clean this up
> > > > after merging this.
> > >
> > > Thank you.
> > >
> > > > > Please make these "one value per file" and do not keep growing a single
> > > > > file that has to be parsed otherwise you will break userspace tools.
> > > > >
> > > > > And I don't see a Documentation/ABI/ entry for this either :(
> > > >
> > > > There is in Documentation/ABI/testing/sysfs-fs-f2fs.
> > >
> > > So this new item was documented in the file before the kernel change was
> > > made?
> >
> > Do we need to describe all the strings in this entry?
> >
> > 203 What: /sys/fs/f2fs/<disk>/features
> > 204 Date: July 2017
> > 205 Contact: "Jaegeuk Kim" <jaegeuk@xxxxxxxxxx>
> > 206 Description: Shows all enabled features in current device.
>
> Of course! Especially as this is a total violation of normal sysfs
> files, how else are you going to parse the thing?
>
> Why wouldn't you describe the contents?
>
> But again, please obsolete this file and make the features all
> individual
> files like they should be so that you do not have any parsing problems.

My 2c:

Isn't this a list of fixed strings - rather than a list of values.
So parsing isn't that difficult.
Although it would be more sensible to add new ones at the end.

If they were in separate files you'd need to start reading the
directory to find which names were supported (or known) and then
read the file itself to see if it was actually in use.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)