| From: |
| James Bottomley <James.Bottomley-AT-HansenPartnership.com> |
| To: |
| linux-efi-AT-vger.kernel.org, linux-fsdevel-AT-vger.kernel.org |
| Subject: |
| [RFC PATCH 0/3] create simple libfs directory iterator and make efivarfs use it |
| Date: |
| Tue, 18 Mar 2025 15:41:08 -0400 |
| Message-ID: |
| <20250318194111.19419-1-James.Bottomley@HansenPartnership.com> |
| Cc: |
| Ard Biesheuvel <ardb-AT-kernel.org>, Christian Brauner <brauner-AT-kernel.org>, Al Viro <viro-AT-zeniv.linux.org.uk> |
| Archive-link: |
| Article |
[Note this is built on top of the previous patch to populate path.mnt]
This turned out to be much simpler than I feared. The first patch
breaks out the core of the current dcache_readdir() into an internal
function with a callback (there should be no functional change). The
second adds a new API, simple_iterate_call(), which loops over the
dentries in the next level and executes a callback for each one and
the third which removes all the efivarfs superblock and mnt crud and
replaces it with this simple callback interface. I think the
diffstats of the third patch demonstrate how much nicer it is for us:
1 file changed, 7 insertions(+), 96 deletions(-)
Regards,
James
---
James Bottomley (3):
libfs: rework dcache_readdir to use an internal function with callback
libfs: add simple directory iteration function with callback
efivarfs: replace iterate_dir with libfs function simple_iterate_call
fs/efivarfs/super.c | 103 +++-----------------------------------------
fs/libfs.c | 74 +++++++++++++++++++++++++------
include/linux/fs.h | 2 +
3 files changed, 71 insertions(+), 108 deletions(-)
--
2.43.0