diff options
Diffstat (limited to 'drivers/md/dm-raid1.c')
| -rw-r--r-- | drivers/md/dm-raid1.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index be48cedf986b..c54de989eb00 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c | |||
| @@ -255,7 +255,9 @@ static struct region *__rh_alloc(struct region_hash *rh, region_t region) | |||
| 255 | struct region *reg, *nreg; | 255 | struct region *reg, *nreg; |
| 256 | 256 | ||
| 257 | read_unlock(&rh->hash_lock); | 257 | read_unlock(&rh->hash_lock); |
| 258 | nreg = mempool_alloc(rh->region_pool, GFP_NOIO); | 258 | nreg = mempool_alloc(rh->region_pool, GFP_ATOMIC); |
| 259 | if (unlikely(!nreg)) | ||
| 260 | nreg = kmalloc(sizeof(struct region), GFP_NOIO); | ||
| 259 | nreg->state = rh->log->type->in_sync(rh->log, region, 1) ? | 261 | nreg->state = rh->log->type->in_sync(rh->log, region, 1) ? |
| 260 | RH_CLEAN : RH_NOSYNC; | 262 | RH_CLEAN : RH_NOSYNC; |
| 261 | nreg->rh = rh; | 263 | nreg->rh = rh; |
