Whamcloud - gitweb
LU-4927 scrub: rebuild stale OST OI mapping 06/10006/3
authorFan Yong <fan.yong@intel.com>
Tue, 25 Mar 2014 14:01:54 +0000 (22:01 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 23 Apr 2014 17:00:19 +0000 (17:00 +0000)
If the osd_oi_lookup() which is called by osd_scrub_check_update()
returns -ESTALE for an OST FID, then it means that the target FID
has invalid OI mapping, and should be rebuilt.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I4087da9d3c8e18aff14e314af49637134ee8d4ff
Reviewed-on: http://review.whamcloud.com/10006
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
lustre/osd-ldiskfs/osd_scrub.c

index 0e3ecaa..d830e22 100644 (file)
@@ -486,7 +486,7 @@ osd_scrub_check_update(struct osd_thread_info *info, struct osd_device *dev,
                (val == SCRUB_NEXT_OSTOBJ ||
                 val == SCRUB_NEXT_OSTOBJ_OLD) ? OI_KNOWN_ON_OST : 0);
        if (rc != 0) {
                (val == SCRUB_NEXT_OSTOBJ ||
                 val == SCRUB_NEXT_OSTOBJ_OLD) ? OI_KNOWN_ON_OST : 0);
        if (rc != 0) {
-               if (rc != -ENOENT)
+               if (rc != -ENOENT && rc != -ESTALE)
                        GOTO(out, rc);
 
 iget:
                        GOTO(out, rc);
 
 iget: