dm raid1: keep retrying alloc if mempool_alloc failed
authorMikulas Patocka <mpatocka@redhat.com>
Mon, 22 Jun 2009 09:12:13 +0000 (10:12 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Mon, 22 Jun 2009 09:12:13 +0000 (10:12 +0100)
commita72986c562eeec3f7b992198c168f0f41606fe53
tree2ee7051fa43c04ab0d72487b249aa733ec129703
parente54f77ddda72781ec1c1696b21aabd6a30cbb7c6
dm raid1: keep retrying alloc if mempool_alloc failed

If the code can't handle allocation failures, use __GFP_NOFAIL so that
in case of memory pressure the allocator will retry indefinitely and
won't return NULL which would cause a crash in the function.

This is still not a correct fix, it may cause a classic deadlock when
memory manager waits for I/O being done and I/O waits for some free memory.
I/O code shouldn't allocate any memory. But in this case it probably
doesn't matter much in practice, people usually do not swap on RAID.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-region-hash.c