Pulled in backported OverlayFS from linux-sunxi 3.4-ovl13 branch.

This commit is contained in:
Tonoxis
2021-04-04 16:23:17 -04:00
parent 66b91c76c0
commit 41ecc233c8
24 changed files with 3084 additions and 43 deletions

View File

@@ -490,6 +490,12 @@ struct iattr {
*/
#include <linux/quota.h>
/*
* Maximum number of layers of fs stack. Needs to be limited to
* prevent kernel stack overflow
*/
#define FILESYSTEM_MAX_STACK_DEPTH 2
/**
* enum positive_aop_returns - aop return codes with specific semantics
*
@@ -1508,6 +1514,11 @@ struct super_block {
/* Being remounted read-only */
int s_readonly_remount;
/*
* Indicates how deep in a filesystem stack this SB is
*/
int s_stack_depth;
};
/* superblock cache pruning functions */
@@ -1665,6 +1676,8 @@ struct inode_operations {
void (*truncate_range)(struct inode *, loff_t, loff_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
u64 len);
struct file *(*open) (struct dentry *, struct file *,
const struct cred *);
} ____cacheline_aligned;
struct seq_file;
@@ -2022,6 +2035,7 @@ extern long do_sys_open(int dfd, const char __user *filename, int flags,
extern struct file *filp_open(const char *, int, umode_t);
extern struct file *file_open_root(struct dentry *, struct vfsmount *,
const char *, int);
extern struct file *vfs_open(struct path *, struct file *, const struct cred *);
extern struct file * dentry_open(struct dentry *, struct vfsmount *, int,
const struct cred *);
extern int filp_close(struct file *, fl_owner_t id);
@@ -2214,6 +2228,7 @@ extern sector_t bmap(struct inode *, sector_t);
#endif
extern int notify_change(struct dentry *, struct iattr *);
extern int inode_permission(struct inode *, int);
extern int inode_only_permission(struct inode *, int);
extern int generic_permission(struct inode *, int);
static inline bool execute_ok(struct inode *inode)