Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp7269739rwb; Tue, 6 Dec 2022 03:39:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf4zgCSLHQhJwUnLc1oVbkKMnyFJBjd0bA5BUxVPi6qgd/SaFN94H1trYD0zLhqHGfvn9dHd X-Received: by 2002:a05:6402:5510:b0:461:60e8:7ac3 with SMTP id fi16-20020a056402551000b0046160e87ac3mr29867768edb.80.1670326767775; Tue, 06 Dec 2022 03:39:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670326767; cv=none; d=google.com; s=arc-20160816; b=TXZXTUZPJ1M+y5IW8BvRbPiBiQxageyVQQnS3w++uVW6Mo2F8KCamzq6vQJhpSqedh zoM3w2hW1PNAB4y2d8CndUQmMMpd9ExvdgQ2NeO9E5rubQMHmYz8EvgRg0rDQ0TVV2Rb YXdo2qLL3qQnvdQTxgfq5z2W32lCPlJa5z11+1oJ/zL3Hkhh5dlbaeA4gyh7xgHGMVay P0FhVz7ld5r/pS+HGmKXhxJsZK4oDNnz8Bqzt+ysHLo8Sfjqcvcww7nNOCj+KK8CaDzP g+cyZ1rOKSuqpfRVa6Etaq49cb5CGydSI3GSd0+sCeX2kaim9Vu3iIpbQcFcZMx727QS Js2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=Mk5TMeuAyBlWn4nSHmzevt82gDfLu4jEj2G9ujcB+Kc=; b=hPB3TZl+K8Gaew2EManyOWud/XISfVGqnIxbgGSHeXFnagfEJ66OYnUHphTwHnc4MK xmz6NyJxd5wMkXdWlXwTPpyZuwXQ8RDcow/k2JQR2CnwOCzs5zDTZr3yiUb43lis2bEp d65WVbotPyrCrDbuqAtylCWYKVhVFRd3Y75l2rP/F6iZreExTgyG9JJZraW/fbaONxqy JG2KvpU7Hc7O0uupkFbcE/uElaG8Js78tPqKxwDobG2nk2OmXLTKJAEyifZ+7kJVYmWe LxZO3CO2Yul99+irJbjzzpUJAakZQLd9pshqhcOEIWNLqfrSdvjhLNl0kBNB6I6lynN0 iSjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ljjVCKiF; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qq18-20020a17090720d200b007acd09f5067si1637535ejb.417.2022.12.06.03.39.06; Tue, 06 Dec 2022 03:39:27 -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; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ljjVCKiF; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234493AbiLFLPg (ORCPT + 80 others); Tue, 6 Dec 2022 06:15:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232001AbiLFLPe (ORCPT ); Tue, 6 Dec 2022 06:15:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE5A3B4AE; Tue, 6 Dec 2022 03:15:33 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8850D6164C; Tue, 6 Dec 2022 11:15:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7E77C433D7; Tue, 6 Dec 2022 11:15:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1670325332; bh=PqDQm94J3t+gGNqHINyLNZ7fv2cNXyPIy4NnBX/JFV8=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=ljjVCKiFFyIBzy2y+x7LtU4Vz30MzORul96MgfjgKoVwq1c/XRLDrArLemwqQuE2z m/EQvdcSjEr70C5ApnDR2kaBCRxafkw/1IdjXWKjjYVtdBgJiS4rEJovHnUCTnT0D8 yxQp2wiH8fEAFPKUIfY13fACv4Ojp+vRlGiqSSIX4QtjSHGB9gzov+5CN0aKgD7f+D GleDGcgJcFs1xSw7EcWjdTf52iuCiKdH8qpSV7MJxxJuvLuSyNKyyTuZc/I4IvHezU Iv7i8vaDCkS6xjhkmF9YvElYcGEPBO/37JJAWSxdIKYG0v2PdLJ6YxC1PABmDBTIii ecdoPGzNfPWUA== Received: by mail-oi1-f172.google.com with SMTP id v70so8143185oie.3; Tue, 06 Dec 2022 03:15:32 -0800 (PST) X-Gm-Message-State: ANoB5plJbwt26yp8LSKzYBDeLMj6YPVmy2oGhvlIj7T9Bo0TGsHlBV75 rXptAW5vvAmXtlnDmA4V79QBKY06PQSyipU4dRs= X-Received: by 2002:aca:1e02:0:b0:35b:75b:f3b9 with SMTP id m2-20020aca1e02000000b0035b075bf3b9mr33898236oic.98.1670325332068; Tue, 06 Dec 2022 03:15:32 -0800 (PST) MIME-Version: 1.0 References: <20221201160724.2593341-1-cccheng@synology.com> In-Reply-To: From: Filipe Manana Date: Tue, 6 Dec 2022 11:14:56 +0000 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] btrfs: refuse to remount read-write with unsupported compat-ro features To: Chung-Chiang Cheng Cc: Chung-Chiang Cheng , clm@fb.com, josef@toxicpanda.com, dsterba@suse.com, linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@cccheng.net, Johnny Chang Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS 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 On Tue, Dec 6, 2022 at 2:42 AM Chung-Chiang Cheng wrote: > > On Mon, Dec 5, 2022 at 6:45 PM Filipe Manana wrote: > > > > Wasn't this already done by the following commit? > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=81d5d61454c365718655cfc87d8200c84e25d596 > > > > Thanks. > > > > Wow. I did not notice this commit doing the same job by Qu. But I have > tested the latest linux-6.1 rc-7, and it's still able to mount a unsupported > comat-ro btrfs as read-write via remount. > > It's caused by the follow-up commit d7f67ac9a928 ("btrfs: relax > block-group-tree feature dependency checks"). This commit checks read- > only with the current superblock, which will always pass in the situation > remounting from read-only to read-write. It seems `btrfs_check_features()` > cannot cover this scenario. > > if (compat_ro_unsupp && !sb_rdonly(sb)) { > ^^^^^^^^^^^^^^ Yep, that's a bug. btrfs_check_features() is called before the read only flag is updated in the super block. So the condition should be: if (compat_ro_unsupp && sb_rdonly(sb) && we_want_to_transition_to_rw) We need to pass the flags passed to btrfs_remount() to btrfs_check_features() for that "we_want_to_transition_to_rw" check. That seems to be what needs to be fixed. Thanks. > > Thanks, > C.C.Cheng