OSDN Git Service

btrfs: Make btrfs_pin_extent_for_log_replay take transaction handle
authorNikolay Borisov <nborisov@suse.com>
Mon, 20 Jan 2020 14:09:13 +0000 (16:09 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 23 Mar 2020 16:01:37 +0000 (17:01 +0100)
Preparation for refactoring pinned extents tracking.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/extent-tree.c
fs/btrfs/tree-log.c

index 3518cbd..22d0cb0 100644 (file)
@@ -2465,7 +2465,7 @@ int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans,
                             u64 offset, int metadata, u64 *refs, u64 *flags);
 int btrfs_pin_extent(struct btrfs_trans_handle *trans, u64 bytenr, u64 num,
                     int reserved);
-int btrfs_pin_extent_for_log_replay(struct btrfs_fs_info *fs_info,
+int btrfs_pin_extent_for_log_replay(struct btrfs_trans_handle *trans,
                                    u64 bytenr, u64 num_bytes);
 int btrfs_exclude_logged_extents(struct extent_buffer *eb);
 int btrfs_cross_ref_exist(struct btrfs_root *root,
index 6a61e97..e6ea01d 100644 (file)
@@ -2626,13 +2626,13 @@ int btrfs_pin_extent(struct btrfs_trans_handle *trans,
 /*
  * this function must be called within transaction
  */
-int btrfs_pin_extent_for_log_replay(struct btrfs_fs_info *fs_info,
+int btrfs_pin_extent_for_log_replay(struct btrfs_trans_handle *trans,
                                    u64 bytenr, u64 num_bytes)
 {
        struct btrfs_block_group *cache;
        int ret;
 
-       cache = btrfs_lookup_block_group(fs_info, bytenr);
+       cache = btrfs_lookup_block_group(trans->fs_info, bytenr);
        if (!cache)
                return -EINVAL;
 
index 8471f3c..19c107b 100644 (file)
@@ -313,7 +313,7 @@ static int process_one_buffer(struct btrfs_root *log,
        }
 
        if (wc->pin)
-               ret = btrfs_pin_extent_for_log_replay(fs_info, eb->start,
+               ret = btrfs_pin_extent_for_log_replay(wc->trans, eb->start,
                                                      eb->len);
 
        if (!ret && btrfs_buffer_uptodate(eb, gen, 0)) {
@@ -6189,7 +6189,7 @@ again:
                         * each subsequent pass.
                         */
                        if (ret == -ENOENT)
-                               ret = btrfs_pin_extent_for_log_replay(fs_info,
+                               ret = btrfs_pin_extent_for_log_replay(trans,
                                                        log->node->start,
                                                        log->node->len);
                        free_extent_buffer(log->node);