__DEBUG_REQ(CDEBUG, level, req, fmt, ## args); \
} while (0)
+#define DEBUG_REQ_EX(level, req, fmt, args...) \
+do { \
+ if ((level) & (D_ERROR | D_WARNING)) \
+ __DEBUG_REQ(CDEBUG_LIMIT, D_ERROR, req, fmt, ## args); \
+ else \
+ __DEBUG_REQ(CDEBUG_EX, level, req, fmt, ## args); \
+} while (0)
+
struct ptlrpc_bulk_page {
struct list_head bp_link;
int bp_buflen;
LASSERT(qctxt->lqc_handler);
rc = qctxt->lqc_handler(master_obd, qdata, req->rq_reqmsg->opc);
if (rc && rc != -EDQUOT)
- CDEBUG(rc == -EBUSY ? D_QUOTA : D_ERROR,
+ CDEBUG_EX(rc == -EBUSY ? D_QUOTA : D_ERROR,
"dqacq failed! (rc:%d)\n", rc);
/* the qd_count might be changed in lqc_handler */
return;
if (!lock) {
- CDEBUG(level, " NULL LDLM lock\n");
+ CDEBUG_EX(level, " NULL LDLM lock\n");
return;
}
- CDEBUG(level," -- Lock dump: %p/"LPX64" (rc: %d) (pos: %d) (pid: %d)\n",
+ CDEBUG_EX(level," -- Lock dump: %p/"LPX64" (rc: %d) (pos: %d) (pid: %d)\n",
lock, lock->l_handle.h_cookie, atomic_read(&lock->l_refc),
pos, lock->l_pid);
if (lock->l_conn_export != NULL)
obd = lock->l_conn_export->exp_obd;
if (lock->l_export && lock->l_export->exp_connection) {
- CDEBUG(level, " Node: NID %s (rhandle: "LPX64")\n",
+ CDEBUG_EX(level, " Node: NID %s (rhandle: "LPX64")\n",
libcfs_nid2str(lock->l_export->exp_connection->c_peer.nid),
lock->l_remote_handle.cookie);
} else if (obd == NULL) {
- CDEBUG(level, " Node: local\n");
+ CDEBUG_EX(level, " Node: local\n");
} else {
struct obd_import *imp = obd->u.cli.cl_import;
- CDEBUG(level, " Node: NID %s (rhandle: "LPX64")\n",
+ CDEBUG_EX(level, " Node: NID %s (rhandle: "LPX64")\n",
libcfs_nid2str(imp->imp_connection->c_peer.nid),
lock->l_remote_handle.cookie);
}
- CDEBUG(level, " Resource: %p ("LPU64"/"LPU64")\n", lock->l_resource,
+ CDEBUG_EX(level, " Resource: %p ("LPU64"/"LPU64")\n", lock->l_resource,
lock->l_resource->lr_name.name[0],
lock->l_resource->lr_name.name[1]);
- CDEBUG(level, " Req mode: %s, grant mode: %s, rc: %u, read: %d, "
+ CDEBUG_EX(level, " Req mode: %s, grant mode: %s, rc: %u, read: %d, "
"write: %d flags: %#x\n", ldlm_lockname[lock->l_req_mode],
ldlm_lockname[lock->l_granted_mode],
atomic_read(&lock->l_refc), lock->l_readers, lock->l_writers,
lock->l_flags);
if (lock->l_resource->lr_type == LDLM_EXTENT)
- CDEBUG(level, " Extent: "LPU64" -> "LPU64
+ CDEBUG_EX(level, " Extent: "LPU64" -> "LPU64
" (req "LPU64"-"LPU64")\n",
lock->l_policy_data.l_extent.start,
lock->l_policy_data.l_extent.end,
lock->l_req_extent.start, lock->l_req_extent.end);
else if (lock->l_resource->lr_type == LDLM_FLOCK)
- CDEBUG(level, " Pid: %d Extent: "LPU64" -> "LPU64"\n",
+ CDEBUG_EX(level, " Pid: %d Extent: "LPU64" -> "LPU64"\n",
lock->l_policy_data.l_flock.pid,
lock->l_policy_data.l_flock.start,
lock->l_policy_data.l_flock.end);
else if (lock->l_resource->lr_type == LDLM_IBITS)
- CDEBUG(level, " Bits: "LPX64"\n",
+ CDEBUG_EX(level, " Bits: "LPX64"\n",
lock->l_policy_data.l_inodebits.bits);
}
{
struct list_head *tmp;
- CDEBUG(level, "--- Namespace: %s (rc: %d, client: %d)\n", ns->ns_name,
+ CDEBUG_EX(level, "--- Namespace: %s (rc: %d, client: %d)\n", ns->ns_name,
atomic_read(&ns->ns_refcount), ns->ns_client);
l_lock(&ns->ns_lock);
if (RES_NAME_SIZE != 4)
LBUG();
- CDEBUG(level, "--- Resource: %p ("LPU64"/"LPU64"/"LPU64"/"LPU64
+ CDEBUG_EX(level, "--- Resource: %p ("LPU64"/"LPU64"/"LPU64"/"LPU64
") (rc: %d)\n", res, res->lr_name.name[0], res->lr_name.name[1],
res->lr_name.name[2], res->lr_name.name[3],
atomic_read(&res->lr_refcount));
if (!list_empty(&res->lr_granted)) {
pos = 0;
- CDEBUG(level, "Granted locks:\n");
+ CDEBUG_EX(level, "Granted locks:\n");
list_for_each(tmp, &res->lr_granted) {
struct ldlm_lock *lock;
lock = list_entry(tmp, struct ldlm_lock, l_res_link);
}
if (!list_empty(&res->lr_converting)) {
pos = 0;
- CDEBUG(level, "Converting locks:\n");
+ CDEBUG_EX(level, "Converting locks:\n");
list_for_each(tmp, &res->lr_converting) {
struct ldlm_lock *lock;
lock = list_entry(tmp, struct ldlm_lock, l_res_link);
}
if (!list_empty(&res->lr_waiting)) {
pos = 0;
- CDEBUG(level, "Waiting locks:\n");
+ CDEBUG_EX(level, "Waiting locks:\n");
list_for_each(tmp, &res->lr_waiting) {
struct ldlm_lock *lock;
lock = list_entry(tmp, struct ldlm_lock, l_res_link);
inode = igrab(lock->l_ast_data);
} else {
inode = lock->l_ast_data;
- __LDLM_DEBUG(inode->i_state & I_FREEING ?
- D_INFO : D_WARNING, lock,
+ if (inode->i_state & I_FREEING)
+ __LDLM_DEBUG(D_INFO, lock,
"l_ast_data %p is bogus: magic %08x",
lock->l_ast_data, lli->lli_inode_magic);
+ else
+ __LDLM_DEBUG(D_WARNING, lock,
+ "l_ast_data %p is bogus: magic %08x",
+ lock->l_ast_data, lli->lli_inode_magic);
+
inode = NULL;
}
}
struct lov_ost_data_v1 *lod;
int i;
- CDEBUG(level, "objid "LPX64", magic 0x%08X, pattern %#X\n",
+ CDEBUG_EX(level, "objid "LPX64", magic 0x%08X, pattern %#X\n",
le64_to_cpu(lmm->lmm_object_id), le32_to_cpu(lmm->lmm_magic),
le32_to_cpu(lmm->lmm_pattern));
- CDEBUG(level,"stripe_size %u, stripe_count %u\n",
+ CDEBUG_EX(level,"stripe_size %u, stripe_count %u\n",
le32_to_cpu(lmm->lmm_stripe_size),
le32_to_cpu(lmm->lmm_stripe_count));
for (i = 0, lod = lmm->lmm_objects;
i < le32_to_cpu(lmm->lmm_stripe_count); i++, lod++)
- CDEBUG(level, "stripe %u idx %u subobj "LPX64"/"LPX64"\n",
+ CDEBUG_EX(level, "stripe %u idx %u subobj "LPX64"/"LPX64"\n",
i, le32_to_cpu(lod->l_ost_idx),
le64_to_cpu(lod->l_object_gr),
le64_to_cpu(lod->l_object_id));
void lov_dump_lmm_join(int level, struct lov_mds_md_join *lmmj)
{
- CDEBUG(level, "objid "LPX64", magic 0x%08X, pattern %#X\n",
+ CDEBUG_EX(level, "objid "LPX64", magic 0x%08X, pattern %#X\n",
le64_to_cpu(lmmj->lmmj_md.lmm_object_id),
le32_to_cpu(lmmj->lmmj_md.lmm_magic),
le32_to_cpu(lmmj->lmmj_md.lmm_pattern));
- CDEBUG(level,"stripe_size %u, stripe_count %u extent_count %u \n",
+ CDEBUG_EX(level,"stripe_size %u, stripe_count %u extent_count %u \n",
le32_to_cpu(lmmj->lmmj_md.lmm_stripe_size),
le32_to_cpu(lmmj->lmmj_md.lmm_stripe_count),
le32_to_cpu(lmmj->lmmj_extent_count));
ENTRY;
leaked = atomic_read(&obd_memory);
- CDEBUG(leaked ? D_ERROR : D_INFO,
+ CDEBUG_EX(leaked ? D_ERROR : D_INFO,
"obd mem max: %d leaked: %d\n", obd_memmax, leaked);
return;
sizeof(zero_mcd), &off, 1);
pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
- CDEBUG(rc == 0 ? D_INFO : D_ERROR,
+ CDEBUG_EX(rc == 0 ? D_INFO : D_ERROR,
"zeroing out client %s idx %u in %s rc %d\n",
med->med_mcd->mcd_uuid, med->med_lr_idx, LAST_RCVD, rc);
}
if (rc < 0)
GOTO(cleanup, rc);
- LASSERTF(le32_to_cpu(head_lmm->lmm_magic) == LOV_MAGIC_JOIN ||
+ LASSERT(le32_to_cpu(head_lmm->lmm_magic) == LOV_MAGIC_JOIN ||
le32_to_cpu(head_lmm->lmm_magic) == LOV_MAGIC);
push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
int level = D_ERROR;
if (rc == -ENOSPC)
level = D_INODE;
- CDEBUG(level, "error creating objects for "
+ CDEBUG_EX(level, "error creating objects for "
"inode %lu: rc = %d\n",
inode->i_ino, rc);
if (rc > 0) {
rc = err;
}
- DEBUG_REQ(log_pri, req,
+ DEBUG_REQ_EX(log_pri, req,
"wrote trans #"LPU64" rc %d client %s at idx %u: err = %d",
transno, rc, mcd->mcd_uuid, med->med_lr_idx, err);
if (rc == 0)
rc = err;
}
- CDEBUG(log_pri, "wrote objids: err = %d\n", err);
+ CDEBUG_EX(log_pri, "wrote objids: err = %d\n", err);
commit:
err = fsfilt_commit(obd, inode, handle, 0);
LASSERT(current->journal_info == NULL);
- CDEBUG(D_CONFIG | (rc?D_ERROR:0), "MGS handle cmd=%d rc=%d\n",
+ CDEBUG_EX(D_CONFIG | (rc?D_ERROR:0), "MGS handle cmd=%d rc=%d\n",
req->rq_reqmsg->opc, rc);
out:
void dump_lsm(int level, struct lov_stripe_md *lsm)
{
- CDEBUG(level, "lsm %p, objid "LPX64", maxbytes "LPX64", magic 0x%08X, "
+ CDEBUG_EX(level, "lsm %p, objid "LPX64", maxbytes "LPX64", magic 0x%08X, "
"stripe_size %u, stripe_count %u\n", lsm,
lsm->lsm_object_id, lsm->lsm_maxbytes, lsm->lsm_magic,
lsm->lsm_stripe_size, lsm->lsm_stripe_count);
rc = err;
}
- CDEBUG(log_pri, "wrote trans "LPU64" for client %s at #%d: err = %d\n",
+ CDEBUG_EX(log_pri, "wrote trans "LPU64" for client %s at #%d: err = %d\n",
last_rcvd, fcd->fcd_uuid, fed->fed_lr_idx, err);
RETURN(rc);
filter->fo_fsd, 1);
pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
- CDEBUG(rc == 0 ? D_INFO : D_ERROR,
+ CDEBUG_EX(rc == 0 ? D_INFO : D_ERROR,
"zeroing out client %s at idx %u (%llu) in %s rc %d\n",
fed->fed_fcd->fcd_uuid, fed->fed_lr_idx, fed->fed_lr_off,
LAST_RCVD, rc);
unsigned int cur_ids[MAXQUOTAS] = {oa->o_uid, oa->o_gid};
int rc2 = lquota_adjust(quota_interface, exp->exp_obd, cur_ids,
orig_ids, rc, FSFILT_OP_SETATTR);
- CDEBUG(rc2 ? D_ERROR : D_QUOTA,
+ CDEBUG_EX(rc2 ? D_ERROR : D_QUOTA,
"filter adjust qunit. (rc:%d)\n", rc2);
}
return rc;
qcids[GRPQUOTA] = oa->o_gid;
rc2 = lquota_adjust(quota_interface, obd, qcids, NULL, rc,
FSFILT_OP_UNLINK);
- CDEBUG(rc2 ? D_ERROR : D_QUOTA,
+ CDEBUG_EX(rc2 ? D_ERROR : D_QUOTA,
"filter adjust qunit! (rc:%d)\n", rc2);
return rc;
}
/* Add some margin, since there is a small race if other RPCs arrive
* out-or-order and have already consumed some grant. We want to
* leave this here in case there is a large error in accounting. */
- CDEBUG(oa->o_grant > fed->fed_grant + FILTER_GRANT_CHUNK ? mask:D_CACHE,
+ CDEBUG_EX(oa->o_grant > fed->fed_grant + FILTER_GRANT_CHUNK ? mask:D_CACHE,
"%s: cli %s/%p reports grant: "LPU64" dropped: %u, local: %lu\n",
obd->obd_name, exp->exp_client_uuid.uuid, exp, oa->o_grant,
oa->o_dropped, fed->fed_grant);
fed->fed_pending += used;
exp->exp_obd->u.filter.fo_tot_pending += used;
- CDEBUG(mask,
+ CDEBUG_EX(mask,
"%s: cli %s/%p used: %lu ungranted: %lu grant: %lu dirty: %lu\n",
exp->exp_obd->obd_name, exp->exp_client_uuid.uuid, exp, used,
ungranted, fed->fed_grant, fed->fed_dirty);
if (IS_ERR(oti->oti_handle)) {
UNLOCK_INODE_MUTEX(inode);
rc = PTR_ERR(oti->oti_handle);
- CDEBUG(rc == -ENOSPC ? D_INODE : D_ERROR,
+ CDEBUG_EX(rc == -ENOSPC ? D_INODE : D_ERROR,
"error starting transaction: rc = %d\n", rc);
oti->oti_handle = NULL;
GOTO(cleanup, rc);
qcids[GRPQUOTA] = oa->o_gid;
err = lquota_adjust(quota_interface, obd, qcids, NULL, rc,
FSFILT_OP_CREATE);
- CDEBUG(err ? D_ERROR : D_QUOTA,
+ CDEBUG_EX(err ? D_ERROR : D_QUOTA,
"error filter adjust qunit! (rc:%d)\n", err);
RETURN(rc);
ev->type == LNET_EVENT_UNLINK);
LASSERT (ev->unlinked);
- DEBUG_REQ((ev->status == 0) ? D_NET : D_ERROR, req,
+ DEBUG_REQ_EX((ev->status == 0) ? D_NET : D_ERROR, req,
"type %d, status %d", ev->type, ev->status);
if (ev->type == LNET_EVENT_UNLINK || ev->status != 0) {
LASSERT (ev->offset == 0);
LASSERT (ev->mlength <= req->rq_replen);
- DEBUG_REQ((ev->status == 0) ? D_NET : D_ERROR, req,
+ DEBUG_REQ_EX((ev->status == 0) ? D_NET : D_ERROR, req,
"type %d, status %d", ev->type, ev->status);
spin_lock_irqsave (&req->rq_lock, flags);
ev->type == LNET_EVENT_UNLINK);
LASSERT (ev->unlinked);
- CDEBUG((ev->status == 0) ? D_NET : D_ERROR,
+ CDEBUG_EX((ev->status == 0) ? D_NET : D_ERROR,
"event type %d, status %d, desc %p\n",
ev->type, ev->status, desc);
LASSERT ((char *)ev->md.start + ev->offset + ev->mlength <=
rqbd->rqbd_buffer + service->srv_buf_size);
- CDEBUG((ev->status == 0) ? D_NET : D_ERROR,
+ CDEBUG_EX((ev->status == 0) ? D_NET : D_ERROR,
"event type %d, status %d, service %s\n",
ev->type, ev->status, service->srv_name);
(desc->bd_type == BULK_GET_SINK &&
ev->type == LNET_EVENT_REPLY));
- CDEBUG((ev->status == 0) ? D_NET : D_ERROR,
+ CDEBUG_EX((ev->status == 0) ? D_NET : D_ERROR,
"event type %d, status %d, desc %p\n",
ev->type, ev->status, desc);
imp->imp_force_verify = 0;
spin_unlock_irqrestore(&imp->imp_lock, flags);
- CDEBUG(level == LUSTRE_IMP_FULL ? D_INFO : D_HA,
+ CDEBUG_EX(level == LUSTRE_IMP_FULL ? D_INFO : D_HA,
"level %s/%u force %u deactive %u pingable %u\n",
ptlrpc_import_state_name(level), level,
force, imp->imp_deactive, imp->imp_pingable);
rc = 0;
if (rc)
- CDEBUG(rc == -EBUSY ? D_QUOTA : D_ERROR,
+ CDEBUG_EX(rc == -EBUSY ? D_QUOTA : D_ERROR,
"qslave recovery failed! (id:%d type:%d "
" rc:%d)\n", dqid->di_id, type, rc);
free:
local_quota:
/* turn on local quota */
rc = fsfilt_quotactl(obd, sb, oqctl);
- CDEBUG(rc ? D_ERROR : D_INFO, "auto-enable quota. rc=%d\n", rc);
+ CDEBUG_EX(rc ? D_ERROR : D_INFO, "auto-enable quota. rc=%d\n", rc);
if (rc && is_master)
mds_quota_off(obd, oqctl);
out_pop:
# use anything else and feel the pain ;)
{
my $arch = shift;
- $x = "[0-9a-f]{3,5}"; # hex number >= 256
- $d = "([0-9]{2}|[2-9])[0-9]{2}"; # decimal number >= 200
+ $x = "[0-9a-f]{1,5}"; # hex number
+ $d = "[0-9]{1,5}"; # decimal number
if ($arch eq "") {
$arch = `uname -m`;
}