1 --- a/fs/overlayfs/overlayfs.c
2 +++ b/fs/overlayfs/overlayfs.c
3 @@ -28,13 +28,8 @@ struct ovl_fs {
5 struct dentry *__upperdentry;
6 struct dentry *lowerdentry;
12 - struct rcu_head rcu;
18 static const char *ovl_whiteout_xattr = "trusted.overlay.whiteout";
19 @@ -632,12 +627,6 @@ static const struct file_operations ovl_
21 static const struct inode_operations ovl_dir_inode_operations;
23 -static void ovl_entry_free(struct rcu_head *head)
25 - struct ovl_entry *oe = container_of(head, struct ovl_entry, rcu);
29 static void ovl_dentry_release(struct dentry *dentry)
31 struct ovl_entry *oe = dentry->d_fsdata;
32 @@ -645,7 +634,7 @@ static void ovl_dentry_release(struct de
34 dput(oe->__upperdentry);
35 dput(oe->lowerdentry);
36 - call_rcu(&oe->rcu, ovl_entry_free);
41 @@ -1338,7 +1327,7 @@ static int ovl_dir_getattr(struct vfsmou
45 -static int ovl_permission(struct inode *inode, int mask, unsigned int flags)
46 +static int ovl_permission(struct inode *inode, int mask)
49 struct dentry *alias = NULL;
50 @@ -1349,8 +1338,6 @@ static int ovl_permission(struct inode *
52 if (S_ISDIR(inode->i_mode)) {
53 oe = inode->i_private;
54 - } else if (flags & IPERM_FLAG_RCU) {
58 * For non-directories find an alias and get the info
59 @@ -1377,7 +1364,6 @@ static int ovl_permission(struct inode *
60 /* Careful in RCU walk mode */
61 realinode = ACCESS_ONCE(realdentry->d_inode);
63 - WARN_ON(!(flags & IPERM_FLAG_RCU));
67 @@ -1402,9 +1388,9 @@ static int ovl_permission(struct inode *
70 if (realinode->i_op->permission)
71 - err = realinode->i_op->permission(realinode, mask, flags);
72 + err = realinode->i_op->permission(realinode, mask);
74 - err = generic_permission(realinode, mask, flags,
75 + err = generic_permission(realinode, mask,
76 realinode->i_op->check_acl);