From e3f17defc141d8847562b610931255d37ed4dd3c Mon Sep 17 00:00:00 2001 From: Stephane Thiell Date: Wed, 10 Feb 2021 16:15:02 -0800 Subject: [PATCH] LU-13609 mgs: fix config_log buffer handling Fix buffer handling in mgs_list_logs() to list all MGS config_logs using multiple ioctl calls when we have a large number of targets. Fixes: 1d97a8b4cd3d ("LU-13609 llog: list all the log files correctly on MGS/MDT") Signed-off-by: Stephane Thiell Change-Id: I1bf32e918e242f4da83c3d1624b7285a18a88d01 Reviewed-on: https://review.whamcloud.com/41478 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Emoly Liu Reviewed-by: Oleg Drokin --- lustre/mgs/mgs_llog.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lustre/mgs/mgs_llog.c b/lustre/mgs/mgs_llog.c index 3025dfb..28203c1 100644 --- a/lustre/mgs/mgs_llog.c +++ b/lustre/mgs/mgs_llog.c @@ -4480,7 +4480,7 @@ int mgs_list_logs(const struct lu_env *env, struct mgs_device *mgs, struct mgs_direntry *dirent, *n; char *out, *suffix, prefix[] = "config_log: "; int prefix_len = strlen(prefix); - int l, remains, start = 0, rc; + int len, remains, start = 0, rc; ENTRY; @@ -4499,8 +4499,8 @@ int mgs_list_logs(const struct lu_env *env, struct mgs_device *mgs, list_del_init(&dirent->mde_list); suffix = strrchr(dirent->mde_name, '-'); if (suffix != NULL) { - l = prefix_len + dirent->mde_len + 1; - if (remains - 1 < 0) { + len = prefix_len + dirent->mde_len + 1; + if (remains - len < 0) { /* No enough space for this record */ mgs_direntry_free(dirent); goto out; @@ -4508,15 +4508,15 @@ int mgs_list_logs(const struct lu_env *env, struct mgs_device *mgs, start++; if (start < data->ioc_count) { mgs_direntry_free(dirent); - continue; + continue; } - l = scnprintf(out, remains, "%s%s\n", prefix, - dirent->mde_name); - out += l; - remains -= l; + len = scnprintf(out, remains, "%s%s\n", prefix, + dirent->mde_name); + out += len; + remains -= len; } mgs_direntry_free(dirent); - if (remains == 0) + if (remains <= 1) /* Full */ goto out; } -- 1.8.3.1