struct lu_fid mdd_local_root_fid;
struct dt_device_param mdd_dt_conf;
struct dt_object *mdd_orphans; /* PENDING directory */
- struct proc_dir_entry *mdd_proc_entry;
struct mdd_changelog mdd_cl;
unsigned int mdd_changelog_gc;
time64_t mdd_changelog_max_idle_time;
struct mdd_dot_lustre_objs mdd_dot_lustre_objs;
unsigned int mdd_sync_permission;
int mdd_connects;
+ int mdd_append_stripe_count;
+ char mdd_append_pool[LOV_MAXPOOLNAME + 1];
struct local_oid_storage *mdd_los;
struct mdd_generic_thread mdd_orphan_cleanup_thread;
+ struct kobject mdd_kobj;
+ struct kobj_type mdd_ktype;
+ struct completion mdd_kobj_unregister;
};
enum mod_flags {
/* mdd_lock.c */
void mdd_write_lock(const struct lu_env *env, struct mdd_object *obj,
- enum mdd_object_role role);
+ enum dt_object_role role);
void mdd_read_lock(const struct lu_env *env, struct mdd_object *obj,
- enum mdd_object_role role);
+ enum dt_object_role role);
void mdd_write_unlock(const struct lu_env *env, struct mdd_object *obj);
void mdd_read_unlock(const struct lu_env *env, struct mdd_object *obj);
int mdd_write_locked(const struct lu_env *env, struct mdd_object *obj);
struct md_object *md_obj,
const struct lu_buf *lmu_buf);
+int mdd_changelog_write_rec(const struct lu_env *env,
+ struct llog_handle *loghandle,
+ struct llog_rec_hdr *rec,
+ struct llog_cookie *cookie,
+ int idx, struct thandle *th);
+
struct mdd_thread_info *mdd_env_info(const struct lu_env *env);
#define MDD_ENV_VAR(env, var) (&mdd_env_info(env)->mti_##var)
extern const struct md_object_operations mdd_obj_ops;
int mdd_readlink(const struct lu_env *env, struct md_object *obj,
struct lu_buf *buf);
-int accmode(const struct lu_env *env, const struct lu_attr *la, int flags);
extern struct lu_context_key mdd_thread_key;
extern const struct lu_device_operations mdd_lu_ops;
__u64 uid, __u64 gid);
void mdd_changelog_rec_extra_nid(struct changelog_rec *rec,
lnet_nid_t nid);
-void mdd_changelog_rec_extra_omode(struct changelog_rec *rec, int flags);
+void mdd_changelog_rec_extra_omode(struct changelog_rec *rec, u32 flags);
void mdd_changelog_rec_extra_xattr(struct changelog_rec *rec,
const char *xattr_name);
int mdd_changelog_store(const struct lu_env *env, struct mdd_device *mdd,
struct llog_changelog_rec *rec, struct thandle *th);
int mdd_changelog_data_store(const struct lu_env *env, struct mdd_device *mdd,
- enum changelog_rec_type type, int flags,
+ enum changelog_rec_type type,
+ enum changelog_rec_flags clf_flags,
struct mdd_object *mdd_obj,
struct thandle *handle);
int mdd_changelog_ns_store(const struct lu_env *env, struct mdd_device *mdd,
enum changelog_rec_type type,
- enum changelog_rec_flags crf,
+ enum changelog_rec_flags clf_flags,
struct mdd_object *target,
const struct lu_fid *tpfid,
const struct lu_fid *sfid,
int mdd_changelog_data_store_xattr(const struct lu_env *env,
struct mdd_device *mdd,
enum changelog_rec_type type,
- int flags, struct mdd_object *mdd_obj,
+ enum changelog_rec_flags clf_flags,
+ struct mdd_object *mdd_obj,
const char *xattr_name,
struct thandle *handle);
__u32 *mode);
int __mdd_permission_internal(const struct lu_env *env, struct mdd_object *obj,
const struct lu_attr *la, int mask, int role);
-int mdd_permission(const struct lu_env *env,
- struct md_object *pobj, struct md_object *cobj,
- struct md_attr *ma, int mask);
+int mdd_permission(const struct lu_env *env, struct md_object *pobj,
+ struct md_object *cobj, struct md_attr *ma, int mask);
int mdd_generic_thread_start(struct mdd_generic_thread *thread,
int (*func)(void *), void *data, char *name);
void mdd_generic_thread_stop(struct mdd_generic_thread *thread);
struct mdd_object *obj,
const struct lu_attr *la,
int mask,
- enum mdd_object_role role)
+ enum dt_object_role role)
{
return __mdd_permission_internal(env, obj, la, mask, role);
}