ENTRY;
mdd_changelog_fini(env, m);
dt_txn_callback_del(m->mdd_child, &m->mdd_txn_cb);
- mdd_object_put(env, m->mdd_dot_lustre_objs.mdd_obf);
- mdd_object_put(env, m->mdd_dot_lustre);
+ if (m->mdd_dot_lustre_objs.mdd_obf)
+ mdd_object_put(env, m->mdd_dot_lustre_objs.mdd_obf);
+ if (m->mdd_dot_lustre)
+ mdd_object_put(env, m->mdd_dot_lustre);
if (m->mdd_obd_dev)
mdd_fini_obd(env, m, cfg);
orph_index_fini(env, m);
memcpy(fid, &LU_DOT_LUSTRE_FID, sizeof(struct lu_fid));
mdo = llo_store_create_index(env, &m->mdd_md_dev, m->mdd_child,
- mdd_root_dir_name, mdd_dot_lustre_name,
+ mdd_root_dir_name, dot_lustre_name,
fid, &dt_directory_features);
/* .lustre dir may be already present */
if (IS_ERR(mdo) && PTR_ERR(mdo) != -EEXIST) {
rc = PTR_ERR(mdo);
CERROR("creating obj [%s] fid = "DFID" rc = %d\n",
- mdd_dot_lustre_name, PFID(fid), rc);
+ dot_lustre_name, PFID(fid), rc);
RETURN(rc);
}
return 0;
}
+static int dot_lustre_xattr_list(const struct lu_env *env,
+ struct md_object *obj, struct lu_buf *buf)
+{
+ return -EPERM;
+}
+
static int dot_lustre_mdd_open(const struct lu_env *env, struct md_object *obj,
int flags)
{
.moo_attr_get = dot_lustre_attr_get,
.moo_attr_set = dot_lustre_attr_set,
.moo_xattr_get = dot_lustre_xattr_get,
+ .moo_xattr_list = dot_lustre_xattr_list,
.moo_open = dot_lustre_mdd_open,
.moo_close = dot_lustre_close,
.moo_readpage = mdd_readpage,
while (*name == '[')
name++;
- sscanf(name, SFID, &(f->f_seq), &(f->f_oid),
- &(f->f_ver));
+ sscanf(name, SFID, RFID(f));
if (!fid_is_sane(f)) {
CWARN("bad FID format [%s], should be "DFID"\n", lname->ln_name,
(__u64)1, 2, 0);
return rc;
dt_dot_lustre = dt_store_open(env, m->mdd_child, mdd_root_dir_name,
- mdd_dot_lustre_name, fid);
+ dot_lustre_name, fid);
if (IS_ERR(dt_dot_lustre)) {
rc = PTR_ERR(dt_dot_lustre);
GOTO(out, rc);
struct md_device *m,
struct lustre_capa_key *key)
{
+ struct mds_capa_info info = { .uuid = NULL, .capa = key };
struct mdd_device *mdd = lu2mdd_dev(&m->md_lu_dev);
struct obd_export *lov_exp = mdd2obd_dev(mdd)->u.mds.mds_osc_exp;
int rc;
ENTRY;
rc = obd_set_info_async(lov_exp, sizeof(KEY_CAPA_KEY), KEY_CAPA_KEY,
- sizeof(*key), key, NULL);
+ sizeof(info), &info, NULL);
RETURN(rc);
}