Whamcloud - gitweb
b=20581 MDS returns full hash for readdir to decrease hash collision
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index 5273a98..6967afb 100644 (file)
@@ -138,6 +138,7 @@ struct ll_inode_info {
 
         /* for writepage() only to communicate to fsync */
         int                     lli_async_rc;
+        int                     lli_write_rc;
 
         struct posix_acl       *lli_posix_acl;
 
@@ -189,9 +190,14 @@ struct ll_inode_info {
          * before child -- it is me should cleanup the dir readahead. */
         void                   *lli_opendir_key;
         struct ll_statahead_info *lli_sai;
+        __u64                   lli_sa_pos;
         struct cl_object       *lli_clob;
         /* the most recent timestamps obtained from mds */
         struct ost_lvb          lli_lvb;
+        /**
+         * serialize normal readdir and statahead-readdir
+         */
+        cfs_semaphore_t         lli_readdir_sem;
 };
 
 /*
@@ -501,6 +507,8 @@ struct ll_readahead_state {
 };
 
 struct ll_file_dir {
+        __u64 lfd_pos;
+        __u64 lfd_next;
 };
 
 extern cfs_mem_cache_t *ll_file_data_slab;
@@ -580,8 +588,8 @@ static inline void ll_put_page(struct page *page)
 
 extern struct file_operations ll_dir_operations;
 extern struct inode_operations ll_dir_inode_operations;
-struct page *ll_get_dir_page(struct inode *dir, __u64 hash, int exact,
-                             struct ll_dir_chain *chain);
+struct page *ll_get_dir_page(struct file *filp, struct inode *dir, __u64 hash,
+                             int exact, struct ll_dir_chain *chain);
 
 int ll_get_mdt_idx(struct inode *inode);
 /* llite/namei.c */
@@ -728,7 +736,6 @@ void ll_umount_begin(struct super_block *sb);
 #endif
 int ll_remount_fs(struct super_block *sb, int *flags, char *data);
 int ll_show_options(struct seq_file *seq, struct vfsmount *vfs);
-int ll_sync_fs(struct super_block *sb, int wait);
 int ll_prep_inode(struct inode **inode, struct ptlrpc_request *req,
                   struct super_block *);
 void lustre_dump_dentry(struct dentry *, int recur);
@@ -1130,6 +1137,7 @@ struct ll_statahead_info {
         cfs_list_t              sai_entries_sent;     /* entries sent out */
         cfs_list_t              sai_entries_received; /* entries returned */
         cfs_list_t              sai_entries_stated;   /* entries stated */
+        pid_t                   sai_pid;        /* pid of statahead itself */
 };
 
 int do_statahead_enter(struct inode *dir, struct dentry **dentry, int lookup);