btrfs: Remove extent_io_ops::check_extent_io_range callback
authorNikolay Borisov <nborisov@suse.com>
Thu, 1 Nov 2018 12:09:49 +0000 (14:09 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 17 Dec 2018 13:51:28 +0000 (14:51 +0100)
This callback was only used in debug builds by btrfs_leak_debug_check.
A better approach is to move its implementation in
btrfs_leak_debug_check and ensure the latter is only executed for extent
tree which have ->private_data set i.e. relate to a data node and not
the btree one. No functional changes.

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/extent_io.c
fs/btrfs/extent_io.h
fs/btrfs/inode.c

index 33d761ff5bd3894eb00201a5092b51a4db2cf4b2..c63334c6b0082d356371e4f7505ee61ee68a1732 100644 (file)
@@ -89,9 +89,18 @@ void btrfs_leak_debug_check(void)
 static inline void __btrfs_debug_check_extent_io_range(const char *caller,
                struct extent_io_tree *tree, u64 start, u64 end)
 {
-       if (tree->ops && tree->ops->check_extent_io_range)
-               tree->ops->check_extent_io_range(tree->private_data, caller,
-                                                start, end);
+       struct inode *inode = tree->private_data;
+       u64 isize;
+
+       if (!inode || !is_data_inode(inode))
+               return;
+
+       isize = i_size_read(inode);
+       if (end >= PAGE_SIZE && (end % 2) == 0 && end != isize - 1) {
+               btrfs_debug_rl(BTRFS_I(inode)->root->fs_info,
+                   "%s: ino %llu isize %llu odd range [%llu,%llu]",
+                       caller, btrfs_ino(BTRFS_I(inode)), isize, start, end);
+       }
 }
 #else
 #define btrfs_leak_debug_add(new, head)        do {} while (0)
index 415ea7c2b0586f02f116f8ead3bf55bc7d73daba..3cb84a0fbaabbc37f296973ad8e6988e4dfdc87b 100644 (file)
@@ -116,8 +116,6 @@ struct extent_io_ops {
                                  struct extent_state *other);
        void (*split_extent_hook)(void *private_data,
                                  struct extent_state *orig, u64 split);
-       void (*check_extent_io_range)(void *private_data, const char *caller,
-                                     u64 start, u64 end);
 };
 
 struct extent_io_tree {
index bf617503d5b73a57521681c8bd18d6b56712f97d..175ef341b8aec6c91724381af7cd08da6d517015 100644 (file)
@@ -10451,20 +10451,6 @@ static int btrfs_readpage_io_failed_hook(struct page *page, int failed_mirror)
        return -EAGAIN;
 }
 
-static void btrfs_check_extent_io_range(void *private_data, const char *caller,
-                                       u64 start, u64 end)
-{
-       struct inode *inode = private_data;
-       u64 isize;
-
-       isize = i_size_read(inode);
-       if (end >= PAGE_SIZE && (end % 2) == 0 && end != isize - 1) {
-               btrfs_debug_rl(BTRFS_I(inode)->root->fs_info,
-                   "%s: ino %llu isize %llu odd range [%llu,%llu]",
-                       caller, btrfs_ino(BTRFS_I(inode)), isize, start, end);
-       }
-}
-
 void btrfs_set_range_writeback(struct extent_io_tree *tree, u64 start, u64 end)
 {
        struct inode *inode = tree->private_data;
@@ -10530,7 +10516,6 @@ static const struct extent_io_ops btrfs_extent_io_ops = {
        .clear_bit_hook = btrfs_clear_bit_hook,
        .merge_extent_hook = btrfs_merge_extent_hook,
        .split_extent_hook = btrfs_split_extent_hook,
-       .check_extent_io_range = btrfs_check_extent_io_range,
 };
 
 /*