X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fosp%2Fosp_internal.h;h=ac58e8bb54d81a2d62fb7ddf9ab5461af2711db6;hb=cd3aa902bfcf529a6774df3a207a2c3287c994fb;hp=f18395500dc90afffc8b6223c9f4a75baec6db8a;hpb=ea766f3be969997ce9e92cf9b359fc818583851a;p=fs%2Flustre-release.git diff --git a/lustre/osp/osp_internal.h b/lustre/osp/osp_internal.h index f183955..ac58e8b 100644 --- a/lustre/osp/osp_internal.h +++ b/lustre/osp/osp_internal.h @@ -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 @@ -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]; @@ -491,27 +494,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, + 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,