efivarfs: expose used and total size
authorAnisse Astier <an.astier@criteo.com>
Wed, 17 May 2023 15:38:12 +0000 (17:38 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Wed, 17 May 2023 16:21:34 +0000 (18:21 +0200)
commitd86ff3333cb1d5f42d8898fb5fdb304e143c0237
treeb2ff1411537adc4dd46d5a69207dafc79f3de994
parent0153431c85af3d4470ac8c59a3f854a3926dff86
efivarfs: expose used and total size

When writing EFI variables, one might get errors with no other message
on why it fails. Being able to see how much is used by EFI variables
helps analyzing such issues.

Since this is not a conventional filesystem, block size is intentionally
set to 1 instead of PAGE_SIZE.

x86 quirks of reserved size are taken into account; so that available
and free size can be different, further helping debugging space issues.

With this patch, one can see the remaining space in EFI variable storage
via efivarfs, like this:

   $ df -h /sys/firmware/efi/efivars/
   Filesystem      Size  Used Avail Use% Mounted on
   efivarfs        176K  106K   66K  62% /sys/firmware/efi/efivars

Signed-off-by: Anisse Astier <an.astier@criteo.com>
[ardb: - rename efi_reserved_space() to efivar_reserved_space()
       - whitespace/coding style tweaks]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
arch/x86/platform/efi/quirks.c
drivers/firmware/efi/efi.c
drivers/firmware/efi/vars.c
fs/efivarfs/super.c
include/linux/efi.h