]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/btrfs/root-tree.c
Merge tag 'renesas-fixes-for-v4.10' of https://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / fs / btrfs / root-tree.c
index 091296062456b5621ba6a24d4dcae6932afcba6f..4c6735491ee061cf7d6af58ded5064db2e4874cc 100644 (file)
@@ -46,12 +46,7 @@ static void btrfs_read_root_item(struct extent_buffer *eb, int slot,
                != btrfs_root_generation_v2(item)) {
                if (btrfs_root_generation_v2(item) != 0) {
                        btrfs_warn(eb->fs_info,
-                                       "mismatching "
-                                       "generation and generation_v2 "
-                                       "found in root item. This root "
-                                       "was probably mounted with an "
-                                       "older kernel. Resetting all "
-                                       "new fields.");
+                                       "mismatching generation and generation_v2 found in root item. This root was probably mounted with an older kernel. Resetting all new fields.");
                }
                need_reset = 1;
        }
@@ -137,6 +132,7 @@ int btrfs_update_root(struct btrfs_trans_handle *trans, struct btrfs_root
                      *root, struct btrfs_key *key, struct btrfs_root_item
                      *item)
 {
+       struct btrfs_fs_info *fs_info = root->fs_info;
        struct btrfs_path *path;
        struct extent_buffer *l;
        int ret;
@@ -155,9 +151,9 @@ int btrfs_update_root(struct btrfs_trans_handle *trans, struct btrfs_root
        }
 
        if (ret != 0) {
-               btrfs_print_leaf(root, path->nodes[0]);
-               btrfs_crit(root->fs_info, "unable to update root key %llu %u %llu",
-                      key->objectid, key->type, key->offset);
+               btrfs_print_leaf(fs_info, path->nodes[0]);
+               btrfs_crit(fs_info, "unable to update root key %llu %u %llu",
+                          key->objectid, key->type, key->offset);
                BUG_ON(1);
        }
 
@@ -220,8 +216,9 @@ int btrfs_insert_root(struct btrfs_trans_handle *trans, struct btrfs_root *root,
        return btrfs_insert_item(trans, root, key, item, sizeof(*item));
 }
 
-int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
+int btrfs_find_orphan_roots(struct btrfs_fs_info *fs_info)
 {
+       struct btrfs_root *tree_root = fs_info->tree_root;
        struct extent_buffer *leaf;
        struct btrfs_path *path;
        struct btrfs_key key;
@@ -231,7 +228,7 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
        int ret;
        bool can_recover = true;
 
-       if (tree_root->fs_info->sb->s_flags & MS_RDONLY)
+       if (fs_info->sb->s_flags & MS_RDONLY)
                can_recover = false;
 
        path = btrfs_alloc_path();
@@ -279,8 +276,7 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
                 * in turn reads and inserts fs roots while doing backref
                 * walking.
                 */
-               root = btrfs_lookup_fs_root(tree_root->fs_info,
-                                           root_key.objectid);
+               root = btrfs_lookup_fs_root(fs_info, root_key.objectid);
                if (root) {
                        WARN_ON(!test_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED,
                                          &root->state));
@@ -301,18 +297,16 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
                        trans = btrfs_join_transaction(tree_root);
                        if (IS_ERR(trans)) {
                                err = PTR_ERR(trans);
-                               btrfs_handle_fs_error(tree_root->fs_info, err,
-                                           "Failed to start trans to delete "
-                                           "orphan item");
+                               btrfs_handle_fs_error(fs_info, err,
+                                           "Failed to start trans to delete orphan item");
                                break;
                        }
                        err = btrfs_del_orphan_item(trans, tree_root,
                                                    root_key.objectid);
-                       btrfs_end_transaction(trans, tree_root);
+                       btrfs_end_transaction(trans);
                        if (err) {
-                               btrfs_handle_fs_error(tree_root->fs_info, err,
-                                           "Failed to delete root orphan "
-                                           "item");
+                               btrfs_handle_fs_error(fs_info, err,
+                                           "Failed to delete root orphan item");
                                break;
                        }
                        continue;
@@ -326,7 +320,7 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
 
                set_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &root->state);
 
-               err = btrfs_insert_fs_root(root->fs_info, root);
+               err = btrfs_insert_fs_root(fs_info, root);
                if (err) {
                        BUG_ON(err == -EEXIST);
                        btrfs_free_fs_root(root);
@@ -364,11 +358,12 @@ out:
 }
 
 int btrfs_del_root_ref(struct btrfs_trans_handle *trans,
-                      struct btrfs_root *tree_root,
+                      struct btrfs_fs_info *fs_info,
                       u64 root_id, u64 ref_id, u64 dirid, u64 *sequence,
                       const char *name, int name_len)
 
 {
+       struct btrfs_root *tree_root = fs_info->tree_root;
        struct btrfs_path *path;
        struct btrfs_root_ref *ref;
        struct extent_buffer *leaf;
@@ -435,10 +430,11 @@ out:
  * Will return 0, -ENOMEM, or anything from the CoW path
  */
 int btrfs_add_root_ref(struct btrfs_trans_handle *trans,
-                      struct btrfs_root *tree_root,
+                      struct btrfs_fs_info *fs_info,
                       u64 root_id, u64 ref_id, u64 dirid, u64 sequence,
                       const char *name, int name_len)
 {
+       struct btrfs_root *tree_root = fs_info->tree_root;
        struct btrfs_key key;
        int ret;
        struct btrfs_path *path;