From patchwork Tue Feb 21 11:59:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59752 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1658937wrn; Mon, 20 Feb 2023 20:01:11 -0800 (PST) X-Google-Smtp-Source: AK7set9kO7Rb84+CBO/8j7LVyrqw7OwPU071mWjxnIZQDNDRB3/GlKHkSJ3D9A8wH/fxcQJsOLNQ X-Received: by 2002:a17:907:7288:b0:8bc:9bce:7eb6 with SMTP id dt8-20020a170907728800b008bc9bce7eb6mr12549508ejc.7.1676952071298; Mon, 20 Feb 2023 20:01:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952071; cv=none; d=google.com; s=arc-20160816; b=e9/VFsL909ximmR2QZSNadnMW/a3t6SKxWXa/sDqPLzc/psdHI7ObVEByKigab69XQ kHhj18z4zL3Yvfgc4t4Z5jZxzeFKJfPDicG3z/+QPv+F1aIglXSrRbiPa63YYCat5iPs To1P008VK7GkCQwFgLAneNrkocsfyGej9jO0IABTVGfKsNhhnovP/taL7diGs577qFei Nay/0j5wz0QwMbvfuKIobaKIP7EPO8hEAo1JCfYVmD/nBVGhVZtuQal4vHztS3LR08/r y2Xq+VFzc+Z4olFFWhpIDZCIhmyVQR1shhQlkEXYmXEDrpxf9qgYITfkAYjim+f5FO+7 xElw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=r7fT6Kh+s+KJ3uArvTPEYeYBLJDoBElNL7Tsqn81v3A=; b=t/Vmzb9jg+Bmdfyo8TKk8iBtSurK+SpUOA4h2INfFpkuwdPDLjddNUFWc1wHIqbL93 KT5D/0v9UqHqbGCKswzFtXQYdUEWBe6DLRdkRuPg6Pm5neMMrudoiIk2CseH7BFUQFRC w5C2n3e/93hPYm2ubtyDQf6MgPREirQxOkcgFigrKq1WBHTMn3LRt8KzIOAMeP+8fa/Q axobGh9hImnZDL0cy8kV6GU3T1JR3gLmoFGS5J0ZwtgoYNQkyZOPxx4ijlOzflzGN1wS 1Q6iCRR+AJUAS8ms8zsDW3YzDy7XwkA272s1TjxWt6ZwAEgij4oLkrjtTJygfblBuD0l KgOQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id vl15-20020a17090730cf00b008da520f3fc5si3441889ejb.503.2023.02.20.20.00.48; Mon, 20 Feb 2023 20:01:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233412AbjBUD5o (ORCPT + 99 others); Mon, 20 Feb 2023 22:57:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233093AbjBUD5m (ORCPT ); Mon, 20 Feb 2023 22:57:42 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78CCB244A2; Mon, 20 Feb 2023 19:57:38 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4PLQV52BB8z4f3wYl; Tue, 21 Feb 2023 11:57:33 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S3; Tue, 21 Feb 2023 11:57:35 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 1/7] ext4: properly handle error of ext4_init_block_bitmap in ext4_read_block_bitmap_nowait Date: Tue, 21 Feb 2023 19:59:13 +0800 Message-Id: <20230221115919.1918161-2-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S3 X-Coremail-Antispam: 1UD129KBjvJXoW7Cw1DAr43uw1kArWkJr17GFg_yoW8XrWfp3 9IkFWDKrn8ur1qga17tr9Yq3W8Kw1kKr1UGFWrC343XFW7JrnruF97KF1DuF40qF42qFnx XF1ruFyxAr1xXrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBK14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2jI8I6cxK62vIxIIY0VWUZVW8XwA2048vs2IY02 0E87I2jVAFwI0_Jr4l82xGYIkIc2x26xkF7I0E14v26r1Y6r1xM28lY4IEw2IIxxk0rwA2 F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjx v20xvEc7CjxVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2 z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0V AKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1l Ox8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErc IFxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2 6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2 Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_ Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMI IF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7sRiDGYDUUUUU= = X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411695469252731?= X-GMAIL-MSGID: =?utf-8?q?1758411695469252731?= We mark buffer_head of bitmap successfully initialized even error occurs in ext4_init_block_bitmap. Although we will return error, we will get a invalid buffer_head of bitmap from next ext4_read_block_bitmap_nowait which is marked buffer_verified but not successfully initialized actually in previous ext4_read_block_bitmap_nowait. Fix this by only marking buffer_head successfully initialized if ext4_init_block_bitmap successes. Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 8ff4b9192a9f..10cab743e313 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -474,16 +474,18 @@ ext4_read_block_bitmap_nowait(struct super_block *sb, ext4_group_t block_group, goto out; } err = ext4_init_block_bitmap(sb, bh, block_group, desc); - set_bitmap_uptodate(bh); - set_buffer_uptodate(bh); - set_buffer_verified(bh); - ext4_unlock_group(sb, block_group); - unlock_buffer(bh); if (err) { + ext4_unlock_group(sb, block_group); + unlock_buffer(bh); ext4_error(sb, "Failed to init block bitmap for group " "%u: %d", block_group, err); goto out; } + set_bitmap_uptodate(bh); + set_buffer_uptodate(bh); + set_buffer_verified(bh); + ext4_unlock_group(sb, block_group); + unlock_buffer(bh); goto verify; } ext4_unlock_group(sb, block_group); From patchwork Tue Feb 21 11:59:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59755 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1659186wrn; Mon, 20 Feb 2023 20:01:57 -0800 (PST) X-Google-Smtp-Source: AK7set++vRQwK4spdFWfUEod4agsUq5F1AHVyHSo4GCmrmUn5gVwcW0j3jB75bVxPxrMMNwO0WXP X-Received: by 2002:aa7:c959:0:b0:4ac:b687:f57e with SMTP id h25-20020aa7c959000000b004acb687f57emr2053321edt.1.1676952117327; Mon, 20 Feb 2023 20:01:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952117; cv=none; d=google.com; s=arc-20160816; b=FWmP/6rc8nwdaec0Mw6HmSkEQNFmkvud1XicUGqSPt3/TI48eQjd0XaHGRdh4KYZ9E fdbYwQeYtMIgou2qvw3wiBD1p4GZNC1mc+fRGpcGo7xY6KGjsSfqx+4fGzZxMrgd5Znq 51SHrRu9ED78lBd6p3fPPhzmASRf5nK0uACXfPCqjLwg7MhSJJpVhQWmZMkOlGVybbyV /6STsXD+D6YPo5acI9sadburMvIq6LqPlFU4ygbKBDsxf69DHrRcxZ4H/r0EQusIPQEp SJXsGqyuayjriI+PgTqAnz+bIexxFRhcu4eSr+uBP7mo51envNkXGbLP6J4gvclWw9Ab op9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8MIO4UeJ9NUxtHShRZdjf27BlrNBAiPFviWQoQGGy/U=; b=IJIjJvgrh8KFyunaf386o2svNsrYZE5FLpfgsl9Q9GGJ9NXbVrGd88VxDwgMk2F5yD wLz8cnJkcSWwlPqj9W2XLy9z8E//7bpkVrgsTcLXEQRi9nZZoPtJnkAGVu9GUHaCxYjn 420/XyMuc2TxBlNFKvFLQnTC5WUpm2NhA0sVN8nArR+hnVc3RX2GkGo71+Sh1BpSpGPy gdO5nnpP2qeI/yI4XyeTleLoeR0sQdRzLBiX1DQVrf7kD4SeF8uwCLwgP/82y1pyTmhL bIXMA65o0B3n+yeOWDcU42JsVBuY3d5SrL8sukf8KUddHXhHtwlwpftQqtko3w0cAKQ7 pMRw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i20-20020a50fc14000000b004acbde7ddd9si3805799edr.378.2023.02.20.20.01.34; Mon, 20 Feb 2023 20:01:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233554AbjBUD56 (ORCPT + 99 others); Mon, 20 Feb 2023 22:57:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232692AbjBUD5n (ORCPT ); Mon, 20 Feb 2023 22:57:43 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3EED24CA3; Mon, 20 Feb 2023 19:57:38 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4PLQV52Yqfz4f3wDH; Tue, 21 Feb 2023 11:57:33 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S4; Tue, 21 Feb 2023 11:57:35 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 2/7] ext4: correct validation check of inode table in ext4_valid_block_bitmap Date: Tue, 21 Feb 2023 19:59:14 +0800 Message-Id: <20230221115919.1918161-3-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S4 X-Coremail-Antispam: 1UD129KBjvJXoW7CF48Xw48WF17XF13Zr17trb_yoW8XF48p3 98JF4jqr43Ar1DZw4ftF9Yqw1fGw1vgw47Grn3Wr13GrW2ga4SyF90kryag3WftFWDAry0 v3sYv3y7Zw1rua7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBE14x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2jI8I6cxK62vIxIIY0VWUZVW8XwA2048vs2IY02 0E87I2jVAFwI0_Jryl82xGYIkIc2x26xkF7I0E14v26r1I6r4UM28lY4IEw2IIxxk0rwA2 F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjx v20xvEc7CjxVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2 z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0V AKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1l Ox8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErc IFxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v2 6r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2 Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_ Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMI IF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x0pRcBMtUUUUU = X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411743362061788?= X-GMAIL-MSGID: =?utf-8?q?1758411743362061788?= 1.Last valid cluster of inode table is EXT4_B2C(sbi, offset + sbi->s_itb_per_group - 1). We should make sure last valid cluster is < max_bit, i.e., EXT4_B2C(sbi, offset + sbi->s_itb_per_group - 1) is < max_bit rather than EXT4_B2C(sbi, offset + sbi->s_itb_per_group) is < max_bit. 2.Bit search length should be last valid cluster plus 1, i.e., EXT4_B2C(sbi, offset + sbi->s_itb_per_group - 1) + 1 rather than EXT4_B2C(sbi, offset + sbi->s_itb_per_group). Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 10cab743e313..22be5cd70505 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -350,13 +350,13 @@ static ext4_fsblk_t ext4_valid_block_bitmap(struct super_block *sb, blk = ext4_inode_table(sb, desc); offset = blk - group_first_block; if (offset < 0 || EXT4_B2C(sbi, offset) >= max_bit || - EXT4_B2C(sbi, offset + sbi->s_itb_per_group) >= max_bit) + EXT4_B2C(sbi, offset + sbi->s_itb_per_group - 1) >= max_bit) return blk; next_zero_bit = ext4_find_next_zero_bit(bh->b_data, - EXT4_B2C(sbi, offset + sbi->s_itb_per_group), + EXT4_B2C(sbi, offset + sbi->s_itb_per_group - 1) + 1, EXT4_B2C(sbi, offset)); if (next_zero_bit < - EXT4_B2C(sbi, offset + sbi->s_itb_per_group)) + EXT4_B2C(sbi, offset + sbi->s_itb_per_group - 1) + 1) /* bad bitmap for inode tables */ return blk; return 0; From patchwork Tue Feb 21 11:59:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59754 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1659093wrn; Mon, 20 Feb 2023 20:01:38 -0800 (PST) X-Google-Smtp-Source: AK7set8xv4UUpDc36hEYETRV9iiFX79cB7VkawnoS2PFJHzE6up2ksHvRsxKcf05CXbi/ziBEgwM X-Received: by 2002:a05:600c:3b10:b0:3dc:50c2:cc1 with SMTP id m16-20020a05600c3b1000b003dc50c20cc1mr2837669wms.23.1676952098265; Mon, 20 Feb 2023 20:01:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952098; cv=none; d=google.com; s=arc-20160816; b=iZSTGpqAelynkJ1MectLvfaqct4qCyu9ilYtbcoKNooHrWADtkv4xZclXc2qhv6D4m 5mi8r0CP9HeGLSHON4R0g3DUGIua27AusnFU0ww4wsQV3WQMQnjItJX4Src0Z/FGeS1/ cG6VLHobDQujnJMbfZ1AXHOnpafHF+gcDx8E0CWFTfGbPwzzm+dpuIR/wYgDoTz83AYF fkG/ZavGcJ6tgvhhfW9D3R3gzdOerBfVSi4FNg+VECQH0+LdJRsyWTXi6pmcysssD9z8 02w7wKfZWwXXkP5PaQmabfFVzSQSRSaLwFnCQf+orUMMXMBDJmJr14Le5vBXhHG+0R2c gaVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=3VWOI5sET7e+Qy7wmAg/F4A/lVDzAOLyjdz/4RDNQKg=; b=G/0bwiEX2vwygdPkBTaktkU2+NPx+/dfoUaL8f226D0vYmCEaxJTxYbsPAQnJs+NJc s20wlF/Rt7sXPuWDn8DWqZm067B8R4WtMKtbVknIDWZPxzceHlyEuh2PeB+2txKGVnwC sRyDLR8+0wIUCaivWYR/KwmzWR80H3QpY7feCUBiVvxJt8E5I291WUW8pHiCpJcbQ5cL Ukd3ewBcGSM1IM+aSvNalzh3iu98uSnf1eRC0BrJYfVhcgHa+zg6t5oyx9mgMcIPHTge J4u6mFPGMR3FV8YikK9NaiFRl6Ui8RvwNg4Jxg5cvY1d7JTX+4ENMB8JTKu8wRKpjsEc JoSw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j39-20020a05600c1c2700b003dfe41f8395si13485950wms.86.2023.02.20.20.01.14; Mon, 20 Feb 2023 20:01:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233313AbjBUD5t (ORCPT + 99 others); Mon, 20 Feb 2023 22:57:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54806 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233100AbjBUD5n (ORCPT ); Mon, 20 Feb 2023 22:57:43 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB30D24CA2; Mon, 20 Feb 2023 19:57:38 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4PLQV55dvGz4f3jq4; Tue, 21 Feb 2023 11:57:33 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S5; Tue, 21 Feb 2023 11:57:35 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 3/7] ext4: call ext4_bg_num_gdb_[no]meta directly in ext4_num_base_meta_clusters Date: Tue, 21 Feb 2023 19:59:15 +0800 Message-Id: <20230221115919.1918161-4-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S5 X-Coremail-Antispam: 1UD129KBjvJXoW7uF4kGr43Xr48Xr1DGr4xXrb_yoW8GF4xpw s3tF13tr17ur1DuanxAry5Zwn5Cwn5KwnxJrya9w15uFW3GF1fCas5JFn0yF12gFsxZ3ZF 9FW5W34Yvr95Ja7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUPSb4IE77IF4wAFF20E14v26ryj6rWUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8IrcIa0xkI8VA2jI8067AKxVWUWwA2048vs2IY020Ec7CjxVAFwI0_Gr0_Xr1l8cAvFVAK 0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4 x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l 84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I 8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AK xVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zV CS5cI20VAGYxC7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E 5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAV WUtwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY 1x0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI 0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7s RNBT5UUUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411722998069799?= X-GMAIL-MSGID: =?utf-8?q?1758411722998069799?= ext4_num_base_meta_clusters is already aware of meta_bg feature and test if block_group is inside real meta block groups before calling ext4_bg_num_gdb. Then ext4_bg_num_gdb will check if block group is inside a real meta block groups again to decide either ext4_bg_num_gdb_meta or ext4_bg_num_gdb_nometa is needed. Call ext4_bg_num_gdb_meta or ext4_bg_num_gdb_nometa directly after we check if block_group is inside a meta block groups in ext4_num_base_meta_clusters to remove redundant check of meta block groups in ext4_bg_num_gdb. Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 22be5cd70505..9b8a32b90ddc 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -889,11 +889,11 @@ static unsigned ext4_num_base_meta_clusters(struct super_block *sb, block_group < le32_to_cpu(sbi->s_es->s_first_meta_bg) * sbi->s_desc_per_block) { if (num) { - num += ext4_bg_num_gdb(sb, block_group); + num += ext4_bg_num_gdb_nometa(sb, block_group); num += le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks); } } else { /* For META_BG_BLOCK_GROUPS */ - num += ext4_bg_num_gdb(sb, block_group); + num += ext4_bg_num_gdb_meta(sb, block_group); } return EXT4_NUM_B2C(sbi, num); } From patchwork Tue Feb 21 11:59:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59756 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1659468wrn; Mon, 20 Feb 2023 20:02:39 -0800 (PST) X-Google-Smtp-Source: AK7set/Nm44NyjqJW8zD424qTpYJQmpT4DZjDWkkWURBvP8qM+/vv6hCdwK0wdnaW8k85bVrEAnO X-Received: by 2002:a17:902:ce8e:b0:196:59a0:bffe with SMTP id f14-20020a170902ce8e00b0019659a0bffemr5128292plg.17.1676952159573; Mon, 20 Feb 2023 20:02:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952159; cv=none; d=google.com; s=arc-20160816; b=PydZORH4wKZf8tszx82YczOLKO9KdlfcXgdgXpGDAof6u3R2cm1XIezLxsvW775h5n pqG8EX3YTNgcQxe0Uc/IeJoWAPSM6uLlpczxgOtnhUmFeWcZLQBR0H2me7bQlG71fb0g XEYuFq0W0Vdevzdpt3Mpz6elHFW2F3vU9IpG1E0WGxzFfmoAxQTnJDeO+twdst7foinr leczj27nuSGbvuUoQnCDQWjh91mSwH5w/+QszJw+tI2sbpcY/oGtkUDo3DhfomPodUUB fnMspriy0b/B4CagPr8Omy5XhncXyQpfS0PvwOUYwqgHYz0c7KowQ0h2HO+cTXeAMVI4 BbgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=s9R8tXPKwGkUzVPwRPCi4BXtChMEEdnZeGDnGoOcDLg=; b=aXzgzvYp86alJjko3DiN8NxjmjSQBfGmH5FeraAKn/oQlwOJ7cZss36DsMaVnTjLYG 8GBA4qt5J1PkTirFbAiTtygHFFGK8dW2mO4WSYQumfX4s42hWWIHHLnRezXYSaBojVgQ nTwV/iFIps0VuytkN3R1BSP/+ZMKEHZsEN4n/T9G0SSWD8w7Y4crOauMJOygdjcK7+Id 8PinieTsWk1TtiAbw3ftYa2ucCYSYZZWSnJcojciyoIjAIyfG9nI6VAghRcVkwxo2/Wr 3TAVSKEInYMSm5IcDxAKoufb7LwCbZN8gDX1eagCZca/96m70TZf+apGo1zCaahtUT9N 6exA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f13-20020a170902684d00b0019a9d960a57si2467970pln.293.2023.02.20.20.02.25; Mon, 20 Feb 2023 20:02:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233571AbjBUD6B (ORCPT + 99 others); Mon, 20 Feb 2023 22:58:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54806 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233147AbjBUD5n (ORCPT ); Mon, 20 Feb 2023 22:57:43 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0491C24CAC; Mon, 20 Feb 2023 19:57:39 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4PLQV56rBbz4f3tDj; Tue, 21 Feb 2023 11:57:33 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S6; Tue, 21 Feb 2023 11:57:36 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 4/7] ext4: remove unnecessary check in ext4_bg_num_gdb_nometa Date: Tue, 21 Feb 2023 19:59:16 +0800 Message-Id: <20230221115919.1918161-5-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S6 X-Coremail-Antispam: 1UD129KBjvdXoWrZrWUWr4xJF18KrykJFW5ZFb_yoWfArc_Ka y7XF1xua43Xw1fKa4xKws5K347Kr4vyr45XFn3try3ua48tayxA34DArs3ZayDuF47ArZ5 Za4xu347tw4IqjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbgkYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r126s0DM28IrcIa0xkI8VCY1x0267AKxVW8JVW5JwA2ocxC 64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM2 8EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq 3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II 8E6IAqYI8I648v4I1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2Iq xVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r 126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY 6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67 AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuY vjTRQIDrUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411787549634524?= X-GMAIL-MSGID: =?utf-8?q?1758411787549634524?= We only call ext4_bg_num_gdb_nometa if there is no meta_bg feature or group does not reach first_meta_bg, so group must not reside in meta group. Then group has a global gdt if superblock exists. Just remove confusing branch that meta_bg feature exists. Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 9b8a32b90ddc..08f1692f7d2f 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -844,10 +844,7 @@ static unsigned long ext4_bg_num_gdb_nometa(struct super_block *sb, if (!ext4_bg_has_super(sb, group)) return 0; - if (ext4_has_feature_meta_bg(sb)) - return le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg); - else - return EXT4_SB(sb)->s_gdb_count; + return EXT4_SB(sb)->s_gdb_count; } /** From patchwork Tue Feb 21 11:59:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59757 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1660305wrn; Mon, 20 Feb 2023 20:05:14 -0800 (PST) X-Google-Smtp-Source: AK7set/ojbLgUMwM/Qc6JnRX/4xfeLBTQQyKs9vJcrzT2woPKYRWdLzuKz/G53fcrrhv+uN1aIBE X-Received: by 2002:aa7:c0c4:0:b0:4ac:be83:2044 with SMTP id j4-20020aa7c0c4000000b004acbe832044mr4276786edp.3.1676952314113; Mon, 20 Feb 2023 20:05:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952314; cv=none; d=google.com; s=arc-20160816; b=KcwiGGuN8yQBnui7Dgjr8VqPz/gzAN6PHKAZZJO10yVSy3IhvMPlqnm7hL0nUCJoBo u2cdoOqSCKIS0lRIvvPD2Nv25yX3Lzm1AbCj5LVZDPlSyvt7hG9Iampy/5Xgc/YplR+i i31skcLdftO9TtIYrmJs3H1RxxVMfAnPYixrm3t7pMBYrQk28BX1GAc9QDxGjdLgl5Wf 7I/6c0w57JMM3VqAdmXuGRaHKV0stBDEBRcOPD7nYTIE4paM7d46k51gT1TkNq1OIf7G BdNRY4CJQ0qNbqIaj60KOINrvcUqhzwxkt9Gm3JNlB1lpLeDATIA2R4v9LHivaxvKEUK xqSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=VCWUfdGfC9gypmKmfRN8h/2hYCK8IG5M8Jysy3YpJDI=; b=Uj/dVSLLwGb30pENlEeDDtTi6VJykJ9MWcwI8BBJF1pHBbBBIxUU1RHUKlcAcBSXtd e/zc6lyJbMGdfZ4SmJxd0poLh4LYAjaBVm/q+DAaWKjZ0Nug9F0PSoE/zAIrlzkUcNJR zjL0c/OsycCnQtMvNviq/Vf3upuevhRNliMEm+2y1T6SE7POjExHPKB0G7BCiR8/5dzz UBfj71NaCzf1A7TEi70fa05WPehq2Cg0F2EAkNtytNZb6CYfOvm4nLj25kp4vmaHNzGU BCXwea5YRBA76FvlvHUKxPBlyeZ2BX6B2Ypep6XR9HsKfPMSLc3lMOKDv13nN8r5qTMS SoiQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v15-20020a17090610cf00b008b239eda12asi16730378ejv.436.2023.02.20.20.04.51; Mon, 20 Feb 2023 20:05:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233559AbjBUD6F (ORCPT + 99 others); Mon, 20 Feb 2023 22:58:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233396AbjBUD5o (ORCPT ); Mon, 20 Feb 2023 22:57:44 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3E7D24CBE; Mon, 20 Feb 2023 19:57:39 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4PLQV62nhmz4f3jJK; Tue, 21 Feb 2023 11:57:34 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S7; Tue, 21 Feb 2023 11:57:36 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 5/7] ext4: remove stale comment in ext4_init_block_bitmap Date: Tue, 21 Feb 2023 19:59:17 +0800 Message-Id: <20230221115919.1918161-6-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S7 X-Coremail-Antispam: 1UD129KBjvdXoWrKrW5Jr4fGr4UWFy5tFy7ZFb_yoWfXrg_Ka 47Kr4kGry3Jr93Kr40vws8tF40qa18Zr45Ja4ftryfu3WUJFWrZ3WkAr43ZF1DuFW7Aas8 A3srZry3tFWIgjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbDkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M28IrcIa0xkI8V A2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJ M28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4x0Y4vE2I x0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK 6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4 xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8 JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20V AGYxC7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc4 0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x0267AK xVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr 1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7sRiVbyDUU UUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411949546738970?= X-GMAIL-MSGID: =?utf-8?q?1758411949546738970?= Commit bdfb6ff4a255d ("ext4: mark group corrupt on group descriptor checksum") added flag to indicate corruption of group instead of marking all blocks used. Just remove stale comment. Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 08f1692f7d2f..4de06d68e9e7 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -187,8 +187,6 @@ static int ext4_init_block_bitmap(struct super_block *sb, ASSERT(buffer_locked(bh)); - /* If checksum is bad mark all blocks used to prevent allocation - * essentially implementing a per-group read-only flag. */ if (!ext4_group_desc_csum_verify(sb, block_group, gdp)) { ext4_mark_group_bitmap_corrupted(sb, block_group, EXT4_GROUP_INFO_BBITMAP_CORRUPT | From patchwork Tue Feb 21 11:59:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59753 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1659088wrn; Mon, 20 Feb 2023 20:01:37 -0800 (PST) X-Google-Smtp-Source: AK7set9EGd6xgEJLmpZ4o60jycZV2uC8/H/uNZA4LoAyTi7hSfEEUaWwjHEmjxB9qlXPopm5gt/Z X-Received: by 2002:a62:16d8:0:b0:5a8:aa9c:8524 with SMTP id 207-20020a6216d8000000b005a8aa9c8524mr3319586pfw.10.1676952096828; Mon, 20 Feb 2023 20:01:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952096; cv=none; d=google.com; s=arc-20160816; b=W0uYBXFOp4xjj0snBxbz0nW0XgmwsH0kjMCoOLP1tze73nLRvJgcxXy097X+0fv8fp z8eUYYZViD8+IhVvVKJ0//H71fcDVzM610dUgc7asJxNR3Q11K//sL5y/Y8ir5dXyw49 s+xpySWlGeT0C9WO2hVs1xVMtGy7pEcNjD5YxBjgJ5QdBazLta4JXLyKUDs0JaxkS7CS ul+K2cGRFvOJNvon/Bb7LHfsn8ncCmszFh3TpYaKX4jr01qIxofNTUGVCHY3qkPcKOP3 Tdm/h09ERE4Q24oFqFKDPz9dz6w/DuwJAX2S2VfuEW4j+eK/cQHXJ5dqqatdhTBWVLou 2dIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=kh1yL61a82GDkNq7dDjVFEITdDk98Y3svTdAljHimIk=; b=fSBCp5sspQKJ2z/VRfH9b2vVRH9pbOFArWZon34OnXsslek86vGBsWCfNgHwdwNycW uSHj7l7NBsJ0a9+8tpU00bO7BS7NsLhbvbEy8E3Xj7mGncWX2BaP5A8cLQo591cCyLnl 97re775uQHcVp+Pa2dzszpDdPar5He4h4S1XVrbGQcP62g6epiBFuQs2mGBAJGbfzOHg KEW4QVyWXNdWMtQvEvhURA3KIqPJo3Z+8GqWLRQZE/dsKRlYD/acbXWAXdMpLcinb+V/ fFNn6qkq1Ezi+Etk2qbtR9TYmwgeudOeHGnW6DeHzkjITPx8Ft4msvJCNofXu3kfsgxi 6mjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t40-20020a056a0013a800b0058dc4c4e238si18491499pfg.360.2023.02.20.20.01.23; Mon, 20 Feb 2023 20:01:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233533AbjBUD5x (ORCPT + 99 others); Mon, 20 Feb 2023 22:57:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233250AbjBUD5n (ORCPT ); Mon, 20 Feb 2023 22:57:43 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8291024CB9; Mon, 20 Feb 2023 19:57:39 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4PLQV64wg2z4f3jZM; Tue, 21 Feb 2023 11:57:34 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S8; Tue, 21 Feb 2023 11:57:36 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 6/7] ext4: stop trying to verify just initialized bitmap in ext4_read_block_bitmap_nowait Date: Tue, 21 Feb 2023 19:59:18 +0800 Message-Id: <20230221115919.1918161-7-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S8 X-Coremail-Antispam: 1UD129KBjvdXoWrury8ZrW7KrW7KFWfCF48WFg_yoW3WFXEga srZw1kW3y3Jw1Sk3Wvva90qr4ktF4rJr48WFWaqFyfuF1UK3WfZa1vyw1fuFZxuFy7Aa4D AFyYqry7JaySgjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbDkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M28IrcIa0xkI8V A2jI8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJ M28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4x0Y4vE2I x0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK 6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4 xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8 JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20V AGYxC7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc4 0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x0267AK xVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr 1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7sRiVbyDUU UUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411721869807967?= X-GMAIL-MSGID: =?utf-8?q?1758411721869807967?= For case we initialize a bitmap bh, we will set bitmap bh verified. We can return immediately instead of goto verify to remove unnecessary work for trying to verify bitmap bh. Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 4de06d68e9e7..dab46274d591 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -484,7 +484,7 @@ ext4_read_block_bitmap_nowait(struct super_block *sb, ext4_group_t block_group, set_buffer_verified(bh); ext4_unlock_group(sb, block_group); unlock_buffer(bh); - goto verify; + return bh; } ext4_unlock_group(sb, block_group); if (buffer_uptodate(bh)) { From patchwork Tue Feb 21 11:59:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 59758 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1660438wrn; Mon, 20 Feb 2023 20:05:39 -0800 (PST) X-Google-Smtp-Source: AK7set9mOOBSz6/YeKPYQ0DkBtR+qTiNy6RiClI3FfU08HOM3vsjsGWUagIl5xJdO24yfX1ZGkkW X-Received: by 2002:a17:906:4fd5:b0:8b1:76b8:904f with SMTP id i21-20020a1709064fd500b008b176b8904fmr9527034ejw.34.1676952339132; Mon, 20 Feb 2023 20:05:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676952339; cv=none; d=google.com; s=arc-20160816; b=Nw/NzR8OMG2rWs0BgEbnsU7EYhKhaA0DpMQfYeY+8AlQJ6sE1lizjye9SdCDu3ksia Ad3i0rw6X0SnmSdNR4qCgjwywH9EynzcEQMxSjS3ji/PGrWizy24IbkuPaDeNbOY3yRT MTKC6iLHC0w4xAtkrJtC95mmRL0RO1tCI6uollmO7OMTfMoYga0qzOrKDoZBO+u/4iBN 4pgFpM2pghO+MGSin0iZJWJknNrkV2wj++gWJ9S+LCHs/rPLUeYfdVOxB07smlD9UBXX gDVXV749AQ1midgc+DuycXj7ACMuC8bvq7xgi9K4if+yjar9gxU/+Y6dRAEKK1lWnEcH StPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=4ZDbv/cf66Lwb28PF/thKabn8KzdpVLam1ZxrpUJJzE=; b=Hmo41+9XgUbvVdsthGRyyGFWtbOOSBGv4sa1csAr2n2Ql6JifnGtQUvXkGnf1ZR6Vi ePZip/g3+J38SwYQ/hP506ha3FTdZOkD0lhr1MZLNYfFiMSvgBP+c2rcYab65g6CfYEL g8bPJIxS35SsId+Ifg6dzbJkh6/Kxi3IvU68+1gOEeYU7OdRysBn/VqZV3XMEnZOTaP3 9WNhBeM1H99/DHwCH7pFd9/lKvKXso+0dswyfwzk/4AU/qobeJCcb9cPjzlT3f/9nt+T troJSfeV7TG69yTe1Pz/uPUY1zhREp4GkX5eePgoh7bv0d1FtgvL4T1Fj7VEwSl+24nf +Opw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k16-20020aa7d8d0000000b004ad0c7d39b0si17013161eds.297.2023.02.20.20.05.15; Mon, 20 Feb 2023 20:05:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233619AbjBUD6I (ORCPT + 99 others); Mon, 20 Feb 2023 22:58:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54886 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233496AbjBUD5q (ORCPT ); Mon, 20 Feb 2023 22:57:46 -0500 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F15FF23327; Mon, 20 Feb 2023 19:57:39 -0800 (PST) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4PLQV70FJkz4f3wQx; Tue, 21 Feb 2023 11:57:35 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP2 (Coremail) with SMTP id Syh0CgC3q+ktQfRj8VfgDw--.30652S9; Tue, 21 Feb 2023 11:57:37 +0800 (CST) From: Kemeng Shi To: tytso@mit.edu, adilger.kernel@dilger.ca Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com Subject: [PATCH 7/7] ext4: improve inode table blocks counting in ext4_num_overhead_clusters Date: Tue, 21 Feb 2023 19:59:19 +0800 Message-Id: <20230221115919.1918161-8-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230221115919.1918161-1-shikemeng@huaweicloud.com> References: <20230221115919.1918161-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: Syh0CgC3q+ktQfRj8VfgDw--.30652S9 X-Coremail-Antispam: 1UD129KBjvJXoW3Gw4rCry5CF4DZry7Cw1rZwb_yoW7WF48pr 47tF1rJr45WF1qgr4ftr1qgryrGw1rKr4UJa43JF13GF9rZr4Ikr9xJrn8AFyqg3W7Xw1q vF1UC34Uu393G37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUPY14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2jI8I6cxK62vIxIIY0VWUZVW8XwA2048vs2IY02 0E87I2jVAFwI0_JF0E3s1l82xGYIkIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0 rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6x IIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xv wVC2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFc xC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_ Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2 IErcIFxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E 14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIx kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF wI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r 4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x0pRvJPtU UUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, SPF_HELO_NONE,SPF_NONE,TVD_PH_BODY_ACCOUNTS_PRE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758411976272204549?= X-GMAIL-MSGID: =?utf-8?q?1758411976272204549?= As inode table blocks are contiguous, inode table blocks inside the block_group can be represented as range [itbl_cluster_start, itbl_cluster_last]. Then we can simply account inode table cluters and check cluster overlap with [itbl_cluster_start, itbl_cluster_last] instead of traverse each block of inode table. By the way, this patch fixes code style problem of comment for ext4_num_overhead_clusters. Signed-off-by: Kemeng Shi --- fs/ext4/balloc.c | 90 +++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index dab46274d591..689edfed231a 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c @@ -80,32 +80,56 @@ static inline int ext4_block_in_group(struct super_block *sb, return (actual_group == block_group) ? 1 : 0; } -/* Return the number of clusters used for file system metadata; this +/* + * Return the number of clusters used for file system metadata; this * represents the overhead needed by the file system. */ static unsigned ext4_num_overhead_clusters(struct super_block *sb, ext4_group_t block_group, struct ext4_group_desc *gdp) { - unsigned num_clusters; - int block_cluster = -1, inode_cluster = -1, itbl_cluster = -1, i, c; + unsigned base_clusters, num_clusters; + int block_cluster, inode_cluster; + int itbl_cluster_start = -1, itbl_cluster_end = -1; ext4_fsblk_t start = ext4_group_first_block_no(sb, block_group); - ext4_fsblk_t itbl_blk; + ext4_fsblk_t end = start + EXT4_BLOCKS_PER_GROUP(sb) - 1; + ext4_fsblk_t itbl_blk_start, itbl_blk_end; struct ext4_sb_info *sbi = EXT4_SB(sb); /* This is the number of clusters used by the superblock, * block group descriptors, and reserved block group * descriptor blocks */ - num_clusters = ext4_num_base_meta_clusters(sb, block_group); + base_clusters = ext4_num_base_meta_clusters(sb, block_group); + num_clusters = base_clusters; /* - * For the allocation bitmaps and inode table, we first need - * to check to see if the block is in the block group. If it - * is, then check to see if the cluster is already accounted - * for in the clusters used for the base metadata cluster, or - * if we can increment the base metadata cluster to include - * that block. Otherwise, we will have to track the cluster - * used for the allocation bitmap or inode table explicitly. + * Account and record inode table clusters if any cluster + * is in the block group, or inode table cluster range is + * [-1, -1] and won't overlap with block/inode bitmap cluster + * accounted below. + */ + itbl_blk_start = ext4_inode_table(sb, gdp); + itbl_blk_end = itbl_blk_start + sbi->s_itb_per_group - 1; + if (itbl_blk_start <= end && itbl_blk_end >= start) { + itbl_blk_start = itbl_blk_start >= start ? + itbl_blk_start : start; + itbl_blk_end = itbl_blk_end <= end ? + itbl_blk_end : end; + + itbl_cluster_start = EXT4_B2C(sbi, itbl_blk_start - start); + itbl_cluster_end = EXT4_B2C(sbi, itbl_blk_end - start); + + num_clusters += itbl_cluster_end - itbl_cluster_start + 1; + /* check if border cluster is overlapped */ + if (itbl_cluster_start == base_clusters - 1) + num_clusters--; + } + + /* + * For the allocation bitmaps, we first need to check to see + * if the block is in the block group. If it is, then check + * to see if the cluster is already accounted for in the clusters + * used for the base metadata cluster and inode tables cluster. * Normally all of these blocks are contiguous, so the special * case handling shouldn't be necessary except for *very* * unusual file system layouts. @@ -113,46 +137,26 @@ static unsigned ext4_num_overhead_clusters(struct super_block *sb, if (ext4_block_in_group(sb, ext4_block_bitmap(sb, gdp), block_group)) { block_cluster = EXT4_B2C(sbi, ext4_block_bitmap(sb, gdp) - start); - if (block_cluster < num_clusters) - block_cluster = -1; - else if (block_cluster == num_clusters) { + if (block_cluster >= base_clusters && + (block_cluster < itbl_cluster_start || + block_cluster > itbl_cluster_end)) num_clusters++; - block_cluster = -1; - } } if (ext4_block_in_group(sb, ext4_inode_bitmap(sb, gdp), block_group)) { inode_cluster = EXT4_B2C(sbi, ext4_inode_bitmap(sb, gdp) - start); - if (inode_cluster < num_clusters) - inode_cluster = -1; - else if (inode_cluster == num_clusters) { - num_clusters++; - inode_cluster = -1; - } - } - - itbl_blk = ext4_inode_table(sb, gdp); - for (i = 0; i < sbi->s_itb_per_group; i++) { - if (ext4_block_in_group(sb, itbl_blk + i, block_group)) { - c = EXT4_B2C(sbi, itbl_blk + i - start); - if ((c < num_clusters) || (c == inode_cluster) || - (c == block_cluster) || (c == itbl_cluster)) - continue; - if (c == num_clusters) { - num_clusters++; - continue; - } + /* + * Additional check if inode bitmap is in just accounted + * block_cluster + */ + if (inode_cluster != block_cluster && + inode_cluster >= base_clusters && + (inode_cluster < itbl_cluster_start || + inode_cluster > itbl_cluster_end)) num_clusters++; - itbl_cluster = c; - } } - if (block_cluster != -1) - num_clusters++; - if (inode_cluster != -1) - num_clusters++; - return num_clusters; }