When debugging OI Scrub problems, also print the inode number
with the FID so that it is easier to find the problematic inode.
Otherwise, if the OI is broken it is not easy to find the inode
in question without a full filesystem scan.
Test-Parameters: trivial testlist=sanity-scrub,sanity-lfsck
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I217624ff2116326f86e053bcfacc6f19873ebbe5
Reviewed-on: https://review.whamcloud.com/43153
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
join:
rc1 = osd_scrub_start(env, dev, flags);
join:
rc1 = osd_scrub_start(env, dev, flags);
- LCONSOLE_WARN("%s: trigger OI scrub by RPC for the " DFID" with flags "
- "0x%x, rc = %d\n", osd_name(dev), PFID(fid), flags, rc1);
+ CDEBUG_LIMIT(D_LFSCK | D_CONSOLE | D_WARNING,
+ "%s: trigger OI scrub by RPC for "DFID"/%u with flags %#x: rc = %d\n",
+ osd_name(dev), PFID(fid), id->oii_ino, flags, rc1);
if (rc1 && rc1 != -EALREADY)
GOTO(out, result = -EREMCHG);
if (rc1 && rc1 != -EALREADY)
GOTO(out, result = -EREMCHG);
if (dev->od_auto_scrub_interval != AS_NEVER && ++once == 1) {
rc = osd_scrub_start(oti->oti_env, dev, SS_AUTO_PARTIAL |
SS_CLEAR_DRYRUN | SS_CLEAR_FAILOUT);
if (dev->od_auto_scrub_interval != AS_NEVER && ++once == 1) {
rc = osd_scrub_start(oti->oti_env, dev, SS_AUTO_PARTIAL |
SS_CLEAR_DRYRUN | SS_CLEAR_FAILOUT);
- CDEBUG(D_LFSCK | D_CONSOLE | D_WARNING,
- "%s: trigger partial OI scrub for RPC inconsistency checking FID "DFID": rc = %d\n",
- osd_dev2name(dev), PFID(fid), rc);
+ CDEBUG_LIMIT(D_LFSCK | D_CONSOLE | D_WARNING,
+ "%s: trigger partial OI scrub for RPC inconsistency, checking FID "DFID"/%u: rc = %d\n",
+ osd_dev2name(dev), PFID(fid), id->oii_ino, rc);
if (rc == 0 || rc == -EALREADY)
goto again;
}
if (rc == 0 || rc == -EALREADY)
goto again;
}
if (osd->od_auto_scrub_interval != AS_NEVER && ++once == 1) {
rc = osd_scrub_start(env, osd, SS_AUTO_FULL |
SS_CLEAR_DRYRUN | SS_CLEAR_FAILOUT);
if (osd->od_auto_scrub_interval != AS_NEVER && ++once == 1) {
rc = osd_scrub_start(env, osd, SS_AUTO_FULL |
SS_CLEAR_DRYRUN | SS_CLEAR_FAILOUT);
- CDEBUG(D_LFSCK | D_CONSOLE | D_WARNING,
- "%s: trigger partial OI scrub for RPC inconsistency "
- "checking FID "DFID": rc = %d\n",
- osd_name(osd), PFID(fid), rc);
+ CDEBUG_LIMIT(D_LFSCK | D_CONSOLE | D_WARNING,
+ "%s: trigger partial OI scrub for RPC inconsistency, checking FID "DFID"/%#llx): rc = %d\n",
+ osd_name(osd), PFID(fid), oid, rc);
/* It is me to trigger the OI scrub. */
rc1 = osd_scrub_start(env, osd, SS_CLEAR_DRYRUN |
SS_CLEAR_FAILOUT | SS_AUTO_FULL);
/* It is me to trigger the OI scrub. */
rc1 = osd_scrub_start(env, osd, SS_CLEAR_DRYRUN |
SS_CLEAR_FAILOUT | SS_AUTO_FULL);
- LCONSOLE_WARN("%s: trigger OI scrub by RPC for the "DFID": rc = %d\n",
- osd_name(osd), PFID(fid), rc1);
+ CDEBUG_LIMIT(D_LFSCK | D_CONSOLE | D_WARNING,
+ "%s: trigger OI scrub by RPC for "DFID"/%#llx: rc = %d\n",
+ osd_name(osd), PFID(fid), oid, rc1);
if (!rc) {
LASSERT(remote);
if (!rc) {
LASSERT(remote);
LASSERT(obj->oo_attr.la_size <= osd_sync_destroy_max_size);
rc = -dmu_object_free(osd->od_os, oid, oh->ot_tx);
if (rc)
LASSERT(obj->oo_attr.la_size <= osd_sync_destroy_max_size);
rc = -dmu_object_free(osd->od_os, oid, oh->ot_tx);
if (rc)
- CERROR("%s: failed to free %s %llu: rc = %d\n",
+ CERROR("%s: failed to free %s/%#llx: rc = %d\n",
osd->od_svname, buf, oid, rc);
} else if (obj->oo_destroy == OSD_DESTROY_SYNC) {
rc = -dmu_object_free(osd->od_os, oid, oh->ot_tx);
if (rc)
osd->od_svname, buf, oid, rc);
} else if (obj->oo_destroy == OSD_DESTROY_SYNC) {
rc = -dmu_object_free(osd->od_os, oid, oh->ot_tx);
if (rc)
- CERROR("%s: failed to free %s %llu: rc = %d\n",
+ CERROR("%s: failed to free %s/%#llx: rc = %d\n",
osd->od_svname, buf, oid, rc);
} else { /* asynchronous destroy */
char *key = info->oti_key;
osd->od_svname, buf, oid, rc);
} else { /* asynchronous destroy */
char *key = info->oti_key;
rc = osd_zap_add(osd, osd->od_unlinked->dn_object,
osd->od_unlinked, key, 8, 1, &oid, oh->ot_tx);
if (rc)
rc = osd_zap_add(osd, osd->od_unlinked->dn_object,
osd->od_unlinked, key, 8, 1, &oid, oh->ot_tx);
if (rc)
- CERROR("%s: zap_add_int() failed %s %llu: rc = %d\n",
+ CERROR("%s: zap_add_int() failed %s/%#llx: rc = %d\n",
osd->od_svname, buf, oid, rc);
}
osd->od_svname, buf, oid, rc);
}
}
read_unlock(&obj->oo_attr_lock);
if (attr->la_valid & LA_FLAGS && attr->la_flags & LUSTRE_ORPHAN_FL)
}
read_unlock(&obj->oo_attr_lock);
if (attr->la_valid & LA_FLAGS && attr->la_flags & LUSTRE_ORPHAN_FL)
- CDEBUG(D_INFO, "%s: set orphan flag on "DFID" (%llx/%x)\n",
+ CDEBUG(D_INFO, "%s: set orphan flag on "DFID" (%#llx/%#x)\n",
osd_obj2dev(obj)->od_svname,
PFID(lu_object_fid(&dt->do_lu)),
attr->la_valid, obj->oo_lma_flags);
osd_obj2dev(obj)->od_svname,
PFID(lu_object_fid(&dt->do_lu)),
attr->la_valid, obj->oo_lma_flags);