X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fosp%2Fosp_internal.h;h=16bca5767fabdeb447c8a29f648c23493ae49321;hb=30165c4024f8a1ee316fb192005d9b2a8b89d0b8;hp=3a5d0a6d8b396d5cab6d591006ddd969d0f5fcc3;hpb=c2c28f2aa5d65d889bf5d1a707fec82e8f852c86;p=fs%2Flustre-release.git diff --git a/lustre/osp/osp_internal.h b/lustre/osp/osp_internal.h index 3a5d0a6..16bca57 100644 --- a/lustre/osp/osp_internal.h +++ b/lustre/osp/osp_internal.h @@ -119,7 +119,7 @@ struct osp_device { struct obd_uuid opd_cluuid; struct obd_connect_data *opd_connect_data; int opd_connects; - cfs_proc_dir_entry_t *opd_proc_entry; + struct proc_dir_entry *opd_proc_entry; struct lprocfs_stats *opd_stats; /* connection status. */ unsigned int opd_new_connection:1, @@ -174,6 +174,9 @@ struct osp_device { unsigned long opd_syn_last_processed_id; struct osp_id_tracker *opd_syn_tracker; struct list_head opd_syn_ontrack; + /* stop processing new requests until barrier=0 */ + atomic_t opd_syn_barrier; + wait_queue_head_t opd_syn_barrier_waitq; /* * statfs related fields: OSP maintains it on its own @@ -185,7 +188,7 @@ struct osp_device { /* how often to update statfs data */ int opd_statfs_maxage; - cfs_proc_dir_entry_t *opd_symlink; + struct proc_dir_entry *opd_symlink; /* If the caller wants to do some idempotent async operations on * remote server, it can append the async remote requests on the @@ -217,9 +220,9 @@ struct osp_xattr_entry { struct list_head oxe_list; atomic_t oxe_ref; void *oxe_value; - int oxe_buflen; - int oxe_namelen; - int oxe_vallen; + size_t oxe_buflen; + size_t oxe_namelen; + size_t oxe_vallen; unsigned int oxe_exist:1, oxe_ready:1; char oxe_buf[0]; @@ -277,6 +280,7 @@ struct osp_thread_info { struct osp_it { __u32 ooi_pos_page; __u32 ooi_pos_lu_page; + __u32 ooi_attr; int ooi_pos_ent; int ooi_total_npages; int ooi_valid_npages; @@ -491,27 +495,24 @@ static inline int osp_is_fid_client(struct osp_device *osp) return imp->imp_connect_data.ocd_connect_flags & OBD_CONNECT_FID; } -typedef int (*osp_async_update_interpterer_t)(const struct lu_env *env, - struct object_update_reply *reply, - struct ptlrpc_request *req, - struct osp_object *obj, - void *data, int index, int rc); +typedef int (*osp_async_request_interpreter_t)(const struct lu_env *env, + struct object_update_reply *rep, + struct ptlrpc_request *req, + struct osp_object *obj, + void *data, int index, int rc); /* osp_dev.c */ void osp_update_last_id(struct osp_device *d, obd_id objid); extern struct llog_operations osp_mds_ost_orig_logops; /* osp_trans.c */ -struct dt_update_request * -osp_find_or_create_async_update_request(struct osp_device *osp); -int osp_insert_async_update(const struct lu_env *env, - struct dt_update_request *update, int op, - struct osp_object *obj, int count, - int *lens, const char **bufs, void *data, - osp_async_update_interpterer_t interpterer); -int osp_unplug_async_update(const struct lu_env *env, - struct osp_device *osp, - struct dt_update_request *update); +int osp_insert_async_request(const struct lu_env *env, enum update_type op, + struct osp_object *obj, int count, __u16 *lens, + const void **bufs, void *data, + osp_async_request_interpreter_t interpreter); +int osp_unplug_async_request(const struct lu_env *env, + struct osp_device *osp, + struct dt_update_request *update); struct thandle *osp_trans_create(const struct lu_env *env, struct dt_device *d); int osp_trans_start(const struct lu_env *env, struct dt_device *dt, @@ -563,11 +564,8 @@ int osp_md_declare_object_create(const struct lu_env *env, int osp_md_object_create(const struct lu_env *env, struct dt_object *dt, struct lu_attr *attr, struct dt_allocation_hint *hint, struct dt_object_format *dof, struct thandle *th); -int osp_md_declare_attr_set(const struct lu_env *env, struct dt_object *dt, - const struct lu_attr *attr, struct thandle *th); -int osp_md_attr_set(const struct lu_env *env, struct dt_object *dt, - const struct lu_attr *attr, struct thandle *th, - struct lustre_capa *capa); +int __osp_md_attr_set(const struct lu_env *env, struct dt_object *dt, + const struct lu_attr *attr, struct thandle *th); extern const struct dt_index_operations osp_md_index_ops; /* osp_precreate.c */ @@ -586,7 +584,6 @@ int osp_write_last_oid_seq_files(struct lu_env *env, struct osp_device *osp, int osp_init_pre_fid(struct osp_device *osp); /* lproc_osp.c */ -void lprocfs_osp_init_vars(struct lprocfs_static_vars *lvars); void osp_lprocfs_init(struct osp_device *osp); /* osp_sync.c */ @@ -600,7 +597,6 @@ int osp_sync_fini(struct osp_device *d); void __osp_sync_check_for_work(struct osp_device *d); /* lwp_dev.c */ -void lprocfs_lwp_init_vars(struct lprocfs_static_vars *lvars); extern struct obd_ops lwp_obd_device_ops; extern struct lu_device_type lwp_device_type;