summaryrefslogtreecommitdiffstats
path: root/fs/quota
diff options
context:
space:
mode:
authorJia-Ju Bai2018-04-09 16:31:19 +0200
committerJan Kara2018-04-09 17:48:54 +0200
commit1aa3b3e0cbdb32439f04842e88fc7557a0777660 (patch)
tree1c49cc6fd8d4af5b2c3bb22acb4d9f55f82eb513 /fs/quota
parentfanotify: fix logic of events on child (diff)
downloadkernel-qcow2-linux-1aa3b3e0cbdb32439f04842e88fc7557a0777660.tar.gz
kernel-qcow2-linux-1aa3b3e0cbdb32439f04842e88fc7557a0777660.tar.xz
kernel-qcow2-linux-1aa3b3e0cbdb32439f04842e88fc7557a0777660.zip
fs: quota: Replace GFP_ATOMIC with GFP_KERNEL in dquot_init
dquot_init() is never called in atomic context. This function is only set as a parameter of fs_initcall(). Despite never getting called from atomic context, dquot_init() calls __get_free_pages() with GFP_ATOMIC, which waits busily for allocation. GFP_ATOMIC is not necessary and can be replaced with GFP_KERNEL, to avoid busy waiting and improve the possibility of sucessful allocation. This is found by a static analysis tool named DCNS written by myself. And I also manually check it. Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/quota')
-rw-r--r--fs/quota/dquot.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index 020c597ef9b6..d88231e3b2be 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -2966,7 +2966,7 @@ static int __init dquot_init(void)
NULL);
order = 0;
- dquot_hash = (struct hlist_head *)__get_free_pages(GFP_ATOMIC, order);
+ dquot_hash = (struct hlist_head *)__get_free_pages(GFP_KERNEL, order);
if (!dquot_hash)
panic("Cannot create dquot hash table");