Re: [PATCH] reiserfs: fix handling of -EOPNOTSUPP in reiserfs_for_each_xattr

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 15-01-20 13:00:59, jeffm@xxxxxxxx wrote:
> From: Jeff Mahoney <jeffm@xxxxxxxx>
> 
> Commit 60e4cf67a58 (reiserfs: fix extended attributes on the root
> directory) introduced a regression open_xa_root started returning
> -EOPNOTSUPP but it was not handled properly in reiserfs_for_each_xattr.
> 
> When the reiserfs module is built without CONFIG_REISERFS_FS_XATTR,
> deleting an inode would result in a warning and chowning an inode
> would also result in a warning and then fail to complete.
> 
> With CONFIG_REISERFS_FS_XATTR enabled, the xattr root would always be
> present for read-write operations.
> 
> This commit handles -EOPNOSUPP in the same way -ENODATA is handled.
> 
> Fixes: 60e4cf67a58 (reiserfs: fix extended attributes on the root directory)
> Reported-by: Michael Brunnbauer <brunni@xxxxxxxxxxxx>
> Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>

Thanks Jeff! I've queued the patch to my tree and will push it to Linus
next week.

								Honza

> ---
>  fs/reiserfs/xattr.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
> index 06497965f0a0..d843c4789ced 100644
> --- a/fs/reiserfs/xattr.c
> +++ b/fs/reiserfs/xattr.c
> @@ -319,8 +319,12 @@ static int reiserfs_for_each_xattr(struct inode *inode,
>  out_dir:
>  	dput(dir);
>  out:
> -	/* -ENODATA isn't an error */
> -	if (err == -ENODATA)
> +	/*
> +	 * -ENODATA: this object doesn't have any xattrs
> +	 * -EOPNOTSUPP: this file system doesn't have xattrs enabled on disk.
> +	 * Neither are errors
> +	 */
> +	if (err == -ENODATA || err == -EOPNOTSUPP)
>  		err = 0;
>  	return err;
>  }
> -- 
> 2.16.4
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux File System Development]     [Linux BTRFS]     [Linux NFS]     [Linux Filesystems]     [Ext4 Filesystem]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Resources]

  Powered by Linux