diff mbox

[V9fs-developer] 9p: fix return value in case in v9fs_fid_xattr_set()

Message ID 1382384878-12788-1-git-send-email-geyslan@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Geyslan G. Bem Oct. 21, 2013, 7:47 p.m. UTC
In case of error in the p9_client_write, the function v9fs_fid_xattr_set
should return its negative value, what was never being done.

In case of success it only retuned 0. Now it returns the 'offset'
variable (write_count total).

Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
---
 fs/9p/xattr.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Geyslan G. Bem Oct. 21, 2013, 8:33 p.m. UTC | #1
2013/10/21 Geyslan G. Bem <geyslan@gmail.com>:
> In case of error in the p9_client_write, the function v9fs_fid_xattr_set
> should return its negative value, what was never being done.
>
> In case of success it only retuned 0. Now it returns the 'offset'
> variable (write_count total).
>
> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
> ---
>  fs/9p/xattr.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/fs/9p/xattr.c b/fs/9p/xattr.c
> index 3c28cdf..04133a1 100644
> --- a/fs/9p/xattr.c
> +++ b/fs/9p/xattr.c
> @@ -138,8 +138,7 @@ int v9fs_fid_xattr_set(struct p9_fid *fid, const char *name,
>         if (retval < 0) {
>                 p9_debug(P9_DEBUG_VFS, "p9_client_xattrcreate failed %d\n",
>                          retval);
> -               p9_client_clunk(fid);
> -               return retval;
> +               goto err;
>         }
>         msize = fid->clnt->msize;
>         while (value_len) {
> @@ -152,12 +151,15 @@ int v9fs_fid_xattr_set(struct p9_fid *fid, const char *name,
>                 if (write_count < 0) {
>                         /* error in xattr write */
>                         retval = write_count;
> -                       break;
> +                       goto err;
>                 }
>                 offset += write_count;
>                 value_len -= write_count;
>         }
> -       return p9_client_clunk(fid);
> +       retval = offset;
> +err:
> +       p9_client_clunk(fid);
> +       return retval;
>  }
>
>  ssize_t v9fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
> --
> 1.8.4
>

Eric,

As you can see, I modified the success return value to the offset
(write_count sum), following the same principle of
v9fs_fid_xattr_get():
http://lxr.free-electrons.com/source/fs/9p/xattr.c#L65

What do you think?

Regards.

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
diff mbox

Patch

diff --git a/fs/9p/xattr.c b/fs/9p/xattr.c
index 3c28cdf..04133a1 100644
--- a/fs/9p/xattr.c
+++ b/fs/9p/xattr.c
@@ -138,8 +138,7 @@  int v9fs_fid_xattr_set(struct p9_fid *fid, const char *name,
 	if (retval < 0) {
 		p9_debug(P9_DEBUG_VFS, "p9_client_xattrcreate failed %d\n",
 			 retval);
-		p9_client_clunk(fid);
-		return retval;
+		goto err;
 	}
 	msize = fid->clnt->msize;
 	while (value_len) {
@@ -152,12 +151,15 @@  int v9fs_fid_xattr_set(struct p9_fid *fid, const char *name,
 		if (write_count < 0) {
 			/* error in xattr write */
 			retval = write_count;
-			break;
+			goto err;
 		}
 		offset += write_count;
 		value_len -= write_count;
 	}
-	return p9_client_clunk(fid);
+	retval = offset;
+err:
+	p9_client_clunk(fid);
+	return retval;
 }
 
 ssize_t v9fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)