OSDN Git Service

btrfs: User assert to document transaction requirement
authorNikolay Borisov <nborisov@suse.com>
Tue, 8 Oct 2019 13:26:16 +0000 (16:26 +0300)
committerDavid Sterba <dsterba@suse.com>
Mon, 18 Nov 2019 11:46:54 +0000 (12:46 +0100)
Using an ASSERT in btrfs_pin_extent allows to more stringently observe
whether the function is called under a transaction or not.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
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-tree.c

index 9e58455..569fd2a 100644 (file)
@@ -2590,14 +2590,13 @@ static int pin_down_extent(struct btrfs_block_group_cache *cache,
        return 0;
 }
 
-/*
- * this function must be called within transaction
- */
 int btrfs_pin_extent(struct btrfs_fs_info *fs_info,
                     u64 bytenr, u64 num_bytes, int reserved)
 {
        struct btrfs_block_group_cache *cache;
 
+       ASSERT(fs_info->running_transaction);
+
        cache = btrfs_lookup_block_group(fs_info, bytenr);
        BUG_ON(!cache); /* Logic error */