提交 232087cb 编写于 作者: P Pekka Enberg 提交者: Steve French

cifs: don't use GFP_KERNEL with GFP_NOFS

GFP_KERNEL and GFP_NOFS are mutually exclusive. If you combine them, you end up
with plain GFP_KERNEL which can deadlock in cases where you really want
GFP_NOFS.

Cc: Steve French <sfrench@samba.org>
Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: NSteve French <sfrench@us.ibm.com>
上级 388e57b2
...@@ -150,8 +150,7 @@ cifs_buf_get(void) ...@@ -150,8 +150,7 @@ cifs_buf_get(void)
but it may be more efficient to always alloc same size but it may be more efficient to always alloc same size
albeit slightly larger than necessary and maxbuffersize albeit slightly larger than necessary and maxbuffersize
defaults to this and can not be bigger */ defaults to this and can not be bigger */
ret_buf = (struct smb_hdr *) mempool_alloc(cifs_req_poolp, ret_buf = mempool_alloc(cifs_req_poolp, GFP_NOFS);
GFP_KERNEL | GFP_NOFS);
/* clear the first few header bytes */ /* clear the first few header bytes */
/* for most paths, more is cleared in header_assemble */ /* for most paths, more is cleared in header_assemble */
...@@ -188,8 +187,7 @@ cifs_small_buf_get(void) ...@@ -188,8 +187,7 @@ cifs_small_buf_get(void)
but it may be more efficient to always alloc same size but it may be more efficient to always alloc same size
albeit slightly larger than necessary and maxbuffersize albeit slightly larger than necessary and maxbuffersize
defaults to this and can not be bigger */ defaults to this and can not be bigger */
ret_buf = (struct smb_hdr *) mempool_alloc(cifs_sm_req_poolp, ret_buf = mempool_alloc(cifs_sm_req_poolp, GFP_NOFS);
GFP_KERNEL | GFP_NOFS);
if (ret_buf) { if (ret_buf) {
/* No need to clear memory here, cleared in header assemble */ /* No need to clear memory here, cleared in header assemble */
/* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/ /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/
......
...@@ -50,8 +50,7 @@ AllocMidQEntry(const struct smb_hdr *smb_buffer, struct cifsSesInfo *ses) ...@@ -50,8 +50,7 @@ AllocMidQEntry(const struct smb_hdr *smb_buffer, struct cifsSesInfo *ses)
return NULL; return NULL;
} }
temp = (struct mid_q_entry *) mempool_alloc(cifs_mid_poolp, temp = mempool_alloc(cifs_mid_poolp, GFP_NOFS);
GFP_KERNEL | GFP_NOFS);
if (temp == NULL) if (temp == NULL)
return temp; return temp;
else { else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册