]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: make btrfs_super_block::log_root_transid deprecated
authorQu Wenruo <wqu@suse.com>
Tue, 7 Jun 2022 11:50:59 +0000 (19:50 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Jul 2022 15:45:34 +0000 (17:45 +0200)
When using "btrfs inspect-internal dump-super" to inspect an fs with
dirty log, it always shows the log_root_transid as 0:

  log_root                30474240
  log_root_transid        0 <<<
  log_root_level          0

It turns out that, btrfs_super_block::log_root_transid is never really
utilized (even no read for it).

This can date back to the introduction of btrfs into upstream kernel.

In fact, when reading log tree root, we always use
btrfs_super_block::generation + 1 as the expected generation.
So here we're completely safe to mark this member deprecated.

In theory we can easily reuse this member for other purposes, but to be
extra safe, here we follow the leafsize way, by adding "__unused_" for
log_root_transid.
And we can safely remove the accessors, since there is no such callers
from the very beginning.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h

index 22a287cbc3e7c412851a67d2ca6cd1e81b86c4f5..6ae9a95794644d36891e7754d04fd860ae3d7ec5 100644 (file)
@@ -248,8 +248,12 @@ struct btrfs_super_block {
        __le64 chunk_root;
        __le64 log_root;
 
-       /* this will help find the new super based on the log root */
-       __le64 log_root_transid;
+       /*
+        * This member has never been utilized since the very beginning, thus
+        * it's always 0 regardless of kernel version.  We always use
+        * generation + 1 to read log tree root.  So here we mark it deprecated.
+        */
+       __le64 __unused_log_root_transid;
        __le64 total_bytes;
        __le64 bytes_used;
        __le64 root_dir_objectid;
@@ -2475,8 +2479,6 @@ BTRFS_SETGET_STACK_FUNCS(super_chunk_root_level, struct btrfs_super_block,
                         chunk_root_level, 8);
 BTRFS_SETGET_STACK_FUNCS(super_log_root, struct btrfs_super_block,
                         log_root, 64);
-BTRFS_SETGET_STACK_FUNCS(super_log_root_transid, struct btrfs_super_block,
-                        log_root_transid, 64);
 BTRFS_SETGET_STACK_FUNCS(super_log_root_level, struct btrfs_super_block,
                         log_root_level, 8);
 BTRFS_SETGET_STACK_FUNCS(super_total_bytes, struct btrfs_super_block,