From: Andreas Dilger Date: Sat, 27 Jun 2020 11:14:02 +0000 (-0600) Subject: LU-13687 llite: return -ENODATA if no default layout X-Git-Tag: 2.13.56~98 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F00%2F39200%2F3;p=fs%2Flustre-release.git 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 --- 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;