/* * * Copyright (C) 2011 Novell Inc. * Copyright (C) 2016 Red Hat, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published by * the Free Software Foundation. */ struct ovl_config { char *lowerdir; char *upperdir; char *workdir; bool default_permissions; bool redirect_dir; bool redirect_follow; const char *redirect_mode; bool index; bool nfs_export; }; struct ovl_layer { struct vfsmount *mnt; dev_t pseudo_dev; /* Index of this layer in fs root (upper == 0) */ int idx; }; 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; struct ovl_layer *lower_layers; /* workbasedir is the path at workdir= mount option */ struct dentry *workbasedir; /* workdir is the 'work' directory under workbasedir */ struct dentry *workdir; /* index directory listing overlay inodes by origin file handle */ struct dentry *indexdir; long namelen; /* pathnames of lower and upper dirs, for show_options */ struct ovl_config config; /* creds of process who forced instantiation of super block */ const struct cred *creator_cred; bool tmpfile; bool noxattr; /* sb common to all layers */ struct super_block *same_sb; /* Did we take the inuse lock? */ bool upperdir_locked; bool workdir_locked; }; /* private information held for every overlayfs dentry */ struct ovl_entry { union { struct { unsigned long flags; }; struct rcu_head rcu; }; unsigned numlower; struct ovl_path lowerstack[]; }; struct ovl_entry *ovl_alloc_entry(unsigned int numlower);
static inline struct ovl_entry *OVL_E(struct dentry *dentry) { return (struct ovl_entry *) dentry->d_fsdata; }Contributors
| Person | Tokens | Prop | Commits | CommitProp |
| Amir Goldstein | 24 | 100.00% | 1 | 100.00% |
| Total | 24 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp |
| Amir Goldstein | 25 | 100.00% | 1 | 100.00% |
| Total | 25 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp |
| Miklos Szeredi | 21 | 95.45% | 1 | 50.00% |
| Will Deacon | 1 | 4.55% | 1 | 50.00% |
| Total | 22 | 100.00% | 2 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp |
| Miklos Szeredi | 155 | 52.90% | 10 | 41.67% |
| Amir Goldstein | 106 | 36.18% | 11 | 45.83% |
| Chandan Rajendra | 31 | 10.58% | 2 | 8.33% |
| Will Deacon | 1 | 0.34% | 1 | 4.17% |
| Total | 293 | 100.00% | 24 | 100.00% |