Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszer...
[sfrench/cifs-2.6.git] / fs / overlayfs / ovl_entry.h
index 36b49bd09264a5bd92df902a1de7d10771d4b770..752bab645879e5fce43e86d45e835d94d3c44b22 100644 (file)
@@ -17,11 +17,21 @@ struct ovl_config {
        bool index;
 };
 
        bool index;
 };
 
+struct ovl_layer {
+       struct vfsmount *mnt;
+       dev_t pseudo_dev;
+};
+
+struct ovl_path {
+       struct ovl_layer *layer;
+       struct dentry *dentry;
+};
+
 /* private information held for overlayfs's superblock */
 struct ovl_fs {
        struct vfsmount *upper_mnt;
        unsigned numlower;
 /* private information held for overlayfs's superblock */
 struct ovl_fs {
        struct vfsmount *upper_mnt;
        unsigned numlower;
-       struct vfsmount **lower_mnt;
+       struct ovl_layer *lower_layers;
        /* workbasedir is the path at workdir= mount option */
        struct dentry *workbasedir;
        /* workdir is the 'work' directory under workbasedir */
        /* workbasedir is the path at workdir= mount option */
        struct dentry *workbasedir;
        /* workdir is the 'work' directory under workbasedir */
@@ -52,7 +62,7 @@ struct ovl_entry {
                struct rcu_head rcu;
        };
        unsigned numlower;
                struct rcu_head rcu;
        };
        unsigned numlower;
-       struct path lowerstack[];
+       struct ovl_path lowerstack[];
 };
 
 struct ovl_entry *ovl_alloc_entry(unsigned int numlower);
 };
 
 struct ovl_entry *ovl_alloc_entry(unsigned int numlower);