diff options
author | Josef Bacik <jbacik@fb.com> | 2016-05-27 13:03:04 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-06-17 12:32:40 -0400 |
commit | 3b6571c180da85e43550c608e954ab7b2a31d954 (patch) | |
tree | 8304cce6ef150c2913254a24453bf842af1e78b0 /fs | |
parent | 64c12921e11b3a0c10d088606e328c58e29274d8 (diff) |
Btrfs: don't BUG_ON() in btrfs_orphan_add
This is just a screwup for developers, so change it to an ASSERT() so developers
notice when things go wrong and deal with the error appropriately if ASSERT()
isn't enabled. Thanks,
Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Mark Fasheh <mfasheh@suse.de>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/inode.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index e5558d9e396e..bb62418b8023 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -3271,7 +3271,16 @@ int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct inode *inode) | |||
3271 | /* grab metadata reservation from transaction handle */ | 3271 | /* grab metadata reservation from transaction handle */ |
3272 | if (reserve) { | 3272 | if (reserve) { |
3273 | ret = btrfs_orphan_reserve_metadata(trans, inode); | 3273 | ret = btrfs_orphan_reserve_metadata(trans, inode); |
3274 | BUG_ON(ret); /* -ENOSPC in reservation; Logic error? JDM */ | 3274 | ASSERT(!ret); |
3275 | if (ret) { | ||
3276 | atomic_dec(&root->orphan_inodes); | ||
3277 | clear_bit(BTRFS_INODE_ORPHAN_META_RESERVED, | ||
3278 | &BTRFS_I(inode)->runtime_flags); | ||
3279 | if (insert) | ||
3280 | clear_bit(BTRFS_INODE_HAS_ORPHAN_ITEM, | ||
3281 | &BTRFS_I(inode)->runtime_flags); | ||
3282 | return ret; | ||
3283 | } | ||
3275 | } | 3284 | } |
3276 | 3285 | ||
3277 | /* insert an orphan item to track this unlinked/truncated file */ | 3286 | /* insert an orphan item to track this unlinked/truncated file */ |