[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