Whamcloud - gitweb
LU-5451 lod: improve weird FID handling 60/11560/9
authorJohn L. Hammond <john.hammond@intel.com>
Fri, 22 Aug 2014 15:21:25 +0000 (10:21 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 5 Dec 2014 13:41:22 +0000 (13:41 +0000)
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 <john.hammond@intel.com>
Change-Id: I6c7e3885a8b1aa81fcaa8891392a11e40a02fbce
Reviewed-on: http://review.whamcloud.com/11560
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/lod/lod_dev.c

index fd51f33..42674ae 100644 (file)
@@ -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);