Re: [PATCH v4 0/4] configfs: implement committable items and add sample code

From: Bartosz Golaszewski
Date: Fri Jan 15 2021 - 06:16:07 EST


On Fri, Jan 15, 2021 at 12:13 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote:
>
> From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
>
> Committable items in configfs are well defined and documented but unfortunately
> so far never implemented.
>
> The use-case we have over at the GPIO subsystem is using configfs in
> conjunction with sysfs to replace our current gpio-mockup testing module
> with one that will be much more flexible and will allow complete coverage
> of the GPIO uAPI.
>
> The current gpio-mockup module is controlled using module parameters which
> forces the user to reload it everytime they need to change the chip
> configuration or layout and makes it difficult to extend its functionality.
>
> Testing module based on configfs would allow fine-grained control over dummy
> GPIO chips but since GPIO devices must be configured before they are
> instantiated, we need committable items.
>
> This implements them and adds code examples to configfs_sample module. The
> first two patches are just cosmetic.
>
> v1 -> v2:
> - fix a 'set but not used' build warning reported by kernel test robot
>
> v2 -> v3:
> - use (1UL << bit) instead of BIT() in patch 2/4
> - extend configfs_dump_one() to make it print the new flags
> - clear the CONFIGFS_USET_DIR bit on the live group dirent
>
> v3 -> v4:
> - relax the attribute handling for the 'live' group: don't make all attributes
> read-only once their group is committed
> - don't allow to change the dirent name of committable groups when renaming
>
> Rebased on top of v5.11-rc3.
>
> Bartosz Golaszewski (4):
> configfs: increase the item name length
> configfs: use (1UL << bit) for internal flags
> configfs: implement committable items
> samples: configfs: add a committable group
>
> Documentation/filesystems/configfs.rst | 6 +-
> fs/configfs/configfs_internal.h | 22 ++-
> fs/configfs/dir.c | 244 ++++++++++++++++++++++++-
> include/linux/configfs.h | 3 +-
> samples/configfs/configfs_sample.c | 153 ++++++++++++++++
> 5 files changed, 408 insertions(+), 20 deletions(-)
>
> --
> 2.29.1
>

Ah cr*p I now noticed Linus W had left his Ack on the previous version
and I forgot to collect it...

Bart