Re: linux-next: build failure after merge of the btrfs tree

From: Qu Wenruo
Date: Wed Oct 23 2024 - 20:53:13 EST




在 2024/10/24 11:17, David Sterba 写道:
On Thu, Oct 24, 2024 at 08:58:58AM +1030, Qu Wenruo wrote:


在 2024/10/24 08:27, Stephen Rothwell 写道:
Hi all,

After merging the btrfs tree, today's linux-next build (x86_64
allmodconfig) failed like this:

fs/btrfs/super.c: In function 'btrfs_reconfigure_for_mount':
fs/btrfs/super.c:2011:56: error: suggest parentheses around '&&' within '||' [-Werror=parentheses]
2011 | if (!fc->oldapi || !(fc->sb_flags & SB_RDONLY) && (mnt->mnt_sb->s_flags & SB_RDONLY))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Caused by commit

4642e430c55b ("btrfs: fix mount failure due to remount races")

My bad, in fact a new patch is going to remove the oldapi check
completely as newer mount using new API will break the per-subvolume
RO/RW again.

Thus a new patch is needed to remove the oldapi check first
(https://lore.kernel.org/linux-btrfs/e1a70aa6dd0fc9ba6c7050a5befb3bd5b75a1377.1729664802.git.wqu@xxxxxxxx/),
then the newer v2 patch
(https://lore.kernel.org/linux-btrfs/08e45ca0-5ed9-4684-940f-1e956a936628@xxxxxxx/T/#t)
will be completely fine.

I probably missed the v2 and picked the patch with warning that I did
not consider too serious but it seems linux-next builds with -Werrror.
Meanwhile I've updated the for-next snapshot branch and dropped the
patch.

I'd prefer to pick the v2 and its dependency ("btrfs: fix per-subvolume RO/RW flags with new mount API") for early testing.

As I'm pretty sure the rolling distros are already rolling out new mount using the fsconfig API, and breaking our per-subvolume RO/RW mount.

The promise that new mount API will solve the per-subvolume RO/RW without reconfiguration is mostly a lie.
The reality is, RO mount is still passed with both fsconfig(FSCONFIG_SET_FLAG, "ro") and mount_setattr(MOUNT_ATTR_RDONLY), doing exactly the same thing as the old mount.

Thanks,
Qu