]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: rename and export __btrfs_cow_block()
authorFilipe Manana <fdmanana@suse.com>
Wed, 27 Sep 2023 11:09:26 +0000 (12:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:30:03 +0000 (13:30 +0100)
[ Upstream commit 95f93bc4cbcac6121a5ee85cd5019ee8e7447e0b ]

Rename and export __btrfs_cow_block() as btrfs_force_cow_block(). This is
to allow to move defrag specific code out of ctree.c and into defrag.c in
one of the next patches.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Stable-dep-of: 44f52bbe96df ("btrfs: fix use-after-free when COWing tree bock and tracing is enabled")
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/ctree.c
fs/btrfs/ctree.h

index 347934eb5198d0f7159b3084fed51d1e9a52bf1b..a02b41106257060ff0cfcdfa24c810fe7cfe6109 100644 (file)
@@ -404,13 +404,13 @@ static noinline int update_ref_for_cow(struct btrfs_trans_handle *trans,
  * bytes the allocator should try to find free next to the block it returns.
  * This is just a hint and may be ignored by the allocator.
  */
-static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
-                            struct btrfs_root *root,
-                            struct extent_buffer *buf,
-                            struct extent_buffer *parent, int parent_slot,
-                            struct extent_buffer **cow_ret,
-                            u64 search_start, u64 empty_size,
-                            enum btrfs_lock_nesting nest)
+int btrfs_force_cow_block(struct btrfs_trans_handle *trans,
+                         struct btrfs_root *root,
+                         struct extent_buffer *buf,
+                         struct extent_buffer *parent, int parent_slot,
+                         struct extent_buffer **cow_ret,
+                         u64 search_start, u64 empty_size,
+                         enum btrfs_lock_nesting nest)
 {
        struct btrfs_fs_info *fs_info = root->fs_info;
        struct btrfs_disk_key disk_key;
@@ -559,7 +559,7 @@ static inline int should_cow_block(struct btrfs_trans_handle *trans,
 }
 
 /*
- * cows a single block, see __btrfs_cow_block for the real work.
+ * COWs a single block, see btrfs_force_cow_block() for the real work.
  * This version of it has extra checks so that a block isn't COWed more than
  * once per transaction, as long as it hasn't been written yet
  */
@@ -612,8 +612,8 @@ noinline int btrfs_cow_block(struct btrfs_trans_handle *trans,
         * Also We don't care about the error, as it's handled internally.
         */
        btrfs_qgroup_trace_subtree_after_cow(trans, root, buf);
-       ret = __btrfs_cow_block(trans, root, buf, parent,
-                                parent_slot, cow_ret, search_start, 0, nest);
+       ret = btrfs_force_cow_block(trans, root, buf, parent, parent_slot,
+                                   cow_ret, search_start, 0, nest);
 
        trace_btrfs_cow_block(root, buf, *cow_ret);
 
@@ -764,11 +764,11 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
                        search_start = last_block;
 
                btrfs_tree_lock(cur);
-               err = __btrfs_cow_block(trans, root, cur, parent, i,
-                                       &cur, search_start,
-                                       min(16 * blocksize,
-                                           (end_slot - i) * blocksize),
-                                       BTRFS_NESTING_COW);
+               err = btrfs_force_cow_block(trans, root, cur, parent, i,
+                                           &cur, search_start,
+                                           min(16 * blocksize,
+                                               (end_slot - i) * blocksize),
+                                           BTRFS_NESTING_COW);
                if (err) {
                        btrfs_tree_unlock(cur);
                        free_extent_buffer(cur);
index cab023927b4341c40b5a95b4c7ee1bd3aa16c470..da8986e0c422233d526496b7685e67799cb59acd 100644 (file)
@@ -3032,6 +3032,13 @@ int btrfs_cow_block(struct btrfs_trans_handle *trans,
                    struct extent_buffer *parent, int parent_slot,
                    struct extent_buffer **cow_ret,
                    enum btrfs_lock_nesting nest);
+int btrfs_force_cow_block(struct btrfs_trans_handle *trans,
+                         struct btrfs_root *root,
+                         struct extent_buffer *buf,
+                         struct extent_buffer *parent, int parent_slot,
+                         struct extent_buffer **cow_ret,
+                         u64 search_start, u64 empty_size,
+                         enum btrfs_lock_nesting nest);
 int btrfs_copy_root(struct btrfs_trans_handle *trans,
                      struct btrfs_root *root,
                      struct extent_buffer *buf,