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