ovl: layer is const
authorMiklos Szeredi <mszeredi@redhat.com>
Fri, 24 Jan 2020 08:46:45 +0000 (09:46 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Fri, 24 Jan 2020 08:46:45 +0000 (09:46 +0100)
The ovl_layer struct is never modified except at initialization.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/export.c
fs/overlayfs/overlayfs.h
fs/overlayfs/ovl_entry.h
fs/overlayfs/readdir.c
fs/overlayfs/super.c
fs/overlayfs/util.c

index d01f938..6f54d70 100644 (file)
@@ -358,7 +358,7 @@ static struct dentry *ovl_dentry_real_at(struct dentry *dentry, int idx)
  */
 static struct dentry *ovl_lookup_real_one(struct dentry *connected,
                                          struct dentry *real,
-                                         struct ovl_layer *layer)
+                                         const struct ovl_layer *layer)
 {
        struct inode *dir = d_inode(connected);
        struct dentry *this, *parent = NULL;
@@ -414,14 +414,14 @@ fail:
 
 static struct dentry *ovl_lookup_real(struct super_block *sb,
                                      struct dentry *real,
-                                     struct ovl_layer *layer);
+                                     const struct ovl_layer *layer);
 
 /*
  * Lookup an indexed or hashed overlay dentry by real inode.
  */
 static struct dentry *ovl_lookup_real_inode(struct super_block *sb,
                                            struct dentry *real,
-                                           struct ovl_layer *layer)
+                                           const struct ovl_layer *layer)
 {
        struct ovl_fs *ofs = sb->s_fs_info;
        struct dentry *index = NULL;
@@ -486,7 +486,7 @@ static struct dentry *ovl_lookup_real_inode(struct super_block *sb,
  */
 static struct dentry *ovl_lookup_real_ancestor(struct super_block *sb,
                                               struct dentry *real,
-                                              struct ovl_layer *layer)
+                                              const struct ovl_layer *layer)
 {
        struct dentry *next, *parent = NULL;
        struct dentry *ancestor = ERR_PTR(-EIO);
@@ -539,7 +539,7 @@ static struct dentry *ovl_lookup_real_ancestor(struct super_block *sb,
  */
 static struct dentry *ovl_lookup_real(struct super_block *sb,
                                      struct dentry *real,
-                                     struct ovl_layer *layer)
+                                     const struct ovl_layer *layer)
 {
        struct dentry *connected;
        int err = 0;
@@ -645,7 +645,7 @@ static struct dentry *ovl_get_dentry(struct super_block *sb,
                                     struct dentry *index)
 {
        struct ovl_fs *ofs = sb->s_fs_info;
-       struct ovl_layer *layer = upper ? &ofs->layers[0] : lowerpath->layer;
+       const struct ovl_layer *layer = upper ? &ofs->layers[0] : lowerpath->layer;
        struct dentry *real = upper ?: (index ?: lowerpath->dentry);
 
        /*
index e4ae3a4..dabfa0d 100644 (file)
@@ -239,7 +239,7 @@ enum ovl_path_type ovl_path_real(struct dentry *dentry, struct path *path);
 struct dentry *ovl_dentry_upper(struct dentry *dentry);
 struct dentry *ovl_dentry_lower(struct dentry *dentry);
 struct dentry *ovl_dentry_lowerdata(struct dentry *dentry);
-struct ovl_layer *ovl_layer_lower(struct dentry *dentry);
+const struct ovl_layer *ovl_layer_lower(struct dentry *dentry);
 struct dentry *ovl_dentry_real(struct dentry *dentry);
 struct dentry *ovl_i_dentry_upper(struct inode *inode);
 struct inode *ovl_inode_upper(struct inode *inode);
index c9324ad..89015ea 100644 (file)
@@ -40,7 +40,7 @@ struct ovl_layer {
 };
 
 struct ovl_path {
-       struct ovl_layer *layer;
+       const struct ovl_layer *layer;
        struct dentry *dentry;
 };
 
@@ -50,7 +50,7 @@ struct ovl_fs {
        unsigned int numlayer;
        /* Number of unique fs among layers including upper fs */
        unsigned int numfs;
-       struct ovl_layer *layers;
+       const struct ovl_layer *layers;
        struct ovl_sb *fs;
        /* workbasedir is the path at workdir= mount option */
        struct dentry *workbasedir;
index c8e478f..40ac9ce 100644 (file)
@@ -691,7 +691,7 @@ static int ovl_iterate_real(struct file *file, struct dir_context *ctx)
        int err;
        struct ovl_dir_file *od = file->private_data;
        struct dentry *dir = file->f_path.dentry;
-       struct ovl_layer *lower_layer = ovl_layer_lower(dir);
+       const struct ovl_layer *lower_layer = ovl_layer_lower(dir);
        struct ovl_readdir_translate rdt = {
                .ctx.actor = ovl_fill_real,
                .orig_ctx = ctx,
index dcdcb4e..c795b74 100644 (file)
@@ -1320,12 +1320,13 @@ static int ovl_get_layers(struct super_block *sb, struct ovl_fs *ofs,
 {
        int err;
        unsigned int i;
+       struct ovl_layer *layers;
 
        err = -ENOMEM;
-       ofs->layers = kcalloc(numlower + 1, sizeof(struct ovl_layer),
-                             GFP_KERNEL);
-       if (ofs->layers == NULL)
+       layers = kcalloc(numlower + 1, sizeof(struct ovl_layer), GFP_KERNEL);
+       if (!layers)
                goto out;
+       ofs->layers = layers;
 
        ofs->fs = kcalloc(numlower + 1, sizeof(struct ovl_sb), GFP_KERNEL);
        if (ofs->fs == NULL)
@@ -1334,9 +1335,9 @@ static int ovl_get_layers(struct super_block *sb, struct ovl_fs *ofs,
        /* idx/fsid 0 are reserved for upper fs even with lower only overlay */
        ofs->numfs++;
 
-       ofs->layers[0].mnt = ofs->upper_mnt;
-       ofs->layers[0].idx = 0;
-       ofs->layers[0].fsid = 0;
+       layers[0].mnt = ofs->upper_mnt;
+       layers[0].idx = 0;
+       layers[0].fsid = 0;
        ofs->numlayer = 1;
 
        /*
@@ -1389,11 +1390,11 @@ static int ovl_get_layers(struct super_block *sb, struct ovl_fs *ofs,
                 */
                mnt->mnt_flags |= MNT_READONLY | MNT_NOATIME;
 
-               ofs->layers[ofs->numlayer].trap = trap;
-               ofs->layers[ofs->numlayer].mnt = mnt;
-               ofs->layers[ofs->numlayer].idx = ofs->numlayer;
-               ofs->layers[ofs->numlayer].fsid = fsid;
-               ofs->layers[ofs->numlayer].fs = &ofs->fs[fsid];
+               layers[ofs->numlayer].trap = trap;
+               layers[ofs->numlayer].mnt = mnt;
+               layers[ofs->numlayer].idx = ofs->numlayer;
+               layers[ofs->numlayer].fsid = fsid;
+               layers[ofs->numlayer].fs = &ofs->fs[fsid];
                ofs->numlayer++;
                ofs->fs[fsid].is_lower = true;
        }
index df503a8..ea00508 100644 (file)
@@ -186,7 +186,7 @@ struct dentry *ovl_dentry_lower(struct dentry *dentry)
        return oe->numlower ? oe->lowerstack[0].dentry : NULL;
 }
 
-struct ovl_layer *ovl_layer_lower(struct dentry *dentry)
+const struct ovl_layer *ovl_layer_lower(struct dentry *dentry)
 {
        struct ovl_entry *oe = dentry->d_fsdata;