/* check if request's xid is equal to last one or not*/
static inline int req_xid_is_last(struct ptlrpc_request *req)
/* check if request's xid is equal to last one or not*/
static inline int req_xid_is_last(struct ptlrpc_request *req)
cfs_list_t mfd_list; /* protected by med_open_lock */
__u64 mfd_xid; /* xid of the open request */
struct lustre_handle mfd_old_handle; /* old handle in replay case */
cfs_list_t mfd_list; /* protected by med_open_lock */
__u64 mfd_xid; /* xid of the open request */
struct lustre_handle mfd_old_handle; /* old handle in replay case */
struct ptlrpc_service *mdt_regular_service;
struct ptlrpc_service *mdt_readpage_service;
struct ptlrpc_service *mdt_xmds_service;
struct ptlrpc_service *mdt_regular_service;
struct ptlrpc_service *mdt_readpage_service;
struct ptlrpc_service *mdt_xmds_service;
/* ptlrpc handle for MDS->client connections (for lock ASTs). */
struct ptlrpc_client *mdt_ldlm_client;
/* underlying device */
/* ptlrpc handle for MDS->client connections (for lock ASTs). */
struct ptlrpc_client *mdt_ldlm_client;
/* underlying device */
cfs_proc_dir_entry_t *mdt_proc_entry;
struct lprocfs_stats *mdt_stats;
int mdt_sec_level;
struct rename_stats mdt_rename_stats;
cfs_proc_dir_entry_t *mdt_proc_entry;
struct lprocfs_stats *mdt_stats;
int mdt_sec_level;
struct rename_stats mdt_rename_stats;
+ struct lu_fid mdt_md_root_fid;
+
+ /* connection to quota master */
+ struct obd_export *mdt_qmt_exp;
+ /* quota master device associated with this MDT */
+ struct lu_device *mdt_qmt_dev;
const struct ldlm_request *mti_dlm_req;
__u32 mti_has_trans:1, /* has txn already? */
const struct ldlm_request *mti_dlm_req;
__u32 mti_has_trans:1, /* has txn already? */
struct obd_uuid uuid[2]; /* for mdt_seq_init_cli() */
char ns_name[48]; /* for mdt_init0() */
struct lustre_cfg_bufs bufs; /* for mdt_stack_fini() */
struct obd_uuid uuid[2]; /* for mdt_seq_init_cli() */
char ns_name[48]; /* for mdt_init0() */
struct lustre_cfg_bufs bufs; /* for mdt_stack_fini() */
+ /* per-thread values, can be re-used */
+ void *mti_big_lmm;
+ int mti_big_lmmsize;
+ /* big_lmm buffer was used and must be used in reply */
+ int mti_big_lmm_used;
+ /* should be enough to fit lustre_mdt_attrs */
+ char mti_xattr_buf[128];
int mdt_ioepoch_open(struct mdt_thread_info *info, struct mdt_object *o,
int created);
int mdt_object_is_som_enabled(struct mdt_object *mo);
int mdt_ioepoch_open(struct mdt_thread_info *info, struct mdt_object *o,
int created);
int mdt_object_is_som_enabled(struct mdt_object *mo);
ldlm_mode_t mode,
ldlm_policy_data_t *policy,
const struct ldlm_res_id *res_id,
ldlm_mode_t mode,
ldlm_policy_data_t *policy,
const struct ldlm_res_id *res_id,
rc = ldlm_cli_enqueue_local(ns, res_id, LDLM_IBITS, policy,
mode, &flags, mdt_blocking_ast,
ldlm_completion_ast, NULL, NULL, 0,
rc = ldlm_cli_enqueue_local(ns, res_id, LDLM_IBITS, policy,
mode, &flags, mdt_blocking_ast,
ldlm_completion_ast, NULL, NULL, 0,
void mdt_stats_counter_init(struct lprocfs_stats *stats);
void lprocfs_mdt_init_vars(struct lprocfs_static_vars *lvars);
int mdt_procfs_init(struct mdt_device *mdt, const char *name);
int mdt_procfs_fini(struct mdt_device *mdt);
void mdt_rename_counter_tally(struct mdt_thread_info *info,
void mdt_stats_counter_init(struct lprocfs_stats *stats);
void lprocfs_mdt_init_vars(struct lprocfs_static_vars *lvars);
int mdt_procfs_init(struct mdt_device *mdt, const char *name);
int mdt_procfs_fini(struct mdt_device *mdt);
void mdt_rename_counter_tally(struct mdt_thread_info *info,
- struct mdt_device *mdt, struct obd_export *exp,
- struct mdt_object *src, struct mdt_object *tgt);
+ struct mdt_device *mdt,
+ struct ptlrpc_request *req,
+ struct mdt_object *src, struct mdt_object *tgt);
void mdt_time_start(const struct mdt_thread_info *info);
void mdt_time_end(const struct mdt_thread_info *info, int idx);
void mdt_time_start(const struct mdt_thread_info *info);
void mdt_time_end(const struct mdt_thread_info *info, int idx);
if (!info->mti_mdt->mdt_opts.mo_mds_capa ||
!(info->mti_exp->exp_connect_flags & OBD_CONNECT_MDS_CAPA))
return;
if (!info->mti_mdt->mdt_opts.mo_mds_capa ||
!(info->mti_exp->exp_connect_flags & OBD_CONNECT_MDS_CAPA))
return;