__u32 mu_suppgids[2];
cfs_cap_t mu_cap;
__u32 mu_umask;
- struct group_info *mu_ginfo;
- struct md_identity *mu_identity;
+ struct group_info *mu_ginfo;
+ struct md_identity *mu_identity;
};
enum {
int (*moo_capa_get)(const struct lu_env *, struct md_object *,
struct lustre_capa *, int renewal);
+
int (*moo_object_sync)(const struct lu_env *, struct md_object *);
+
+ int (*moo_path)(const struct lu_env *env, struct md_object *obj,
+ char *path, int pathlen, __u64 recno, int *linkno);
};
/**
int (*mqo_on)(const struct lu_env *env,
struct md_device *m,
- __u32 type,
- __u32 id);
+ __u32 type);
int (*mqo_off)(const struct lu_env *env,
struct md_device *m,
- __u32 type,
- __u32 id);
+ __u32 type);
int (*mqo_setinfo)(const struct lu_env *env,
struct md_device *m,
return m->mo_ops->moo_capa_get(env, m, c, renewal);
}
+static inline int mo_path(const struct lu_env *env, struct md_object *m,
+ char *path, int pathlen, __u64 recno, int *linkno)
+{
+ LASSERT(m->mo_ops->moo_path);
+ return m->mo_ops->moo_path(env, m, path, pathlen, recno, linkno);
+}
+
static inline int mo_object_sync(const struct lu_env *env, struct md_object *m)
{
LASSERT(m->mo_ops->moo_object_sync);
struct dt_device;
/**
* Structure to hold object information. This is used to create object
+ * \pre llod_dir exist
*/
struct lu_local_obj_desc {
+ const char *llod_dir;
const char *llod_name;
__u32 llod_oid;
int llod_is_index;
const char *objname,
const struct lu_fid *fid);
-int llo_local_obj_register(struct lu_local_obj_desc *);
+void llo_local_obj_register(struct lu_local_obj_desc *);
+void llo_local_obj_unregister(struct lu_local_obj_desc *);
int llo_local_objects_setup(const struct lu_env *env,
struct md_device * md,