Whamcloud - gitweb
LU-2285 osp: Block new reservations during orphan recoveries
[fs/lustre-release.git] / lustre / osp / osp_internal.h
index 5f4b77c..ca2497d 100644 (file)
@@ -50,7 +50,7 @@
  * Infrastructure to support tracking of last committed llog record
  */
 struct osp_id_tracker {
-       cfs_spinlock_t           otr_lock;
+       spinlock_t               otr_lock;
        __u32                    otr_next_id;
        __u32                    otr_committed_id;
        /* callback is register once per diskfs -- that's the whole point */
@@ -102,9 +102,9 @@ struct osp_device {
        /*
         * Precreation pool
         */
-       cfs_spinlock_t                   opd_pre_lock;
-       /* next id to assign in creation */
-       __u64                            opd_pre_next;
+       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 */
@@ -123,11 +123,13 @@ struct osp_device {
        int                              opd_pre_max_grow_count;
        /* whether to grow precreation window next time or not */
        int                              opd_pre_grow_slow;
+       /* cleaning up orphans or recreating missing objects */
+       int                              opd_pre_recovering;
 
        /*
         * OST synchronization
         */
-       cfs_spinlock_t                   opd_syn_lock;
+       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 */
@@ -305,6 +307,7 @@ void osp_statfs_need_now(struct osp_device *d);
 
 /* lproc_osp.c */
 void lprocfs_osp_init_vars(struct lprocfs_static_vars *lvars);
+void osp_lprocfs_init(struct osp_device *osp);
 
 /* osp_sync.c */
 int osp_sync_declare_add(const struct lu_env *env, struct osp_object *o,