rename filter_verify_capa to filter_auth_capa.
mdt->mdt_opts.mo_oss_capa = (val & 0x1);
mdt->mdt_opts.mo_mds_capa = !!(val & 0x2);
mdt->mdt_capa_conf = 1;
+ LCONSOLE_INFO("MDS %s %s MDS fid capability.\n",
+ obd->obd_name,
+ mdt->mdt_opts.mo_mds_capa ? "enabled" : "disabled");
+ LCONSOLE_INFO("MDS %s %s OSS fid capability.\n",
+ obd->obd_name,
+ mdt->mdt_opts.mo_oss_capa ? "enabled" : "disabled");
return count;
}
void cleanup_capa_hash(void)
{
int i;
+ struct hlist_node *pos;
+ struct obd_capa *oc;
- for (i = 0; i < NR_CAPAHASH; i++)
- LASSERTF(hlist_empty(capa_hash + i),
- "capa hash %d not empty\n", i);
- for (i = CAPA_SITE_MAX; i < CAPA_SITE_MAX; i++)
- LASSERTF(list_empty(&capa_list[i]),
- "capa list %d not empty\n", i);
+ for (i = 0; i < NR_CAPAHASH; i++) {
+ if (hlist_empty(capa_hash + i))
+ continue;
+ hlist_for_each_entry(oc, pos, capa_hash + i, u.tgt.c_hash)
+ DEBUG_CAPA(D_ERROR, &oc->c_capa, "remaining cached");
+ LBUG();
+ }
+ for (i = CAPA_SITE_MAX; i < CAPA_SITE_MAX; i++) {
+ if (list_empty(&capa_list[i]))
+ continue;
+ list_for_each_entry(oc, &capa_list[i], c_list)
+ DEBUG_CAPA(D_ERROR, &oc->c_capa, "remaining %s",
+ capa_site_name[oc->c_site]);
+ LBUG();
+ }
OBD_FREE(capa_hash, PAGE_SIZE);
}
int rc = 0;
ENTRY;
- rc = filter_verify_capa(exp, NULL, oinfo_mdsno(oinfo),
- oinfo_capa(oinfo), CAPA_OPC_META_READ);
+ rc = filter_auth_capa(exp, NULL, oinfo_mdsno(oinfo),
+ oinfo_capa(oinfo), CAPA_OPC_META_READ);
if (rc)
RETURN(rc);
int rc;
ENTRY;
- rc = filter_verify_capa(exp, NULL, oinfo_mdsno(oinfo),
- oinfo_capa(oinfo), CAPA_OPC_META_WRITE);
+ rc = filter_auth_capa(exp, NULL, oinfo_mdsno(oinfo),
+ oinfo_capa(oinfo), CAPA_OPC_META_WRITE);
if (rc)
RETURN(rc);
", o_size = "LPD64"\n", oinfo->oi_oa->o_id,
oinfo->oi_oa->o_valid, oinfo->oi_policy.l_extent.start);
- rc = filter_verify_capa(exp, NULL, oinfo_mdsno(oinfo),
- oinfo_capa(oinfo), CAPA_OPC_OSS_TRUNC);
+ rc = filter_auth_capa(exp, NULL, oinfo_mdsno(oinfo),
+ oinfo_capa(oinfo), CAPA_OPC_OSS_TRUNC);
if (rc)
RETURN(rc);
int rc, rc2;
ENTRY;
- rc = filter_verify_capa(exp, NULL, obdo_mdsno(oa),
- (struct lustre_capa *)capa, CAPA_OPC_OSS_WRITE);
+ rc = filter_auth_capa(exp, NULL, obdo_mdsno(oa),
+ (struct lustre_capa *)capa, CAPA_OPC_OSS_WRITE);
if (rc)
RETURN(rc);
RETURN(0);
}
-int filter_verify_capa(struct obd_export *exp, struct lu_fid *fid, __u64 mdsid,
- struct lustre_capa *capa, __u64 opc)
+int filter_auth_capa(struct obd_export *exp, struct lu_fid *fid, __u64 mdsid,
+ struct lustre_capa *capa, __u64 opc)
{
struct obd_device *obd = exp->exp_obd;
struct filter_obd *filter = &obd->u.filter;
RETURN(0);
if (capa == NULL) {
- CERROR("no capa has been passed\n");
+ CERROR("mdsno/fid/opc "LPU64"/"DFID"/"LPX64": no capa has been "
+ "passed\n", mdsid, PFID(fid), opc);
RETURN(-EACCES);
}
-#warning "enable fid check in filter_verify_capa when fid ready"
+#warning "enable fid check in filter_auth_capa when fid ready"
if (opc == CAPA_OPC_OSS_READ) {
if (!(capa->lc_opc & CAPA_OPC_OSS_RW))
}
int filter_update_capa_key(struct obd_device *obd, struct lustre_capa_key *key);
-int filter_verify_capa(struct obd_export *exp, struct lu_fid *fid, __u64 mdsid,
- struct lustre_capa *capa, __u64 opc);
+int filter_auth_capa(struct obd_export *exp, struct lu_fid *fid, __u64 mdsid,
+ struct lustre_capa *capa, __u64 opc);
void filter_free_capa_keys(struct filter_obd *filter);
#endif /* _FILTER_INTERNAL_H */
LASSERTF(objcount == 1, "%d\n", objcount);
LASSERTF(obj->ioo_bufcnt > 0, "%d\n", obj->ioo_bufcnt);
- rc = filter_verify_capa(exp, NULL, obdo_mdsno(oa), capa,
- CAPA_OPC_OSS_READ);
+ rc = filter_auth_capa(exp, NULL, obdo_mdsno(oa), capa,
+ CAPA_OPC_OSS_READ);
if (rc)
RETURN(rc);
LASSERT(objcount == 1);
LASSERT(obj->ioo_bufcnt > 0);
- rc = filter_verify_capa(exp, NULL, obdo_mdsno(oa), capa,
- CAPA_OPC_OSS_WRITE);
+ rc = filter_auth_capa(exp, NULL, obdo_mdsno(oa), capa,
+ CAPA_OPC_OSS_WRITE);
if (rc)
RETURN(rc);
}
obd->u.filter.fo_fl_oss_capa = val;
+ if (val)
+ LCONSOLE_INFO("OSS %s enabled fid capability.\n",
+ obd->obd_name);
return count;
}