Whamcloud - gitweb
land b_hd_sec_client_oss onto HEAD.
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index 647eb79..673b763 100644 (file)
@@ -93,9 +93,12 @@ 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;
@@ -116,7 +119,6 @@ struct ll_gns_ctl {
 #define LL_GNS_IDLE               (1 << 0)
 #define LL_GNS_MOUNTING           (1 << 1)
 #define LL_GNS_FINISHED           (1 << 2)
-#define LL_GNS_DISABLED           (1 << 3)
 
 /* mounts checking flags */
 #define LL_GNS_UMOUNT             (1 << 0)
@@ -210,8 +212,6 @@ int ll_objects_destroy(struct ptlrpc_request *request,
 struct inode *ll_iget(struct super_block *sb, ino_t hash,
                       struct lustre_md *lic);
 struct dentry *ll_find_alias(struct inode *, struct dentry *);
-int ll_mdc_cancel_unused(struct lustre_handle *, struct inode *, int flags,
-                         void *opaque);
 int ll_mdc_blocking_ast(struct ldlm_lock *, struct ldlm_lock_desc *,
                         void *data, int flag);
 /* llite/rw.c */
@@ -301,8 +301,8 @@ extern struct super_operations lustre_super_operations;
 
 char *ll_read_opt(const char *opt, char *data);
 int ll_set_opt(const char *opt, char *data, int fl);
-void ll_options(char *options, char **ost, char **mds, char **sec, 
-                int *async, int *flags);
+void ll_options(char *options, char **ost, char **mds, char **mds_sec,
+                char **oss_sec, int *async, int *flags);
 void ll_lli_init(struct ll_inode_info *lli);
 int ll_fill_super(struct super_block *sb, void *data, int silent);
 int lustre_fill_super(struct super_block *sb, void *data, int silent);
@@ -489,4 +489,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 */