aboutsummaryrefslogtreecommitdiff
path: root/drivers/md/dm-raid1.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-08-29 17:20:55 -0400
committerJeff Garzik <jeff@garzik.org>2006-08-29 17:20:55 -0400
commita422142cfdf90d889d8d3e2affb8311a381530b7 (patch)
treebde7e2c7a3ee8bca649aecd877a9ee1593f4223e /drivers/md/dm-raid1.c
parent6fc47e31c0e802d205d67e644f654532e5d365d5 (diff)
parent60d4684068ff1eec78f55b5888d0bd2d4cca1520 (diff)
Merge branch 'master' into upstream
Diffstat (limited to 'drivers/md/dm-raid1.c')
-rw-r--r--drivers/md/dm-raid1.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index be48cedf986..c54de989eb0 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)
struct region *reg, *nreg;
read_unlock(&rh->hash_lock);
- nreg = mempool_alloc(rh->region_pool, GFP_NOIO);
+ nreg = mempool_alloc(rh->region_pool, GFP_ATOMIC);
+ if (unlikely(!nreg))
+ nreg = kmalloc(sizeof(struct region), GFP_NOIO);
nreg->state = rh->log->type->in_sync(rh->log, region, 1) ?
RH_CLEAN : RH_NOSYNC;
nreg->rh = rh;