|
@@ -595,9 +595,14 @@ int clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
|
|
|
clear = 1;
|
|
|
again:
|
|
|
if (!prealloc && (mask & __GFP_WAIT)) {
|
|
|
+ /*
|
|
|
+ * Don't care for allocation failure here because we might end
|
|
|
+ * up not needing the pre-allocated extent state at all, which
|
|
|
+ * is the case if we only have in the tree extent states that
|
|
|
+ * cover our input range and don't cover too any other range.
|
|
|
+ * If we end up needing a new extent state we allocate it later.
|
|
|
+ */
|
|
|
prealloc = alloc_extent_state(mask);
|
|
|
- if (!prealloc)
|
|
|
- return -ENOMEM;
|
|
|
}
|
|
|
|
|
|
spin_lock(&tree->lock);
|