Commit d28076dd authored by Ard Biesheuvel's avatar Ard Biesheuvel

efivarfs: Move efivar availability check into FS context init

Instead of checking whether or not EFI variables are available when
creating the superblock, check it one step earlier, when initializing
the FS context for the mount. This way, no FS context will be created at
all, and we can drop the second check at .kill_sb() time entirely.
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 0e8d2444
...@@ -296,9 +296,6 @@ static int efivarfs_fill_super(struct super_block *sb, struct fs_context *fc) ...@@ -296,9 +296,6 @@ static int efivarfs_fill_super(struct super_block *sb, struct fs_context *fc)
struct dentry *root; struct dentry *root;
int err; int err;
if (!efivar_is_available())
return -EOPNOTSUPP;
sb->s_maxbytes = MAX_LFS_FILESIZE; sb->s_maxbytes = MAX_LFS_FILESIZE;
sb->s_blocksize = PAGE_SIZE; sb->s_blocksize = PAGE_SIZE;
sb->s_blocksize_bits = PAGE_SHIFT; sb->s_blocksize_bits = PAGE_SHIFT;
...@@ -354,6 +351,9 @@ static int efivarfs_init_fs_context(struct fs_context *fc) ...@@ -354,6 +351,9 @@ static int efivarfs_init_fs_context(struct fs_context *fc)
{ {
struct efivarfs_fs_info *sfi; struct efivarfs_fs_info *sfi;
if (!efivar_is_available())
return -EOPNOTSUPP;
sfi = kzalloc(sizeof(*sfi), GFP_KERNEL); sfi = kzalloc(sizeof(*sfi), GFP_KERNEL);
if (!sfi) if (!sfi)
return -ENOMEM; return -ENOMEM;
...@@ -370,9 +370,6 @@ static void efivarfs_kill_sb(struct super_block *sb) ...@@ -370,9 +370,6 @@ static void efivarfs_kill_sb(struct super_block *sb)
{ {
kill_litter_super(sb); kill_litter_super(sb);
if (!efivar_is_available())
return;
/* Remove all entries and destroy */ /* Remove all entries and destroy */
efivar_entry_iter(efivarfs_destroy, &efivarfs_list, NULL); efivar_entry_iter(efivarfs_destroy, &efivarfs_list, NULL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment