|
@@ -1551,7 +1551,13 @@ static void btrfs_clear_bit_hook(struct inode *inode,
|
|
|
spin_unlock(&BTRFS_I(inode)->lock);
|
|
|
}
|
|
|
|
|
|
- if (*bits & EXTENT_DO_ACCOUNTING)
|
|
|
+ /*
|
|
|
+ * We don't reserve metadata space for space cache inodes so we
|
|
|
+ * don't need to call dellalloc_release_metadata if there is an
|
|
|
+ * error.
|
|
|
+ */
|
|
|
+ if (*bits & EXTENT_DO_ACCOUNTING &&
|
|
|
+ root != root->fs_info->tree_root)
|
|
|
btrfs_delalloc_release_metadata(inode, len);
|
|
|
|
|
|
if (root->root_key.objectid != BTRFS_DATA_RELOC_TREE_OBJECTID
|