+ /*
+ * Precreation pool
+ */
+ cfs_spinlock_t opd_pre_lock;
+ /* last id assigned in creation */
+ __u64 opd_pre_used_id;
+ /* last created id OST reported, next-created - available id's */
+ __u64 opd_pre_last_created;
+ /* how many ids are reserved in declare, we shouldn't block in create */
+ __u64 opd_pre_reserved;
+ /* dedicate precreate thread */
+ struct ptlrpc_thread opd_pre_thread;
+ /* thread waits for signals about pool going empty */
+ cfs_waitq_t opd_pre_waitq;
+ /* consumers (who needs new ids) wait here */
+ cfs_waitq_t opd_pre_user_waitq;
+ /* current precreation status: working, failed, stopping? */
+ int opd_pre_status;
+ /* how many to precreate next time */
+ int opd_pre_grow_count;
+ int opd_pre_min_grow_count;
+ int opd_pre_max_grow_count;
+ /* whether to grow precreation window next time or not */
+ int opd_pre_grow_slow;
+
+ /*
+ * OST synchronization
+ */
+ cfs_spinlock_t opd_syn_lock;
+ /* unique generation, to recognize start of new records in the llog */
+ struct llog_gen opd_syn_generation;
+ /* number of changes to sync, used to wake up sync thread */
+ unsigned long opd_syn_changes;
+ /* processing of changes from previous mount is done? */
+ int opd_syn_prev_done;
+ /* found records */
+ struct ptlrpc_thread opd_syn_thread;
+ cfs_waitq_t opd_syn_waitq;
+ /* list of remotely committed rpc */
+ cfs_list_t opd_syn_committed_there;
+ /* number of changes being under sync */
+ int opd_syn_sync_in_progress;
+ /* number of RPCs in flight - flow control */
+ int opd_syn_rpc_in_flight;
+ int opd_syn_max_rpc_in_flight;
+ /* number of RPC in processing (including non-committed by OST) */
+ int opd_syn_rpc_in_progress;
+ int opd_syn_max_rpc_in_progress;
+ /* osd api's commit cb control structure */
+ struct dt_txn_callback opd_syn_txn_cb;
+ /* last used change number -- semantically similar to transno */
+ unsigned long opd_syn_last_used_id;
+ /* last committed change number -- semantically similar to
+ * last_committed */
+ unsigned long opd_syn_last_committed_id;
+ /* last processed (taken from llog) id */
+ unsigned long opd_syn_last_processed_id;
+ struct osp_id_tracker *opd_syn_tracker;
+ cfs_list_t opd_syn_ontrack;
+
+ /*
+ * statfs related fields: OSP maintains it on its own
+ */
+ struct obd_statfs opd_statfs;
+ cfs_time_t opd_statfs_fresh_till;
+ cfs_timer_t opd_statfs_timer;
+ int opd_statfs_update_in_progress;
+ /* how often to update statfs data */
+ int opd_statfs_maxage;
+