struct extent_state *state;
struct extent_state *prealloc = NULL;
struct rb_node *node;
+ unsigned long flags;
int err;
int set = 0;
return -ENOMEM;
}
- write_lock_irq(&tree->lock);
+ write_lock_irqsave(&tree->lock, flags);
/*
* this search will find the extents that end after
* our range starts
goto search_again;
out:
- write_unlock_irq(&tree->lock);
+ write_unlock_irqrestore(&tree->lock, flags);
if (prealloc)
free_extent_state(prealloc);
search_again:
if (start >= end)
goto out;
- write_unlock_irq(&tree->lock);
+ write_unlock_irqrestore(&tree->lock, flags);
if (mask & __GFP_WAIT)
cond_resched();
goto again;
struct extent_state *state;
struct extent_state *prealloc = NULL;
struct rb_node *node;
+ unsigned long flags;
int err = 0;
int set;
u64 last_start;
return -ENOMEM;
}
- write_lock_irq(&tree->lock);
+ write_lock_irqsave(&tree->lock, flags);
/*
* this search will find all the extents that end after
* our range starts.
goto search_again;
out:
- write_unlock_irq(&tree->lock);
+ write_unlock_irqrestore(&tree->lock, flags);
if (prealloc)
free_extent_state(prealloc);
search_again:
if (start > end)
goto out;
- write_unlock_irq(&tree->lock);
+ write_unlock_irqrestore(&tree->lock, flags);
if (mask & __GFP_WAIT)
cond_resched();
goto again;