Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp196757pxk; Tue, 1 Sep 2020 21:17:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxHNvNa5FZeEfMV/pBcQtC/yJkFUTitv6Z1SLML9puT8nACrLCJzyeVrAdafvoGr7V/5YcV X-Received: by 2002:a50:f69a:: with SMTP id d26mr4545920edn.21.1599020261256; Tue, 01 Sep 2020 21:17:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599020261; cv=none; d=google.com; s=arc-20160816; b=cvA7MEc/JArvUWQiR0KEUkpWiNKikW4RPXOgpXrAFasG0vesB4s9FQr6YwXSeeaedA DoBZOeW0XvHXxH33eRyrwkJOIokSga+eOK4XHZ/zgBafOa16/5hV2uk0w+cufccfMjYG HFqoFhvUq6QCxbWWqx2p2EIrwVDR+Wbml0vJsAXXub6amJNsxbPKvtljzqWj6mmb8Vn+ fPaZ0uIiz9Yyqc1aUHoRhuNrFDOHcGKWrirhRNDggC9uRWsI7Cvesey6eXbymvDj0JeV AyPN8ZLUhEkZrjYrO+Xw1pNr3kkybnv5QsPKvjbJ0EKzIpNwG1ycl+BStLLtsw5LTpia ADng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=C4vIw67eQ3mQ6AFHBcsHkcCQNC7Go+UYBRwtEJkzqyU=; b=wOV2lnhuKZ7WUQ6be2xKEtmyvmOWDx9mWuo53rYfCd85YetREhec16IJYUVbxLbG0o bbeM+s+DhUgNh1fFbA2rPbHlUlzFpVJkhkRK8HYhE+bvaLllylyV+a2B8DQ3Sdr/zWqX 6CUaWq07pBcMTH2fM9khdwx5HnumvwdPykKGWtkXysWFo3m1sONzibTdSNim2mpFFx+Y DfWqOjxPQNkVjaX1JJUb8pUelAWEHd0ymRjGEzMMS4qPkGqco+Pr2jeyFb7pc2TB+UKM Ks5OHh0K2jncGhlDB9WTRFZ9aqSJMov15xuwfo+/D35OT5dVOlrGKbvvtKZY/nvEXe8z VFWw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jr5si1895999ejb.549.2020.09.01.21.17.17; Tue, 01 Sep 2020 21:17:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726559AbgIBEQj (ORCPT + 99 others); Wed, 2 Sep 2020 00:16:39 -0400 Received: from winds.org ([68.75.195.9]:54128 "EHLO winds.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726193AbgIBEQh (ORCPT ); Wed, 2 Sep 2020 00:16:37 -0400 X-Greylist: delayed 599 seconds by postgrey-1.27 at vger.kernel.org; Wed, 02 Sep 2020 00:16:36 EDT Received: by winds.org (Postfix, from userid 0) id 4775C13BC8FD; Tue, 1 Sep 2020 23:58:21 -0400 (EDT) From: Byron Stanoszek To: Hugh Dickins , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Byron Stanoszek , Chris Down Subject: [PATCH] tmpfs: Restore functionality of nr_inodes=0 Date: Tue, 1 Sep 2020 23:57:15 -0400 Message-Id: <20200902035715.16414-1-gandalf@winds.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit e809d5f0b5c9 ("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: e809d5f0b5c9 ("tmpfs: per-superblock i_ino support") Cc: Chris Down Signed-off-by: Byron Stanoszek --- mm/shmem.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index 271548ca20f3..8e2b35ba93ad 100644 --- a/mm/shmem.c +++ b/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))) -- 2.28.0