tmpfs: track free_ispace instead of free_inodes
authorHugh Dickins <hughd@google.com>
Wed, 9 Aug 2023 04:32:21 +0000 (21:32 -0700)
committerChristian Brauner <brauner@kernel.org>
Wed, 9 Aug 2023 07:15:51 +0000 (09:15 +0200)
commite07c469e979c104464300aaa3b7923f929055cd0
treeb699387289ca70f89dc86f78753d0a4c61cbc803
parent5de75970c9fd7220e394b76e6d20fbafa1369b5a
tmpfs: track free_ispace instead of free_inodes

In preparation for assigning some inode space to extended attributes,
keep track of free_ispace instead of number of free_inodes: as if one
tmpfs inode (and accompanying dentry) occupies very approximately 1KiB.

Unsigned long is large enough for free_ispace, on 64-bit and on 32-bit:
but take care to enforce the maximum.  And fix the nr_blocks maximum on
32-bit: S64_MAX would be too big for it there, so say LONG_MAX instead.

Delete the incorrect limited<->unlimited blocks/inodes comment above
shmem_reconfigure(): leave it to the error messages below to describe.

Signed-off-by: Hugh Dickins <hughd@google.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Message-Id: <4fe1739-d9e7-8dfd-5bce-12e7339711da@google.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
include/linux/shmem_fs.h
mm/shmem.c