• Nikolay Borisov's avatar
    btrfs: Factor out tree roots initialization during mount · b8522a1e
    Nikolay Borisov authored
    The code responsible for reading and initializing tree roots is
    scattered in open_ctree among 2 labels, emulating a loop. This is rather
    confusing to reason about. Instead, factor the code to a new function,
    init_tree_roots which implements the same logical flow.
    
    There are a couple of notable differences, namely:
    
    * Instead of using next_backup_root it's using the newly introduced
      read_backup_root.
    
    * If read_backup_root returns an error init_tree_roots propagates the
      error and there is no special handling of that case e.g. the code jumps
      straight to 'fail_tree_roots' label. The old code, however, was
      (erroneously) jumping to 'fail_block_groups' label if next_backup_root
      did fail, this was unnecessary since the tree roots init logic doesn't
      modify the state of block groups.
    Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    b8522a1e
disk-io.c 126 KB