Whamcloud - gitweb
LU-10934 llite: integrate statx() API with Lustre
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index 43a46eb..76db0b0 100644 (file)
@@ -142,6 +142,7 @@ struct ll_inode_info {
        s64                             lli_atime;
        s64                             lli_mtime;
        s64                             lli_ctime;
+       s64                             lli_btime;
        spinlock_t                      lli_agl_lock;
 
        /* Try to make the d::member and f::member are aligned. Before using
@@ -229,6 +230,10 @@ struct ll_inode_info {
                        struct mutex             lli_group_mutex;
                        __u64                    lli_group_users;
                        unsigned long            lli_group_gid;
+
+                       __u64                    lli_attr_valid;
+                       __u64                    lli_lazysize;
+                       __u64                    lli_lazyblocks;
                };
        };
 
@@ -1017,7 +1022,8 @@ int ll_getattr(const struct path *path, struct kstat *stat,
 #else
 int ll_getattr(struct vfsmount *mnt, struct dentry *de, struct kstat *stat);
 #endif
-int ll_getattr_dentry(struct dentry *de, struct kstat *stat);
+int ll_getattr_dentry(struct dentry *de, struct kstat *stat, u32 request_mask,
+                     unsigned int flags);
 struct posix_acl *ll_get_acl(struct inode *inode, int type);
 #ifdef HAVE_IOP_SET_ACL
 #ifdef CONFIG_LUSTRE_FS_POSIX_ACL
@@ -1397,7 +1403,9 @@ struct ll_statahead_info {
        atomic_t                sai_cache_count; /* entry count in cache */
 };
 
-int ll_statahead(struct inode *dir, struct dentry **dentry, bool unplug);
+int ll_revalidate_statahead(struct inode *dir, struct dentry **dentry,
+                           bool unplug);
+int ll_start_statahead(struct inode *dir, struct dentry *dentry, bool agl);
 void ll_authorize_statahead(struct inode *dir, void *key);
 void ll_deauthorize_statahead(struct inode *dir, void *key);
 
@@ -1476,7 +1484,8 @@ dentry_may_statahead(struct inode *dir, struct dentry *dentry)
         * 'lld_sa_generation == lli->lli_sa_generation'.
         */
        ldd = ll_d2d(dentry);
-       if (ldd != NULL && ldd->lld_sa_generation == lli->lli_sa_generation)
+       if (ldd != NULL && lli->lli_sa_generation &&
+           ldd->lld_sa_generation == lli->lli_sa_generation)
                return false;
 
        return true;