Unverified Commit 75c5e0c9 authored by Konstantin Komarov's avatar Konstantin Komarov
Browse files

fs/ntfs3: Changed ntfs_get_acl() to use dentry



ntfs_get_acl changed to match new interface in struct inode_operations.

Signed-off-by: default avatarKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
parent 1a6be5fb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1143,7 +1143,7 @@ const struct inode_operations ntfs_file_inode_operations = {
	.getattr	= ntfs_getattr,
	.setattr	= ntfs3_setattr,
	.listxattr	= ntfs_listxattr,
	.get_inode_acl	= ntfs_get_acl,
	.get_acl	= ntfs_get_acl,
	.set_acl	= ntfs_set_acl,
	.fiemap		= ntfs_fiemap,
};
+2 −2
Original line number Diff line number Diff line
@@ -607,7 +607,7 @@ const struct inode_operations ntfs_dir_inode_operations = {
	.rmdir		= ntfs_rmdir,
	.mknod		= ntfs_mknod,
	.rename		= ntfs_rename,
	.get_inode_acl	= ntfs_get_acl,
	.get_acl	= ntfs_get_acl,
	.set_acl	= ntfs_set_acl,
	.setattr	= ntfs3_setattr,
	.getattr	= ntfs_getattr,
@@ -620,7 +620,7 @@ const struct inode_operations ntfs_special_inode_operations = {
	.setattr	= ntfs3_setattr,
	.getattr	= ntfs_getattr,
	.listxattr	= ntfs_listxattr,
	.get_inode_acl	= ntfs_get_acl,
	.get_acl	= ntfs_get_acl,
	.set_acl	= ntfs_set_acl,
};

+3 −2
Original line number Diff line number Diff line
@@ -857,7 +857,8 @@ unsigned long ntfs_names_hash(const u16 *name, size_t len, const u16 *upcase,

/* globals from xattr.c */
#ifdef CONFIG_NTFS3_FS_POSIX_ACL
struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu);
struct posix_acl *ntfs_get_acl(struct mnt_idmap *idmap,
		 struct dentry *dentry, int type);
int ntfs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
		 struct posix_acl *acl, int type);
int ntfs_init_acl(struct mnt_idmap *idmap, struct inode *inode,
+9 −17
Original line number Diff line number Diff line
@@ -520,9 +520,14 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
}

#ifdef CONFIG_NTFS3_FS_POSIX_ACL
static struct posix_acl *ntfs_get_acl_ex(struct inode *inode, int type,
					 int locked)

/*
 * ntfs_get_acl - inode_operations::get_acl
 */
struct posix_acl *ntfs_get_acl(struct mnt_idmap *idmap,
			       struct dentry *dentry, int type)
{
	struct inode *inode = d_inode(dentry);
	struct ntfs_inode *ni = ntfs_i(inode);
	const char *name;
	size_t name_len;
@@ -545,12 +550,10 @@ static struct posix_acl *ntfs_get_acl_ex(struct inode *inode, int type,
		name_len = sizeof(XATTR_NAME_POSIX_ACL_DEFAULT) - 1;
	}

	if (!locked)
	ni_lock(ni);

	err = ntfs_get_ea(inode, name, name_len, buf, PATH_MAX, &req);

	if (!locked)
	ni_unlock(ni);

	/* Translate extended attribute to acl. */
@@ -570,17 +573,6 @@ static struct posix_acl *ntfs_get_acl_ex(struct inode *inode, int type,
	return acl;
}

/*
 * ntfs_get_acl - inode_operations::get_acl
 */
struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu)
{
	if (rcu)
		return ERR_PTR(-ECHILD);

	return ntfs_get_acl_ex(inode, type, 0);
}

static noinline int ntfs_set_acl_ex(struct mnt_idmap *idmap,
				    struct inode *inode, struct posix_acl *acl,
				    int type, bool init_acl)