Loading fs/btrfs/acl.c +12 −9 Original line number Diff line number Diff line Loading @@ -187,12 +187,14 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name, int btrfs_check_acl(struct inode *inode, int mask, unsigned int flags) { struct posix_acl *acl; int error = -EAGAIN; if (flags & IPERM_FLAG_RCU) return -ECHILD; if (flags & IPERM_FLAG_RCU) { if (!negative_cached_acl(inode, ACL_TYPE_ACCESS)) error = -ECHILD; } else { struct posix_acl *acl; acl = btrfs_get_acl(inode, ACL_TYPE_ACCESS); if (IS_ERR(acl)) return PTR_ERR(acl); Loading @@ -200,6 +202,7 @@ int btrfs_check_acl(struct inode *inode, int mask, unsigned int flags) error = posix_acl_permission(inode, acl, mask); posix_acl_release(acl); } } return error; } Loading fs/btrfs/inode.c +0 −3 Original line number Diff line number Diff line Loading @@ -7213,9 +7213,6 @@ static int btrfs_set_page_dirty(struct page *page) static int btrfs_permission(struct inode *inode, int mask, unsigned int flags) { if (flags & IPERM_FLAG_RCU) return -ECHILD; if ((BTRFS_I(inode)->flags & BTRFS_INODE_READONLY) && (mask & MAY_WRITE)) return -EACCES; return generic_permission(inode, mask, flags, btrfs_check_acl); Loading Loading
fs/btrfs/acl.c +12 −9 Original line number Diff line number Diff line Loading @@ -187,12 +187,14 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name, int btrfs_check_acl(struct inode *inode, int mask, unsigned int flags) { struct posix_acl *acl; int error = -EAGAIN; if (flags & IPERM_FLAG_RCU) return -ECHILD; if (flags & IPERM_FLAG_RCU) { if (!negative_cached_acl(inode, ACL_TYPE_ACCESS)) error = -ECHILD; } else { struct posix_acl *acl; acl = btrfs_get_acl(inode, ACL_TYPE_ACCESS); if (IS_ERR(acl)) return PTR_ERR(acl); Loading @@ -200,6 +202,7 @@ int btrfs_check_acl(struct inode *inode, int mask, unsigned int flags) error = posix_acl_permission(inode, acl, mask); posix_acl_release(acl); } } return error; } Loading
fs/btrfs/inode.c +0 −3 Original line number Diff line number Diff line Loading @@ -7213,9 +7213,6 @@ static int btrfs_set_page_dirty(struct page *page) static int btrfs_permission(struct inode *inode, int mask, unsigned int flags) { if (flags & IPERM_FLAG_RCU) return -ECHILD; if ((BTRFS_I(inode)->flags & BTRFS_INODE_READONLY) && (mask & MAY_WRITE)) return -EACCES; return generic_permission(inode, mask, flags, btrfs_check_acl); Loading