]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode
authorNikolay Borisov <nborisov@suse.com>
Wed, 3 Jun 2020 05:55:46 +0000 (08:55 +0300)
committerKhalid Elmously <khalid.elmously@canonical.com>
Wed, 16 Sep 2020 09:15:01 +0000 (05:15 -0400)
BugLink: https://bugs.launchpad.net/bugs/1895174
[ Upstream commit cfdd45921571eb24073e0737fa0bd44b4218f914 ]

vfs_inode is used only for the inode number everything else requires
btrfs_inode.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ use btrfs_ino ]
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
fs/btrfs/inode.c
fs/btrfs/qgroup.c
fs/btrfs/qgroup.h

index fa7f3a59813ea16c1e06d63734d5a2b9881df232..411ec3e3a7dc1d06b8d858737cdcf4f6ab144c43 100644 (file)
@@ -9568,7 +9568,7 @@ void btrfs_destroy_inode(struct inode *inode)
                        btrfs_put_ordered_extent(ordered);
                }
        }
-       btrfs_qgroup_check_reserved_leak(inode);
+       btrfs_qgroup_check_reserved_leak(BTRFS_I(inode));
        inode_tree_del(inode);
        btrfs_drop_extent_cache(BTRFS_I(inode), 0, (u64)-1, 0);
 }
index b94f6f99e90d0597558a45beac5b202c3981b92a..04fd02e6124dd0f6d197e18d46ccef29840eb080 100644 (file)
@@ -3769,7 +3769,7 @@ void btrfs_qgroup_convert_reserved_meta(struct btrfs_root *root, int num_bytes)
  * Check qgroup reserved space leaking, normally at destroy inode
  * time
  */
-void btrfs_qgroup_check_reserved_leak(struct inode *inode)
+void btrfs_qgroup_check_reserved_leak(struct btrfs_inode *inode)
 {
        struct extent_changeset changeset;
        struct ulist_node *unode;
@@ -3777,19 +3777,19 @@ void btrfs_qgroup_check_reserved_leak(struct inode *inode)
        int ret;
 
        extent_changeset_init(&changeset);
-       ret = clear_record_extent_bits(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
+       ret = clear_record_extent_bits(&inode->io_tree, 0, (u64)-1,
                        EXTENT_QGROUP_RESERVED, &changeset);
 
        WARN_ON(ret < 0);
        if (WARN_ON(changeset.bytes_changed)) {
                ULIST_ITER_INIT(&iter);
                while ((unode = ulist_next(&changeset.range_changed, &iter))) {
-                       btrfs_warn(BTRFS_I(inode)->root->fs_info,
-                               "leaking qgroup reserved space, ino: %lu, start: %llu, end: %llu",
-                               inode->i_ino, unode->val, unode->aux);
+                       btrfs_warn(inode->root->fs_info,
+               "leaking qgroup reserved space, ino: %llu, start: %llu, end: %llu",
+                               btrfs_ino(inode), unode->val, unode->aux);
                }
-               btrfs_qgroup_free_refroot(BTRFS_I(inode)->root->fs_info,
-                               BTRFS_I(inode)->root->root_key.objectid,
+               btrfs_qgroup_free_refroot(inode->root->fs_info,
+                               inode->root->root_key.objectid,
                                changeset.bytes_changed, BTRFS_QGROUP_RSV_DATA);
 
        }
index 17e8ac992c502ae9fd352abbc7de5aee58005193..b0420c4f5d0efa730c4727eed930e324a5ea94f3 100644 (file)
@@ -399,7 +399,7 @@ void btrfs_qgroup_free_meta_all_pertrans(struct btrfs_root *root);
  */
 void btrfs_qgroup_convert_reserved_meta(struct btrfs_root *root, int num_bytes);
 
-void btrfs_qgroup_check_reserved_leak(struct inode *inode);
+void btrfs_qgroup_check_reserved_leak(struct btrfs_inode *inode);
 
 /* btrfs_qgroup_swapped_blocks related functions */
 void btrfs_qgroup_init_swapped_blocks(