|
@@ -873,8 +873,14 @@ __set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
|
|
bits |= EXTENT_FIRST_DELALLOC;
|
|
bits |= EXTENT_FIRST_DELALLOC;
|
|
again:
|
|
again:
|
|
if (!prealloc && gfpflags_allow_blocking(mask)) {
|
|
if (!prealloc && gfpflags_allow_blocking(mask)) {
|
|
|
|
+ /*
|
|
|
|
+ * 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);
|
|
prealloc = alloc_extent_state(mask);
|
|
- BUG_ON(!prealloc);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
spin_lock(&tree->lock);
|
|
spin_lock(&tree->lock);
|