[v2,4/4] btrfs-progs: Fix the return value when executing 'btrfs pro get' on a uncompress file.
diff mbox

Message ID 1397553744-24465-1-git-send-email-quwenruo@cn.fujitsu.com
State Accepted
Headers show

Commit Message

Qu Wenruo April 15, 2014, 9:22 a.m. UTC
When executing 'btrfs pro get' on a file which is not compressed, return
value will always be 50 since prop_compress() return -ENOATTR.

But the codes have already check the errno to avoid unnecessary error
message, so the return value should also set to 0.

Signed-off-by: Qu Wenruo <quwenro@cn.fujitsu.com>
---
 props.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Filipe Manana April 15, 2014, 9:27 a.m. UTC | #1
On Tue, Apr 15, 2014 at 10:22 AM, Qu Wenruo <quwenruo@cn.fujitsu.com> wrote:
> When executing 'btrfs pro get' on a file which is not compressed, return
> value will always be 50 since prop_compress() return -ENOATTR.
>
> But the codes have already check the errno to avoid unnecessary error
> message, so the return value should also set to 0.
>
> Signed-off-by: Qu Wenruo <quwenro@cn.fujitsu.com>
Reviewed-by: Filipe Manana <fdmanana@gmail.com>

Thanks Qu

> ---
>  props.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/props.c b/props.c
> index 4d0aeea..c09865b 100644
> --- a/props.c
> +++ b/props.c
> @@ -142,10 +142,12 @@ static int prop_compression(enum prop_object_type type,
>                 sret = fgetxattr(fd, xattr_name, NULL, 0);
>         if (sret < 0) {
>                 ret = -errno;
> -               if (ret != -ENODATA)
> +               if (ret != -ENOATTR)
>                         fprintf(stderr,
>                                 "ERROR: failed to %s compression for %s. %s\n",
>                                 value ? "set" : "get", object, strerror(-ret));
> +               else
> +                       ret = 0;
>                 goto out;
>         }
>         if (!value) {
> --
> 1.9.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Sterba April 22, 2014, 12:37 p.m. UTC | #2
On Tue, Apr 15, 2014 at 05:22:24PM +0800, Qu Wenruo wrote:
> When executing 'btrfs pro get' on a file which is not compressed, return
> value will always be 50 since prop_compress() return -ENOATTR.
> 
> But the codes have already check the errno to avoid unnecessary error
> message, so the return value should also set to 0.
> 
> Signed-off-by: Qu Wenruo <quwenro@cn.fujitsu.com>

JFYI, I've edited the subject and changelog, let's use the 'prop'
abbreviation for properties.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Qu Wenruo April 23, 2014, 1:22 a.m. UTC | #3
-------- Original Message --------
Subject: Re: [PATCH v2 4/4] btrfs-progs: Fix the return value when 
executing 'btrfs pro get' on a uncompress file.
From: David Sterba <dsterba@suse.cz>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Date: 2014?04?22? 20:37
> On Tue, Apr 15, 2014 at 05:22:24PM +0800, Qu Wenruo wrote:
>> When executing 'btrfs pro get' on a file which is not compressed, return
>> value will always be 50 since prop_compress() return -ENOATTR.
>>
>> But the codes have already check the errno to avoid unnecessary error
>> message, so the return value should also set to 0.
>>
>> Signed-off-by: Qu Wenruo <quwenro@cn.fujitsu.com>
> JFYI, I've edited the subject and changelog, let's use the 'prop'
> abbreviation for properties.
Thanks for that.
My poor English seems always to be a problem.  :(

Qu
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/props.c b/props.c
index 4d0aeea..c09865b 100644
--- a/props.c
+++ b/props.c
@@ -142,10 +142,12 @@  static int prop_compression(enum prop_object_type type,
 		sret = fgetxattr(fd, xattr_name, NULL, 0);
 	if (sret < 0) {
 		ret = -errno;
-		if (ret != -ENODATA)
+		if (ret != -ENOATTR)
 			fprintf(stderr,
 				"ERROR: failed to %s compression for %s. %s\n",
 				value ? "set" : "get", object, strerror(-ret));
+		else
+			ret = 0;
 		goto out;
 	}
 	if (!value) {