summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ref_tracker.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ref_tracker.c b/lib/ref_tracker.c
index 30c999d57b10..5f63206357b2 100644
--- a/lib/ref_tracker.c
+++ b/lib/ref_tracker.c
@@ -265,7 +265,7 @@ int ref_tracker_alloc(struct ref_tracker_dir *dir,
refcount_inc(&dir->no_tracker);
return 0;
}
- if (gfp & __GFP_DIRECT_RECLAIM)
+ if ((gfp & __GFP_DIRECT_RECLAIM) && !(current->flags & PF_MEMALLOC))
gfp_mask |= __GFP_NOFAIL;
*trackerp = tracker = kzalloc_obj(*tracker, gfp_mask);
if (unlikely(!tracker)) {