[lustre-devel] [PATCH 08/42] lustre: llite: return -ENODATA if no default layout
James Simmons
jsimmons at infradead.org
Mon Oct 5 17:05:47 PDT 2020
From: Andreas Dilger <adilger at whamcloud.com>
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: 96377f5b2ad6 ("lustre: llite: fetch default layout for a directory")
WC-bug-id: https://jira.whamcloud.com/browse/LU-13687
Lustre-commit: 7fb17eb7b7e60 ("LU-13687 llite: return -ENODATA if no default layout")
Signed-off-by: Andreas Dilger <adilger at whamcloud.com>
Reviewed-on: https://review.whamcloud.com/39200
Reviewed-by: Jian Yu <yujian at whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao at whamcloud.com>
Reviewed-by: James Simmons <jsimmons at infradead.org>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
fs/lustre/llite/dir.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/fs/lustre/llite/dir.c b/fs/lustre/llite/dir.c
index c2a75ce..262aea0 100644
--- a/fs/lustre/llite/dir.c
+++ b/fs/lustre/llite/dir.c
@@ -710,10 +710,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)
- 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) {
+ 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
More information about the lustre-devel
mailing list