aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorFredric Cover <fredric.cover.lkernel@gmail.com>2026-09-22 10:37:59 -0700
committerPaulo Alcantara <pc@manguebit.org>2026-09-22 22:20:18 -0300
commit031fe051abb3c1f36c2ba6346931fcdb3cddaeae (patch)
tree0ca11d66b5a087b522e33ef3f9e4226bf62dda11
parentsmb: client: update POSIX extension specification references (diff)
smb: client: use GFP_KERNEL in get_targets()
Currently, get_targets() uses GFP_ATOMIC to allocate the cache target iterator and to duplicate t->name. The callers of get_targets() are in a sleepable context; therefore, switch to GFP_KERNEL to reduce risk of failure and reduce pressure on emergency pools in low-memory scenarios. Signed-off-by: Fredric Cover <fredric.cover.lkernel@gmail.com> Signed-off-by: Paulo Alcantara <pc@manguebit.org>
-rw-r--r--fs/smb/client/dfs_cache.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smb/client/dfs_cache.c b/fs/smb/client/dfs_cache.c
index 29dfd7595941..26956e33037e 100644
--- a/fs/smb/client/dfs_cache.c
+++ b/fs/smb/client/dfs_cache.c
@@ -798,13 +798,13 @@ static int get_targets(struct cache_entry *ce, struct dfs_cache_tgt_list *tl)
INIT_LIST_HEAD(head);
list_for_each_entry(t, &ce->tlist, list) {
- it = kzalloc_obj(*it, GFP_ATOMIC);
+ it = kzalloc_obj(*it, GFP_KERNEL);
if (!it) {
rc = -ENOMEM;
goto err_free_it;
}
- it->it_name = kstrdup(t->name, GFP_ATOMIC);
+ it->it_name = kstrdup(t->name, GFP_KERNEL);
if (!it->it_name) {
kfree(it);
rc = -ENOMEM;