dlm: use more NOFS allocation

Change some GFP_KERNEL allocations to use either GFP_NOFS or
ls_allocation (when available) which the fs sets to GFP_NOFS.
The point is to prevent allocations from going back into the
cluster fs in places where that might lead to deadlock.

Signed-off-by: David Teigland <teigland@redhat.com>
This commit is contained in:
David Teigland 2009-05-15 10:50:57 -05:00
parent 391fbdc5d5
commit 748285ccf7
4 changed files with 12 additions and 11 deletions

View file

@ -500,7 +500,7 @@ static void process_sctp_notification(struct connection *con,
return;
}
new_con = nodeid2con(nodeid, GFP_KERNEL);
new_con = nodeid2con(nodeid, GFP_NOFS);
if (!new_con)
return;
@ -736,7 +736,7 @@ static int tcp_accept_from_sock(struct connection *con)
* the same time and the connections cross on the wire.
* In this case we store the incoming one in "othercon"
*/
newcon = nodeid2con(nodeid, GFP_KERNEL);
newcon = nodeid2con(nodeid, GFP_NOFS);
if (!newcon) {
result = -ENOMEM;
goto accept_err;
@ -746,7 +746,7 @@ static int tcp_accept_from_sock(struct connection *con)
struct connection *othercon = newcon->othercon;
if (!othercon) {
othercon = kmem_cache_zalloc(con_cache, GFP_KERNEL);
othercon = kmem_cache_zalloc(con_cache, GFP_NOFS);
if (!othercon) {
log_print("failed to allocate incoming socket");
mutex_unlock(&newcon->sock_mutex);