linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up
@ 2019-01-25 11:51 Gao Xiang
  2019-01-25 12:01 ` [PATCH 2/2] staging: erofs: complete POSIX ACL support Gao Xiang
  2019-01-25 13:26 ` [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Dan Carpenter
  0 siblings, 2 replies; 6+ messages in thread
From: Gao Xiang @ 2019-01-25 11:51 UTC (permalink / raw)
  To: Chao Yu, Greg Kroah-Hartman, devel
  Cc: LKML, linux-erofs, Chao Yu, Miao Xie, weidu.du, Fang Wei, Gao Xiang

Let's use xattr_prefix instead of open code.
No logic changes.

Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
---
 drivers/staging/erofs/xattr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/erofs/xattr.c b/drivers/staging/erofs/xattr.c
index 1c9498e38f0e..eca65df46133 100644
--- a/drivers/staging/erofs/xattr.c
+++ b/drivers/staging/erofs/xattr.c
@@ -521,7 +521,7 @@ static int xattr_entrylist(struct xattr_iter *_it,
 		return 1;
 
 	/* Note that at least one of 'prefix' and 'name' should be non-NULL */
-	prefix = h->prefix != NULL ? h->prefix : h->name;
+	prefix = xattr_prefix(h);
 	prefix_len = strlen(prefix);
 
 	if (it->buffer == NULL) {
-- 
2.14.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] staging: erofs: complete POSIX ACL support
  2019-01-25 11:51 [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Gao Xiang
@ 2019-01-25 12:01 ` Gao Xiang
  2019-01-25 13:30   ` Dan Carpenter
  2019-01-25 13:26 ` [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Dan Carpenter
  1 sibling, 1 reply; 6+ messages in thread
From: Gao Xiang @ 2019-01-25 12:01 UTC (permalink / raw)
  To: Chao Yu, Greg Kroah-Hartman, devel
  Cc: LKML, linux-erofs, Chao Yu, Miao Xie, weidu.du, Fang Wei, Gao Xiang

Let's add .get_acl() to read the file's acl
from its xattrs to make POSIX ACL usable.

Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
---
 This [PATCH 2/2] currently hasn't tested, please ignore temporarily...
 I will test it asap...

Thanks,
Gao Xiang

 drivers/staging/erofs/inode.c |  3 +++
 drivers/staging/erofs/namei.c |  1 +
 drivers/staging/erofs/xattr.c | 40 ++++++++++++++++++++++++++++++++++++++++
 drivers/staging/erofs/xattr.h |  6 ++++++
 4 files changed, 50 insertions(+)

diff --git a/drivers/staging/erofs/inode.c b/drivers/staging/erofs/inode.c
index 4f04f7c38cf2..924b8dfc7a8f 100644
--- a/drivers/staging/erofs/inode.c
+++ b/drivers/staging/erofs/inode.c
@@ -287,6 +287,7 @@ const struct inode_operations erofs_generic_iops = {
 #ifdef CONFIG_EROFS_FS_XATTR
 	.listxattr = erofs_listxattr,
 #endif
+	.get_acl = erofs_get_acl,
 };
 
 const struct inode_operations erofs_symlink_iops = {
@@ -294,6 +295,7 @@ const struct inode_operations erofs_symlink_iops = {
 #ifdef CONFIG_EROFS_FS_XATTR
 	.listxattr = erofs_listxattr,
 #endif
+	.get_acl = erofs_get_acl,
 };
 
 const struct inode_operations erofs_fast_symlink_iops = {
@@ -301,5 +303,6 @@ const struct inode_operations erofs_fast_symlink_iops = {
 #ifdef CONFIG_EROFS_FS_XATTR
 	.listxattr = erofs_listxattr,
 #endif
+	.get_acl = erofs_get_acl,
 };
 
diff --git a/drivers/staging/erofs/namei.c b/drivers/staging/erofs/namei.c
index 7fed1f996ab0..b1752adc5934 100644
--- a/drivers/staging/erofs/namei.c
+++ b/drivers/staging/erofs/namei.c
@@ -238,5 +238,6 @@ const struct inode_operations erofs_dir_iops = {
 #ifdef CONFIG_EROFS_FS_XATTR
 	.listxattr = erofs_listxattr,
 #endif
+	.get_acl = erofs_get_acl,
 };
 
diff --git a/drivers/staging/erofs/xattr.c b/drivers/staging/erofs/xattr.c
index eca65df46133..ee66ebffbb93 100644
--- a/drivers/staging/erofs/xattr.c
+++ b/drivers/staging/erofs/xattr.c
@@ -644,3 +644,43 @@ ssize_t erofs_listxattr(struct dentry *dentry,
 	return shared_listxattr(&it);
 }
 
+#ifdef CONFIG_EROFS_FS_POSIX_ACL
+struct posix_acl *erofs_get_acl(struct inode *inode, int type)
+{
+	struct posix_acl *acl;
+	int ea_prefix, rc;
+	char *ea_name;
+	char *value = NULL;
+
+	switch (type) {
+	case ACL_TYPE_ACCESS:
+		ea_prefix = EROFS_XATTR_INDEX_POSIX_ACL_ACCESS;
+		ea_name = XATTR_NAME_POSIX_ACL_ACCESS;
+		break;
+	case ACL_TYPE_DEFAULT:
+		ea_prefix = EROFS_XATTR_INDEX_POSIX_ACL_DEFAULT;
+		ea_name = XATTR_NAME_POSIX_ACL_DEFAULT;
+		break;
+	default:
+		return ERR_PTR(-EINVAL);
+	}
+
+	rc = erofs_getxattr(inode, ea_prefix, ea_name, NULL, 0);
+	if (rc > 0) {
+		value = kvmalloc(rc, GFP_KERNEL);
+		if (!value)
+			return ERR_PTR(-ENOMEM);
+		rc = erofs_getxattr(inode, ea_prefix, ea_name, value, rc);
+	}
+
+	if (rc == -ENOATTR)
+		acl = NULL;
+	else if (rc < 0)
+		acl = ERR_PTR(rc);
+	else
+		acl = posix_acl_from_xattr(&init_user_ns, value, rc);
+	kvfree(value);
+	return acl;
+}
+#endif
+
diff --git a/drivers/staging/erofs/xattr.h b/drivers/staging/erofs/xattr.h
index 634dae9aaa0b..35ba5ac2139a 100644
--- a/drivers/staging/erofs/xattr.h
+++ b/drivers/staging/erofs/xattr.h
@@ -87,5 +87,11 @@ static ssize_t __maybe_unused erofs_listxattr(struct dentry *dentry,
 }
 #endif
 
+#ifdef CONFIG_EROFS_FS_POSIX_ACL
+struct posix_acl *erofs_get_acl(struct inode *inode, int type);
+#else
+#define erofs_get_acl	(NULL)
+#endif
+
 #endif
 
-- 
2.14.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up
  2019-01-25 11:51 [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Gao Xiang
  2019-01-25 12:01 ` [PATCH 2/2] staging: erofs: complete POSIX ACL support Gao Xiang
@ 2019-01-25 13:26 ` Dan Carpenter
  2019-01-25 13:58   ` Gao Xiang
  1 sibling, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2019-01-25 13:26 UTC (permalink / raw)
  To: Gao Xiang
  Cc: Chao Yu, Greg Kroah-Hartman, devel, linux-erofs, Chao Yu, LKML,
	weidu.du, Fang Wei, Miao Xie

On Fri, Jan 25, 2019 at 07:51:03PM +0800, Gao Xiang wrote:
> Let's use xattr_prefix instead of open code.
> No logic changes.
> 
> Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
> ---
>  drivers/staging/erofs/xattr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/erofs/xattr.c b/drivers/staging/erofs/xattr.c
> index 1c9498e38f0e..eca65df46133 100644
> --- a/drivers/staging/erofs/xattr.c
> +++ b/drivers/staging/erofs/xattr.c
> @@ -521,7 +521,7 @@ static int xattr_entrylist(struct xattr_iter *_it,
>  		return 1;
>  
>  	/* Note that at least one of 'prefix' and 'name' should be non-NULL */

The comment is sort of confusing now.

> -	prefix = h->prefix != NULL ? h->prefix : h->name;
> +	prefix = xattr_prefix(h);
>  	prefix_len = strlen(prefix);

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] staging: erofs: complete POSIX ACL support
  2019-01-25 12:01 ` [PATCH 2/2] staging: erofs: complete POSIX ACL support Gao Xiang
@ 2019-01-25 13:30   ` Dan Carpenter
  2019-01-25 13:54     ` Gao Xiang
  0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2019-01-25 13:30 UTC (permalink / raw)
  To: Gao Xiang
  Cc: Chao Yu, Greg Kroah-Hartman, devel, linux-erofs, Chao Yu, LKML,
	weidu.du, Fang Wei, Miao Xie

On Fri, Jan 25, 2019 at 08:01:04PM +0800, Gao Xiang wrote:
> Let's add .get_acl() to read the file's acl
> from its xattrs to make POSIX ACL usable.
> 
> Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
> ---
>  This [PATCH 2/2] currently hasn't tested, please ignore temporarily...
>  I will test it asap...

This is an awkward thing.

Just don't send it until after you test it.  We also ignore RFC patches
so if you mark it as RFC that will be ignored if you want.

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] staging: erofs: complete POSIX ACL support
  2019-01-25 13:30   ` Dan Carpenter
@ 2019-01-25 13:54     ` Gao Xiang
  0 siblings, 0 replies; 6+ messages in thread
From: Gao Xiang @ 2019-01-25 13:54 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Chao Yu, Greg Kroah-Hartman, devel, linux-erofs, Chao Yu, LKML,
	weidu.du, Fang Wei, Miao Xie

Hi Dan,

On 2019/1/25 21:30, Dan Carpenter wrote:
> On Fri, Jan 25, 2019 at 08:01:04PM +0800, Gao Xiang wrote:
>> Let's add .get_acl() to read the file's acl
>> from its xattrs to make POSIX ACL usable.
>>
>> Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
>> ---
>>  This [PATCH 2/2] currently hasn't tested, please ignore temporarily...
>>  I will test it asap...
> 
> This is an awkward thing.
> 
> Just don't send it until after you test it.  We also ignore RFC patches
> so if you mark it as RFC that will be ignored if you want.

Yes, you are right.

Actually I just want to send the only [PATCH 1/2], but I missed to
change the subject of [PATCH 1/2] -> [PATCH]...Therefore I have to
send this incomplete one to complete this "patchset" by mistake...

Thanks,
Gao Xiang

> 
> regards,
> dan carpenter
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up
  2019-01-25 13:26 ` [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Dan Carpenter
@ 2019-01-25 13:58   ` Gao Xiang
  0 siblings, 0 replies; 6+ messages in thread
From: Gao Xiang @ 2019-01-25 13:58 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Chao Yu, Greg Kroah-Hartman, devel, linux-erofs, Chao Yu, LKML,
	weidu.du, Fang Wei, Miao Xie

Hi Dan,

On 2019/1/25 21:26, Dan Carpenter wrote:
> On Fri, Jan 25, 2019 at 07:51:03PM +0800, Gao Xiang wrote:
>> Let's use xattr_prefix instead of open code.
>> No logic changes.
>>
>> Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
>> ---
>>  drivers/staging/erofs/xattr.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/erofs/xattr.c b/drivers/staging/erofs/xattr.c
>> index 1c9498e38f0e..eca65df46133 100644
>> --- a/drivers/staging/erofs/xattr.c
>> +++ b/drivers/staging/erofs/xattr.c
>> @@ -521,7 +521,7 @@ static int xattr_entrylist(struct xattr_iter *_it,
>>  		return 1;
>>  
>>  	/* Note that at least one of 'prefix' and 'name' should be non-NULL */
> 
> The comment is sort of confusing now.

OK, I will remove this line.

And I think I will send the whole patchset instead of this cleanup patch
only after I test the ACL feature and confirm that it works.

Sorry again about the [PATCH 2/2]...

Thanks,
Gao Xiang

> 
>> -	prefix = h->prefix != NULL ? h->prefix : h->name;
>> +	prefix = xattr_prefix(h);
>>  	prefix_len = strlen(prefix);
> 
> regards,
> dan carpenter
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-01-25 13:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-25 11:51 [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Gao Xiang
2019-01-25 12:01 ` [PATCH 2/2] staging: erofs: complete POSIX ACL support Gao Xiang
2019-01-25 13:30   ` Dan Carpenter
2019-01-25 13:54     ` Gao Xiang
2019-01-25 13:26 ` [PATCH 1/2] staging: erofs: use xattr_prefix to wrap up Dan Carpenter
2019-01-25 13:58   ` Gao Xiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).