diff -uprN linux-next-20110720.orig/fs/overlayfs/inode.c linux-next-20110720/fs/overlayfs/inode.c --- linux-next-20110720.orig/fs/overlayfs/inode.c 2011-07-20 21:15:43.768927737 +0200 +++ linux-next-20110720/fs/overlayfs/inode.c 2011-07-20 21:03:32.078126336 +0200 @@ -45,7 +45,7 @@ static int ovl_getattr(struct vfsmount * return vfs_getattr(realpath.mnt, realpath.dentry, stat); } -int ovl_permission(struct inode *inode, int mask, unsigned int flags) +int ovl_permission(struct inode *inode, int mask) { struct ovl_entry *oe; struct dentry *alias = NULL; @@ -56,7 +56,7 @@ int ovl_permission(struct inode *inode, if (S_ISDIR(inode->i_mode)) { oe = inode->i_private; - } else if (flags & IPERM_FLAG_RCU) { + } else if (mask & MAY_NOT_BLOCK) { return -ECHILD; } else { /* @@ -79,7 +79,7 @@ int ovl_permission(struct inode *inode, /* Careful in RCU walk mode */ realinode = ACCESS_ONCE(realdentry->d_inode); if (!realinode) { - WARN_ON(!(flags & IPERM_FLAG_RCU)); + WARN_ON(!(mask & MAY_NOT_BLOCK)); err = -ENOENT; goto out_dput; } @@ -105,10 +105,9 @@ int ovl_permission(struct inode *inode, } if (realinode->i_op->permission) - err = realinode->i_op->permission(realinode, mask, flags); + err = realinode->i_op->permission(realinode, mask); else - err = generic_permission(realinode, mask, flags, - realinode->i_op->check_acl); + err = generic_permission(realinode, mask); out_dput: dput(alias); return err; diff -uprN linux-next-20110720.orig/fs/overlayfs/overlayfs.h linux-next-20110720/fs/overlayfs/overlayfs.h --- linux-next-20110720.orig/fs/overlayfs/overlayfs.h 2011-07-20 21:15:43.772927687 +0200 +++ linux-next-20110720/fs/overlayfs/overlayfs.h 2011-07-20 21:04:22.393493785 +0200 @@ -44,7 +44,7 @@ int ovl_check_empty_and_clear(struct den /* inode.c */ int ovl_setattr(struct dentry *dentry, struct iattr *attr); -int ovl_permission(struct inode *inode, int mask, unsigned int flags); +int ovl_permission(struct inode *inode, int mask); int ovl_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags); ssize_t ovl_getxattr(struct dentry *dentry, const char *name,