diff options
author | David Teigland <teigland@redhat.com> | 2009-05-15 11:50:57 -0400 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2009-05-15 12:24:59 -0400 |
commit | 748285ccf7ea76d3d76d0d5f2945ad6fb91f5329 (patch) | |
tree | aeb56a0e18c2f54acccb65e5b6e8ac63f53dfc44 /fs/dlm/dir.c | |
parent | 391fbdc5d527149578490db2f1619951d91f3561 (diff) |
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>
Diffstat (limited to 'fs/dlm/dir.c')
-rw-r--r-- | fs/dlm/dir.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/dlm/dir.c b/fs/dlm/dir.c index 858fba14aaa6..c4dfa1dcc86f 100644 --- a/fs/dlm/dir.c +++ b/fs/dlm/dir.c | |||
@@ -49,7 +49,8 @@ static struct dlm_direntry *get_free_de(struct dlm_ls *ls, int len) | |||
49 | spin_unlock(&ls->ls_recover_list_lock); | 49 | spin_unlock(&ls->ls_recover_list_lock); |
50 | 50 | ||
51 | if (!found) | 51 | if (!found) |
52 | de = kzalloc(sizeof(struct dlm_direntry) + len, GFP_KERNEL); | 52 | de = kzalloc(sizeof(struct dlm_direntry) + len, |
53 | ls->ls_allocation); | ||
53 | return de; | 54 | return de; |
54 | } | 55 | } |
55 | 56 | ||
@@ -211,7 +212,7 @@ int dlm_recover_directory(struct dlm_ls *ls) | |||
211 | 212 | ||
212 | dlm_dir_clear(ls); | 213 | dlm_dir_clear(ls); |
213 | 214 | ||
214 | last_name = kmalloc(DLM_RESNAME_MAXLEN, GFP_KERNEL); | 215 | last_name = kmalloc(DLM_RESNAME_MAXLEN, ls->ls_allocation); |
215 | if (!last_name) | 216 | if (!last_name) |
216 | goto out; | 217 | goto out; |
217 | 218 | ||
@@ -322,7 +323,7 @@ static int get_entry(struct dlm_ls *ls, int nodeid, char *name, | |||
322 | if (namelen > DLM_RESNAME_MAXLEN) | 323 | if (namelen > DLM_RESNAME_MAXLEN) |
323 | return -EINVAL; | 324 | return -EINVAL; |
324 | 325 | ||
325 | de = kzalloc(sizeof(struct dlm_direntry) + namelen, GFP_KERNEL); | 326 | de = kzalloc(sizeof(struct dlm_direntry) + namelen, ls->ls_allocation); |
326 | if (!de) | 327 | if (!de) |
327 | return -ENOMEM; | 328 | return -ENOMEM; |
328 | 329 | ||