summaryrefslogtreecommitdiff
path: root/drivers/char/drm/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorDave Chen <davechen@synology.com>2026-04-07 11:36:24 +0800
committerDavid Sterba <dsterba@suse.com>2026-04-07 19:43:06 +0200
commite70e3f858e084aee34a2206e5f4dd49a47673f6a (patch)
treec7ba202778e5de9108ad44290f306db608c301b6 /drivers/char/drm/git@git.tavy.me:linux.git
parente1194226bf7642cab9d45f32fff4ea600c9069cc (diff)
btrfs: use BTRFS_FS_UPDATE_UUID_TREE_GEN flag for UUID tree rescan check
The UUID tree rescan check in open_ctree() compares fs_info->generation with the superblock's uuid_tree_generation. This comparison is not reliable because fs_info->generation is bumped at transaction start time in join_transaction(), while uuid_tree_generation is only updated at commit time via update_super_roots(). Between the early BTRFS_FS_UPDATE_UUID_TREE_GEN flag check and the late rescan decision, mount operations such as file orphan cleanup from an unclean shutdown start transactions without committing them. This advances fs_info->generation past uuid_tree_generation and produces a false-positive mismatch. Use the BTRFS_FS_UPDATE_UUID_TREE_GEN flag directly instead. The flag was already set earlier in open_ctree() when the generations were known to match, and accurately represents "UUID tree is up to date" without being affected by subsequent transaction starts. Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Dave Chen <davechen@synology.com> Signed-off-by: Robbie Ko <robbieko@synology.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'drivers/char/drm/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions