Whamcloud - gitweb
land b_gns onto HEAD. If you are working on CMD, you MUST UPDATE YOUR
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index d8526f0..7c8927b 100644 (file)
@@ -41,8 +41,21 @@ struct ll_sb_info {
         unsigned long             ll_read_ahead_pages;
         unsigned long             ll_max_read_ahead_pages;
 
+        /* list of GNS mounts; protected by the dcache_lock */
+        struct list_head          ll_mnt_list;
+
+        struct semaphore          ll_gns_sem;
+        wait_queue_head_t         ll_gns_waitq;
+        struct completion         ll_gns_completion;
+        int                       ll_gns_state;
+        struct timer_list         ll_gns_timer;
+        struct list_head          ll_gns_sbi_head;
 };
 
+#define LL_GNS_STATE_IDLE     1100
+#define LL_GNS_STATE_MOUNTING 1101
+#define LL_GNS_STATE_FINISHED 1102
+
 struct ll_readahead_state {
         spinlock_t      ras_lock;
         unsigned long   ras_last_readpage, ras_consecutive;
@@ -166,8 +179,18 @@ void ll_unhash_aliases(struct inode *);
 void ll_frob_intent(struct lookup_intent **itp, struct lookup_intent *deft);
 void ll_lookup_finish_locks(struct lookup_intent *it, struct dentry *dentry);
 
-/* llite/llite_lib.c */
+/* llite/llite_gns.c */
+int ll_finish_gns(struct ll_sb_info *sbi);
+int fill_page_with_path(struct dentry *, struct vfsmount *, char **pagep);
+int ll_dir_process_mount_object(struct dentry *, struct vfsmount *);
+int ll_gns_umount_all(struct ll_sb_info *sbi, int timeout);
+void ll_gns_timer_callback(unsigned long data);
+void ll_gns_add_timer(struct ll_sb_info *sbi);
+void ll_gns_del_timer(struct ll_sb_info *sbi);
+int ll_gns_start_thread(void);
+void ll_gns_stop_thread(void);
 
+/* llite/llite_lib.c */
 extern struct super_operations lustre_super_operations;
 
 char *ll_read_opt(const char *opt, char *data);