Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp1662266rwr; Wed, 3 May 2023 20:02:12 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7aVYmD3AKQO2M4kKPt1O7h0fZImHGEkKA1ABb8nFBdXLchLiDVmaEAFmaAD+MPZ9eFHLQG X-Received: by 2002:a17:90a:c291:b0:23b:3422:e78a with SMTP id f17-20020a17090ac29100b0023b3422e78amr837954pjt.6.1683169332509; Wed, 03 May 2023 20:02:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683169332; cv=none; d=google.com; s=arc-20160816; b=nJmaNBgFlpzGSY/pmVsNc51KuxFQE+wz9Dc8Mj8TrXjFCgLAuvzE15wy7a5e6M6Fjm cZKoyD5ILiFzR7Zu653oJETdRqn9Pc4gVIxOBM4wu6hy6z588uh+ZqLkp3jKINkT8E2V 3ccH5nkaKFBHRK3CMG+BzuLkUsfNqna1DugJzBFpIUWjlQ0u/YhowBWZ5eAxOFRF6orP MSaHjAQytmZz8+k2wsnXfGx+eUDTR93H3zWKIIuxsZfdf944fLzHlvMO6W8/cxzxfiBY 7Byj4Zu5KNuTLAPMWtdK2IawMpaegNagwus3X054en7tY+qIJ01YuoQYtrlYrc7jnKBp 0+hg== 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=f1U1VY+watK8eHWXimohxQXSzGugaSGjr5o3iEJKkVk=; b=oGis2Ywl1FXAMfa72s6vvUoPyWHjVIhYsmwqbPq0tapkrdeXkms46lSrM0f5LPy0oj 14bbm57uyT4GJ07/wpD9BmEvcCLCGAptA4aTkmOd4/drn2CSi6qfyPY8T/1UjgPvoVBZ WCRshTanOZCMckZJkTbJKlJ7aqPhinhwLT+WIcBHKHAfDZRYx8O7EkedRxdkdVG5uLa6 +3FcAjr1nfb8zajwu2nmFaj1I40Snumzfxice7bWOjW5JgNImuGTyrqBE8k1xHtovWqr yzfMqcHSg6QJzHKytq4ysC2usiEbmUixVUFm5q6D4kle3ofdG63FcWtR+6ssevCevuQM bxXA== 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k11-20020a65464b000000b005142038a8c7si34660051pgr.291.2023.05.03.20.01.57; Wed, 03 May 2023 20:02:12 -0700 (PDT) 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229671AbjEDCyB (ORCPT + 99 others); Wed, 3 May 2023 22:54:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229441AbjEDCyA (ORCPT ); Wed, 3 May 2023 22:54:00 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D93FAE68 for ; Wed, 3 May 2023 19:53:59 -0700 (PDT) Received: from dggpemm500009.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4QBdZp5VfMzpTRS; Thu, 4 May 2023 10:49:54 +0800 (CST) Received: from huawei.com (10.175.101.6) by dggpemm500009.china.huawei.com (7.185.36.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 4 May 2023 10:53:57 +0800 From: ZhaoLong Wang To: , , CC: , , , Subject: [PATCH -next,V2 2/2] ubi: Correct the number of PEBs after a volume resize failure Date: Thu, 4 May 2023 10:53:54 +0800 Message-ID: <20230504025354.3595768-2-wangzhaolong1@huawei.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230504025354.3595768-1-wangzhaolong1@huawei.com> References: <20230504025354.3595768-1-wangzhaolong1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.175.101.6] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpemm500009.china.huawei.com (7.185.36.225) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 In the error handing path `out_acc` of the ubi_resize_volume(), when `pebs < 0`, it means that the volume table record fails to be updated when the volume is shrinked. In this case, the number of ubi->avail_pebs` and `ubi->rsvd_pebs` should also be restored, otherwise the UBI will display an incorrect number of available PEBs. Signed-off-by: ZhaoLong Wang --- drivers/mtd/ubi/vmt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c index 97294def01eb..990571287e84 100644 --- a/drivers/mtd/ubi/vmt.c +++ b/drivers/mtd/ubi/vmt.c @@ -515,13 +515,12 @@ int ubi_resize_volume(struct ubi_volume_desc *desc, int reserved_pebs) out_acc: spin_lock(&ubi->volumes_lock); vol->reserved_pebs = reserved_pebs - pebs; - if (pebs > 0) { - ubi->rsvd_pebs -= pebs; - ubi->avail_pebs += pebs; + ubi->rsvd_pebs -= pebs; + ubi->avail_pebs += pebs; + if (pebs > 0) ubi_eba_copy_table(vol, old_eba_tbl, vol->reserved_pebs); - } else { + else ubi_eba_copy_table(vol, old_eba_tbl, reserved_pebs); - } vol->eba_tbl = old_eba_tbl; spin_unlock(&ubi->volumes_lock); out_free: -- 2.31.1