summaryrefslogtreecommitdiff
path: root/fs/aufs/super.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/aufs/super.h')
-rw-r--r--fs/aufs/super.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/aufs/super.h b/fs/aufs/super.h
index 8ec54fa6e..e0f588ef2 100644
--- a/fs/aufs/super.h
+++ b/fs/aufs/super.h
@@ -178,6 +178,9 @@ struct au_sbinfo {
/* file list */
struct au_sphlhead si_files;
+ /* with/without getattr, brother of sb->s_d_op */
+ struct inode_operations *si_iop_array;
+
/*
* sysfs and lifetime management.
* this is not a small structure and it may be a waste of memory in case
@@ -209,8 +212,8 @@ struct au_sbinfo {
* if it is false, refreshing dirs at access time is unnecesary
*/
#define AuSi_FAILED_REFRESH_DIR 1
-
#define AuSi_FHSM (1 << 1) /* fhsm is active now */
+#define AuSi_NO_DREVAL (1 << 2) /* disable all d_revalidate */
#ifndef CONFIG_AUFS_FHSM
#undef AuSi_FHSM
@@ -246,7 +249,7 @@ static inline unsigned char au_do_ftest_si(struct au_sbinfo *sbi,
#define AuLock_IR (1 << 1) /* read-lock inode */
#define AuLock_IW (1 << 2) /* write-lock inode */
#define AuLock_FLUSH (1 << 3) /* wait for 'nowait' tasks */
-#define AuLock_DIR (1 << 4) /* target is a dir */
+#define AuLock_DIRS (1 << 4) /* target is a pair of dirs */
#define AuLock_NOPLM (1 << 5) /* return err in plm mode */
#define AuLock_NOPLMW (1 << 6) /* wait for plm mode ends */
#define AuLock_GEN (1 << 7) /* test digen/iigen */
@@ -261,10 +264,11 @@ static inline unsigned char au_do_ftest_si(struct au_sbinfo *sbi,
/* super.c */
extern struct file_system_type aufs_fs_type;
struct inode *au_iget_locked(struct super_block *sb, ino_t ino);
-typedef unsigned long long (*au_arraycb_t)(void *array, unsigned long long max,
- void *arg);
+typedef unsigned long long (*au_arraycb_t)(struct super_block *sb, void *array,
+ unsigned long long max, void *arg);
void au_array_free(void *array);
-void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb, void *arg);
+void *au_array_alloc(unsigned long long *hint, au_arraycb_t cb,
+ struct super_block *sb, void *arg);
struct inode **au_iarray_alloc(struct super_block *sb, unsigned long long *max);
void au_iarray_free(struct inode **a, unsigned long long max);