Received: by 2002:a05:7412:f690:b0:e2:908c:2ebd with SMTP id ej16csp179900rdb; Thu, 19 Oct 2023 00:39:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHBKiY74+sltU6DQaW+vLzdE1u0xWRs9Nofpk/po+yNcc3Ve6HNCkeF7F6LbBGpXur4udq/ X-Received: by 2002:a17:903:1212:b0:1c6:3228:c2ca with SMTP id l18-20020a170903121200b001c63228c2camr1852809plh.29.1697701169567; Thu, 19 Oct 2023 00:39:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697701169; cv=none; d=google.com; s=arc-20160816; b=Y47Vm/zFmM+DDcWfnju/R9CAU09mM59R6c71waQOk2EyGva8NpZQUe+yFqm46hQWfY E8aXCoirHu8Z3JHYQ0c+zqqtJme6+svrHSgL90CqutOE9O7EQlrCc+UqjE1AhuzLSS36 t9z49sdf4DOwwaaU2cQUpOUTjzUxSOJ6szcN6huC7AmKANChhUfJlBS7XPwUQFSIqaEC 4WrLyQmgljuHNS/KK6cSme5Ipa8KIJfAayqjXgdlfN2HGkOWfwuaijFxgUQPuvB10fQm fvMvC4sd1/N4lZE0jqFPH9dx0/v66M2tN+RvFdPDbXzLBgzdmEMKALHzsT9XvdakZ/JE 1geQ== 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 :dkim-signature:dkim-filter; bh=8EUTHmA8KnT2ITQYRQVP7dMugb9aOlZWZtyYH44SnBU=; fh=z04m01zZhn5uu+rjWezIAvGbzftPNNgrYqgMHlvRWmo=; b=odQKEIu+N32EnbeWkiNrqh943b2VOuWJDJ8PRoDuzw7vNx/onEocCJr13Zo5ClTadC c+gB1XVBEyo9r2AvWSIRqi0qElIEKtK7hDQlSRR893FJxEQ/tLhBaNKaaslIBCOAEaN7 EOl2RRWgED77Fd+wEJ45UKrAC2qdXtcErl5qeYL9EJfVuNmB8CrmTpCkLrUVIiN2WDKl SO8FzTPZ0ASnasXbeqkva6aW4SVHjXEd9ObK2LP026YBfZzFfNcFZs+gSzy4k/jmUb3d uY0ONNKL9lQ0zwCftSBTajErxLP4JUdqQJhvCIi2YX/SqQzbETbKwF7ZJr3PvlArbK1u +Ubg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@salutedevices.com header.s=mail header.b=RJqzeRRE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=salutedevices.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id m12-20020a170902db0c00b001bbd639dff9si1777406plx.467.2023.10.19.00.39.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 00:39:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@salutedevices.com header.s=mail header.b=RJqzeRRE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=salutedevices.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 4EEAA8135696; Thu, 19 Oct 2023 00:39:27 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344906AbjJSHjD (ORCPT + 99 others); Thu, 19 Oct 2023 03:39:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344876AbjJSHix (ORCPT ); Thu, 19 Oct 2023 03:38:53 -0400 Received: from mx1.sberdevices.ru (mx2.sberdevices.ru [45.89.224.132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D23C124 for ; Thu, 19 Oct 2023 00:38:50 -0700 (PDT) Received: from p-infra-ksmg-sc-msk02 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id 3BBC012000D; Thu, 19 Oct 2023 10:38:48 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru 3BBC012000D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=salutedevices.com; s=mail; t=1697701128; bh=8EUTHmA8KnT2ITQYRQVP7dMugb9aOlZWZtyYH44SnBU=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=RJqzeRRENG7CfJEsIsI0BPnh5KtG1+wukdYnK7byqgLTlFaupDaqKma3G7URgTM9C wCmSQJvYf3YEb+FY7krEBmJIz53ud6CA0apGGhJABXEYd8FB9B2vq3LFfR9XDtv9mT WxJ/D+b6Qyp2rRRQAUPQLG1OIvF79Nkf+D47uGn9v4R+1astZEwtOansqJLyNXsTu0 7b3158RxtGXZ3eIfk+fUr/xKzFimL2q4evzH6uNbTsa0dkN09akJv1RZHrsMoacf0T dq1R9L1MYZaP1hLFDtgEQEAkjS4L/FqL8nzl7MVE9GaxldL0dMnKDj2bgSo7BzNOQd 7fXkG7gx4Md+Q== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Thu, 19 Oct 2023 10:38:48 +0300 (MSK) Received: from CAB-WSD-0004828.sigma.sbrf.ru (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.37; Thu, 19 Oct 2023 10:38:47 +0300 From: Martin Kurbanov To: David Woodhouse , Richard Weinberger , Christian Brauner , Dave Chinner , Yu Zhe CC: , , , Martin Kurbanov Subject: [PATCH v1 2/2] jffs2: make cleanmarker support option Date: Thu, 19 Oct 2023 10:38:38 +0300 Message-ID: <20231019073838.17586-3-mmkurbanov@salutedevices.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20231019073838.17586-1-mmkurbanov@salutedevices.com> References: <20231019073838.17586-1-mmkurbanov@salutedevices.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m02.sberdevices.ru (172.16.192.103) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 180720 [Oct 19 2023] X-KSMG-AntiSpam-Version: 6.0.0.2 X-KSMG-AntiSpam-Envelope-From: mmkurbanov@salutedevices.com X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 541 541 6f62a06a82e8ec968d29b8e7c7bba6aeceb34f57, {Tracking_from_domain_doesnt_match_to}, p-i-exch-sc-m01.sberdevices.ru:7.1.1,5.0.1;127.0.0.199:7.1.2;salutedevices.com:7.1.1;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;100.64.160.123:7.1.2, FromAlignment: s, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/10/19 05:18:00 #22229383 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 19 Oct 2023 00:39:27 -0700 (PDT) This patch support for disable cleanmarker option. This is useful on some NAND devices which entire OOB area is protected by ECC. Problem fires when JFFS2 driver writes cleanmarker to some page and later it tries to write to this page - write will be done successfully, but after that such page becomes unreadable due to invalid ECC codes. This occurs because the second write necessitates an update to ECC, but it is impossible to do it correctly without block erase. Signed-off-by: Martin Kurbanov --- fs/jffs2/Kconfig | 10 ++++++++++ fs/jffs2/os-linux.h | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/fs/jffs2/Kconfig b/fs/jffs2/Kconfig index 7c96bc107218..8a66941d1e93 100644 --- a/fs/jffs2/Kconfig +++ b/fs/jffs2/Kconfig @@ -29,6 +29,16 @@ config JFFS2_FS_DEBUG If reporting bugs, please try to have available a full dump of the messages at debug level 1 while the misbehaviour was occurring. +config JFFS2_FS_NOCLEANMARKER + bool "Disable cleanmarkers JFFS2 feature" + depends on JFFS2_FS_WRITEBUFFER + depends on MTD_NAND || MTD_SPI_NAND + default n + help + Do not write 'CLEANMARKER' nodes to the beginning of each erase block. + This option can be useful on NAND flash where there is no free + space in the OOB area or the entire OOB area is protected by ECC. + config JFFS2_FS_WRITEBUFFER bool "JFFS2 write-buffering support" depends on JFFS2_FS diff --git a/fs/jffs2/os-linux.h b/fs/jffs2/os-linux.h index c604f639a00f..ea42964d8118 100644 --- a/fs/jffs2/os-linux.h +++ b/fs/jffs2/os-linux.h @@ -109,7 +109,9 @@ static inline void jffs2_init_inode_info(struct jffs2_inode_info *f) #define jffs2_can_mark_obsolete(c) (c->mtd->flags & (MTD_BIT_WRITEABLE)) #endif -#define jffs2_cleanmarker_oob(c) (c->mtd->type == MTD_NANDFLASH) +#define jffs2_cleanmarker_oob(c) \ + (!IS_ENABLED(CONFIG_JFFS2_FS_NOCLEANMARKER) && \ + ((c)->mtd->type == MTD_NANDFLASH)) #define jffs2_wbuf_dirty(c) (!!(c)->wbuf_len) -- 2.40.0