mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
tmpfs: restore functionality of nr_inodes=0
Commite809d5f0b5
("tmpfs: per-superblock i_ino support") made changes to shmem_reserve_inode() in mm/shmem.c, however the original test for (sbinfo->max_inodes) got dropped. This causes mounting tmpfs with option nr_inodes=0 to fail: # mount -ttmpfs -onr_inodes=0 none /ext0 mount: /ext0: mount(2) system call failed: Cannot allocate memory. This patch restores the nr_inodes=0 functionality. Fixes:e809d5f0b5
("tmpfs: per-superblock i_ino support") Signed-off-by: Byron Stanoszek <gandalf@winds.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Hugh Dickins <hughd@google.com> Acked-by: Chris Down <chris@chrisdown.name> Link: https://lkml.kernel.org/r/20200902035715.16414-1-gandalf@winds.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0964730bf4
commit
bb3e96d63e
10
mm/shmem.c
10
mm/shmem.c
@ -279,11 +279,13 @@ static int shmem_reserve_inode(struct super_block *sb, ino_t *inop)
|
||||
|
||||
if (!(sb->s_flags & SB_KERNMOUNT)) {
|
||||
spin_lock(&sbinfo->stat_lock);
|
||||
if (!sbinfo->free_inodes) {
|
||||
spin_unlock(&sbinfo->stat_lock);
|
||||
return -ENOSPC;
|
||||
if (sbinfo->max_inodes) {
|
||||
if (!sbinfo->free_inodes) {
|
||||
spin_unlock(&sbinfo->stat_lock);
|
||||
return -ENOSPC;
|
||||
}
|
||||
sbinfo->free_inodes--;
|
||||
}
|
||||
sbinfo->free_inodes--;
|
||||
if (inop) {
|
||||
ino = sbinfo->next_ino++;
|
||||
if (unlikely(is_zero_ino(ino)))
|
||||
|
Loading…
Reference in New Issue
Block a user