Whamcloud - gitweb
add larry's changes that allow using mpirun or yod for running IOR.
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index 971fb04..bb7ea25 100644 (file)
@@ -93,13 +93,15 @@ struct ll_sb_info {
         struct semaphore          ll_gns_sem;
         spinlock_t                ll_gns_lock;
         wait_queue_head_t         ll_gns_waitq;
+        atomic_t                  ll_gns_enabled;
         int                       ll_gns_state;
         struct timer_list         ll_gns_timer;
         struct list_head          ll_gns_sbi_head;
+        struct completion         ll_gns_mount_finished;
+       struct dentry            *ll_gns_pending_dentry;
 
         unsigned long             ll_gns_tick;
         unsigned long             ll_gns_timeout;
-        struct completion         ll_gns_mount_finished;
 
         /* path to upcall */
         char                      ll_gns_upcall[PATH_MAX];
@@ -489,4 +491,33 @@ ll_prepare_mdc_data(struct mdc_op_data *data, struct inode *i1,
         data->mod_time = LTIME_S(CURRENT_TIME);
 }
 
+#if 0
+/* 
+ * this was needed for catching correct calling place of ll_intent_alloc() with
+ * missed ll_intent_free() causing memory leak. --umka
+ */
+#define ll_intent_alloc(it)                                             \
+        ({                                                              \
+                int err;                                                \
+                OBD_SLAB_ALLOC((it)->d.fs_data, ll_intent_slab, SLAB_KERNEL, \
+                               sizeof(struct lustre_intent_data));      \
+                if (!(it)->d.fs_data) {                                 \
+                        err = -ENOMEM;                                  \
+                } else {                                                \
+                        err = 0;                                        \
+                }                                                       \
+                (it)->it_op_release = ll_intent_release;                \
+                err;                                                    \
+        })
+
+#define ll_intent_free(it)                                      \
+        do {                                                    \
+                if ((it)->d.fs_data) {                                  \
+                        OBD_SLAB_FREE((it)->d.fs_data, ll_intent_slab,  \
+                                      sizeof(struct lustre_intent_data)); \
+                        (it)->d.fs_data = NULL;                         \
+                }                                                       \
+        } while (0)
+#endif
+
 #endif /* LLITE_INTERNAL_H */