Hi Andy,
If we break out of the loop on the second (and onwards) iteration, won't we still have the other inodes and dentries remaining allocated?As we calling this from the mount_single() wrapper: return mount_single(fs_type, flags, data, efivarfs_fill_super); which does this: struct dentry *mount_single(struct file_system_type *fs_type, int flags, void *data, int (*fill_super)(struct super_block *, void *, int)) { [...] error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); if (error) { deactivate_locked_super(s); return ERR_PTR(error); } [...] I am expecting us to get called back via deactivate_locked_super(), which calls sb->kill_sb() which is: static void efivarfs_kill_sb(struct super_block *sb) { kill_litter_super(sb); efivarfs_sb = NULL; } Which I believe will clean them up.
Awesome, thanks for that. Looks good to me. Acked-by: Jeremy Kerr <[email protected]> Cheers, Jeremy Kerr -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

