Add some D_CACHE logs at the entry/exit for osp_sync()/osd_sync().
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: Iaa7fbfbbadb9312528b5092d64615b277de6b679
Reviewed-on: http://review.whamcloud.com/12573
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
struct l_wait_info lwi = { 0 };
int rc = 0;
int rc1 = 0;
+ int rc2;
ENTRY;
CDEBUG(D_LFSCK, "%s: %s LFSCK assistant thread start\n",
com->lc_time_last_checkpoint +
cfs_time_seconds(LFSCK_CHECKPOINT_INTERVAL);
+ CDEBUG(D_LFSCK, "%s: LFSCK assistant sync before "
+ "the second-stage scaning\n",
+ lfsck_lfsck2name(lfsck));
+
/* Flush async updates before handling orphan. */
- dt_sync(env, lfsck->li_next);
+ rc2 = dt_sync(env, lfsck->li_next);
CDEBUG(D_LFSCK, "%s: LFSCK assistant phase2 "
- "scan start\n", lfsck_lfsck2name(lfsck));
+ "scan start, synced: rc = %d\n",
+ lfsck_lfsck2name(lfsck), rc2);
if (OBD_FAIL_CHECK(OBD_FAIL_LFSCK_NO_DOUBLESCAN))
GOTO(cleanup2, rc = 0);
rc = rc1;
}
+ CDEBUG(D_LFSCK, "%s: LFSCK assistant sync before exit\n",
+ lfsck_lfsck2name(lfsck));
+
/* Flush async updates before exit. */
- dt_sync(env, lfsck->li_next);
+ rc2 = dt_sync(env, lfsck->li_next);
+
+ CDEBUG(D_LFSCK, "%s: LFSCK assistant synced before exit: rc = %d\n",
+ lfsck_lfsck2name(lfsck), rc2);
/* Under force exit case, some requests may be just freed without
* verification, those objects should be re-handled when next run.
*/
static int osd_sync(const struct lu_env *env, struct dt_device *d)
{
- CDEBUG(D_HA, "syncing OSD %s\n", LUSTRE_OSD_LDISKFS_NAME);
- return ldiskfs_force_commit(osd_sb(osd_dt_dev(d)));
+ int rc;
+
+ CDEBUG(D_CACHE, "syncing OSD %s\n", LUSTRE_OSD_LDISKFS_NAME);
+
+ rc = ldiskfs_force_commit(osd_sb(osd_dt_dev(d)));
+
+ CDEBUG(D_CACHE, "synced OSD %s: rc = %d\n",
+ LUSTRE_OSD_LDISKFS_NAME, rc);
+
+ return rc;
}
/**
static int osd_sync(const struct lu_env *env, struct dt_device *d)
{
struct osd_device *osd = osd_dt_dev(d);
- CDEBUG(D_HA, "syncing OSD %s\n", LUSTRE_OSD_ZFS_NAME);
+ CDEBUG(D_CACHE, "syncing OSD %s\n", LUSTRE_OSD_ZFS_NAME);
txg_wait_synced(dmu_objset_pool(osd->od_os), 0ULL);
+ CDEBUG(D_CACHE, "synced OSD %s\n", LUSTRE_OSD_ZFS_NAME);
return 0;
}
if (rc != 0)
GOTO(out, rc);
- CDEBUG(D_OTHER, "%s: id: used %lu, processed %lu\n",
+ CDEBUG(D_CACHE, "%s: id: used %lu, processed %lu\n",
d->opd_obd->obd_name, id, d->opd_syn_last_processed_id);
/* wait till all-in-line are processed */
/* block new processing (barrier>0 - few callers are possible */
atomic_inc(&d->opd_syn_barrier);
- CDEBUG(D_OTHER, "%s: %u in flight\n", d->opd_obd->obd_name,
+ CDEBUG(D_CACHE, "%s: %u in flight\n", d->opd_obd->obd_name,
d->opd_syn_rpc_in_flight);
/* wait till all-in-flight are replied, so executed by the target */
GOTO(out, rc = -ETIMEDOUT);
}
- CDEBUG(D_OTHER, "%s: done in %lu\n", d->opd_obd->obd_name,
- cfs_time_current() - start);
out:
/* resume normal processing (barrier=0) */
atomic_dec(&d->opd_syn_barrier);
__osp_sync_check_for_work(d);
+ CDEBUG(D_CACHE, "%s: done in %lu: rc = %d\n", d->opd_obd->obd_name,
+ cfs_time_current() - start, rc);
+
RETURN(rc);
}
build_test_filter
-$LCTL set_param debug=+lfsck > /dev/null || true
-
MDT_DEV="${FSNAME}-MDT0000"
OST_DEV="${FSNAME}-OST0000"
MDT_DEVNAME=$(mdsdevname ${SINGLEMDS//mds/})
}
run_test 17 "LFSCK can repair multiple references"
+$LCTL set_param debug=+cache > /dev/null
+
test_18a() {
echo "#####"
echo "The target MDT-object is there, but related stripe information"
}
run_test 18f "Skip the failed OST(s) when handle orphan OST-objects"
+$LCTL set_param debug=-cache > /dev/null
+
test_19a() {
check_mount_and_prep
$LFS setstripe -c 1 -i 0 $DIR/$tdir
}
run_test 31h "Repair the corrupted shard's name entry"
-$LCTL set_param debug=-lfsck > /dev/null || true
-
# restore MDS/OST size
MDSSIZE=${SAVED_MDSSIZE}
OSTSIZE=${SAVED_OSTSIZE}