From 7fb17eb7b7e6035931987ae1e9589639114d210e Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Sat, 27 Jun 2020 05:14:02 -0600 Subject: [PATCH] LU-13687 llite: return -ENODATA if no default layout Don't return -ENOENT if fetching the default layout from the root directory fails. Otherwise, "lfs find" will print an error message for every directory scanned in the filesystem: lfs find: /myth/tmp does not exist: No such file or directory Fixes: 3e8fa8a7396c ("LU-11656 llite: fetch default layout for a directory") Signed-off-by: Andreas Dilger Change-Id: I5e082c5d425c44ca7770d3b24cbb13bb7d2540e5 Reviewed-on: https://review.whamcloud.com/39200 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Jian Yu Reviewed-by: Lai Siyao Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- lustre/llite/dir.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index efc1dbd..7b39aa0 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -750,10 +750,13 @@ int ll_dir_getstripe_default(struct inode *inode, void **plmm, int *plmm_size, rc = ll_dir_get_default_layout(inode, (void **)&lmm, &lmm_size, &req, valid, 0); if (rc == -ENODATA && !fid_is_root(ll_inode2fid(inode)) && - !(valid & (OBD_MD_MEA|OBD_MD_DEFAULT_MEA)) && root_request != NULL) - rc = ll_dir_get_default_layout(inode, (void **)&lmm, &lmm_size, - &root_req, valid, - GET_DEFAULT_LAYOUT_ROOT); + !(valid & (OBD_MD_MEA|OBD_MD_DEFAULT_MEA)) && root_request != NULL){ + int rc2 = ll_dir_get_default_layout(inode, (void **)&lmm, + &lmm_size, &root_req, valid, + GET_DEFAULT_LAYOUT_ROOT); + if (rc2 == 0) + rc = 0; + } *plmm = lmm; *plmm_size = lmm_size; -- 1.8.3.1