From 9d1f8f1e3557ee3349c623f4f5596df44f60b082 Mon Sep 17 00:00:00 2001 From: Andrew Perepechko Date: Tue, 10 Jan 2023 16:53:38 -0500 Subject: [PATCH] LU-16609 target: top_trans_create cannot alloc memory top_trans_create() requests __GFP_IO memory allocation, which does not allow direct reclaim. However, if the memory shortage is temporary, direct reclaim is reasonable. GFP_NOFS is __GFP_IO with additional reclaim bits. Change-Id: I2c84d9d74188660063c948573780745a2b59a688 Signed-off-by: Andrew Perepechko HPE-bug-id: LUS-11293 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50176 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin Reviewed-by: Andreas Dilger Reviewed-by: Alexey Lyashkov Reviewed-by: Lai Siyao --- lustre/target/update_trans.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/target/update_trans.c b/lustre/target/update_trans.c index 16acc80..77f6c4a 100644 --- a/lustre/target/update_trans.c +++ b/lustre/target/update_trans.c @@ -592,7 +592,7 @@ top_trans_create(const struct lu_env *env, struct dt_device *master_dev) struct top_thandle *top_th; struct thandle *child_th; - OBD_ALLOC_GFP(top_th, sizeof(*top_th), __GFP_IO); + OBD_ALLOC_GFP(top_th, sizeof(*top_th), GFP_NOFS); if (top_th == NULL) return ERR_PTR(-ENOMEM); -- 1.8.3.1