From 2eb434daf3bd511c26dd1dc2fd791c3cde756ba3 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Fri, 22 Aug 2014 10:21:25 -0500 Subject: [PATCH 1/1] LU-5451 lod: improve weird FID handling In lod_fld_lookup() the FID in question may have come from disk or wire. Thus if fid_is_sane() returns false then return -EIO rather than asserting. Signed-off-by: John L. Hammond Change-Id: I6c7e3885a8b1aa81fcaa8891392a11e40a02fbce Reviewed-on: http://review.whamcloud.com/11560 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Fan Yong Reviewed-by: Mike Pershin Reviewed-by: Oleg Drokin --- lustre/lod/lod_dev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lustre/lod/lod_dev.c b/lustre/lod/lod_dev.c index fd51f33..42674ae 100644 --- a/lustre/lod/lod_dev.c +++ b/lustre/lod/lod_dev.c @@ -122,7 +122,11 @@ int lod_fld_lookup(const struct lu_env *env, struct lod_device *lod, int rc = 0; ENTRY; - LASSERTF(fid_is_sane(fid), "Invalid FID "DFID"\n", PFID(fid)); + if (!fid_is_sane(fid)) { + CERROR("%s: invalid FID "DFID"\n", lod2obd(lod)->obd_name, + PFID(fid)); + RETURN(-EIO); + } if (fid_is_idif(fid)) { *tgt = fid_idif_ost_idx(fid); -- 1.8.3.1