All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vyacheslav Dubeyko <slava@dubeyko.com>
To: Jeff Liu <jeff.liu@oracle.com>
Cc: Sun_Blood <sblood@gmail.com>, xfs@oss.sgi.com
Subject: Re: Extended attributes limit in Linux
Date: Fri, 31 Jan 2014 18:21:14 +0400	[thread overview]
Message-ID: <1391178074.4275.19.camel@ubuntu> (raw)
In-Reply-To: <52EBA783.1080801@oracle.com>

On Fri, 2014-01-31 at 21:39 +0800, Jeff Liu wrote:

> > 
> > I checked the same under Mac OS X 10.6.8 (Snow Leopard). And I have
> > failed on 3803 bytes size of xattr. So, I suppose that you have Mac OS X
> > Lion. And EAs is larger under Lion yet.
> > 
> > What version of Mac OS X have you?
> > 
> Yup, Mountain Lion v10.8.4 :)
> 

I suspect that xattrs with significant size is stored in compressed
state on HFS+. I implemented support of compressed xattrs partially but
I don't share this code yet. But, yes, EAs with size greater than 64 KB
can be a problem.

> FYI, there have a couple of things regarding HFSPlus+xattr+acl on Linux might be
> deserved to discuss together.
> 
> We once have a discussion about the errno in case of hit the limits of ACLs, which
> could be referred to:
> http://www.spinics.net/lists/linux-fsdevel/msg71125.html
> 
> HFSPlus return ENOMEM in this case, but it should be E2BIG as per Dave's comments.
> I worked out a patch series includes HFSPlus, but not yet posted for some reasons.
> 
> Also, it seems to me we'd better consolidate the errno for EA as well, that is to
> say, it's better to fix the return error to be consistent with VFS interface in case
> of the given EA name/value length is larger than the specified limits.
> 
> Would you like to take a look at the following two patches?
> 

Yes, sure. Patches looks correct and good for me. But did you take into
account recent significant changes of Christoph Hellwig? If so, then all
looks good.

Thanks,
Vyacheslav Dubeyko.

> Thanks,
> -Jeff
> 
> 
> From: Jie Liu <jeff.liu@oracle.com>
> Subject: [PATCH 7/12] HFSPlus: return -E2BIG if hit the maximum size of ACLs
> 
> Return -E2BIG rather than -ENOMEM if hit the maximum size of ACLs, because
> of the former errno is consistent with the VFS interface.
> 
> Signed-off-by: Jie Liu <jeff.liu@oracle.com>
> ---
>  fs/hfsplus/posix_acl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/hfsplus/posix_acl.c b/fs/hfsplus/posix_acl.c
> index b609cc1..2f2788d 100644
> --- a/fs/hfsplus/posix_acl.c
> +++ b/fs/hfsplus/posix_acl.c
> @@ -92,7 +92,7 @@ static int hfsplus_set_posix_acl(struct inode *inode,
>  	if (acl) {
>  		size = posix_acl_xattr_size(acl->a_count);
>  		if (unlikely(size > HFSPLUS_MAX_INLINE_DATA_SIZE))
> -			return -ENOMEM;
> +			return -E2BIG;
>  		value = (char *)hfsplus_alloc_attr_entry();
>  		if (unlikely(!value))
>  			return -ENOMEM;
> -- 
> 1.8.3.2
> 
> 
> From: Jie Liu <jeff.liu@oracle.com>
> Subject: [PATCH 8/12] HFSPlus: return -ERANGE if xattr name size is larger than HFSPLUS_ATTR_MAX_STRLEN
> 
> Return -ERANGE rather than -EOPNOTSUPP if the length of xattr name is
> larger than HFSPLUS_ATTR_MAX_STRLEN, because of the former errno is
> consistent with the VFS interface.
> 
> Signed-off-by: Jie Liu <jeff.liu@oracle.com>
> ---
>  fs/hfsplus/xattr.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c
> index 3c6136f..1ca58be 100644
> --- a/fs/hfsplus/xattr.c
> +++ b/fs/hfsplus/xattr.c
> @@ -919,7 +919,7 @@ static int hfsplus_osx_getxattr(struct dentry *dentry, const char *name,
>  		return -EINVAL;
>  
>  	if (len > HFSPLUS_ATTR_MAX_STRLEN)
> -		return -EOPNOTSUPP;
> +		return -ERANGE;
>  
>  	strcpy(xattr_name, XATTR_MAC_OSX_PREFIX);
>  	strcpy(xattr_name + XATTR_MAC_OSX_PREFIX_LEN, name);
> @@ -938,7 +938,7 @@ static int hfsplus_osx_setxattr(struct dentry *dentry, const char *name,
>  		return -EINVAL;
>  
>  	if (len > HFSPLUS_ATTR_MAX_STRLEN)
> -		return -EOPNOTSUPP;
> +		return -ERANGE;
>  
>  	strcpy(xattr_name, XATTR_MAC_OSX_PREFIX);
>  	strcpy(xattr_name + XATTR_MAC_OSX_PREFIX_LEN, name);


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2014-01-31 14:21 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-31  7:40 Extended attributes limit in Linux Sun_Blood
2014-01-31  8:54 ` Jeff Liu
2014-01-31 10:44   ` Vyacheslav Dubeyko
2014-01-31 12:24     ` Jeff Liu
2014-01-31 12:52       ` Vyacheslav Dubeyko
2014-01-31 13:39         ` Jeff Liu
2014-01-31 14:21           ` Vyacheslav Dubeyko [this message]
2014-01-31 14:33             ` Jeff Liu
2014-01-31 19:25               ` Sun_Blood
2014-02-01 14:08                 ` Vyacheslav Dubeyko
2014-02-02 14:33                   ` Sun_Blood
2014-02-02 15:12                     ` Jeff Liu
2014-02-02 15:22                       ` Jeff Liu
2014-02-02 15:31                         ` Sun_Blood
2014-02-03  1:15                     ` Chris Murphy
2014-02-03  7:14                       ` Sun_Blood
2014-02-03 20:51                         ` Chris Murphy
2014-02-02 21:37   ` Dave Chinner
2014-02-03  7:19     ` Sun_Blood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1391178074.4275.19.camel@ubuntu \
    --to=slava@dubeyko.com \
    --cc=jeff.liu@oracle.com \
    --cc=sblood@gmail.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.