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
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];
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,
+ int op, struct osp_object *obj, int count,
+ int *lens, const char **bufs, void *data,
+ osp_async_request_interpreter_t interpterer);
+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,