Messages in this thread | | | Date | Mon, 21 Oct 2013 17:52:56 -0200 | Subject | Re: [PATCH] 9p: fix return value in case of error in v9fs_fid_xattr_set | From | Geyslan Gregório Bem <> |
| |
2013/10/21 Geyslan Gregório Bem <geyslan@gmail.com>: > At first, thanks for reply. > > 2013/10/20 Eric Van Hensbergen <ericvh@gmail.com>: >> On Sat, Sep 28, 2013 at 6:32 PM, Geyslan G. Bem <geyslan@gmail.com> wrote: >>> >>> 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. >>> >>> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com> >>> --- >>> fs/9p/xattr.c | 9 ++++----- >>> 1 file changed, 4 insertions(+), 5 deletions(-) >>> >>> diff --git a/fs/9p/xattr.c b/fs/9p/xattr.c >>> index 3c28cdf..0788388 100644 >>> --- a/fs/9p/xattr.c >>> +++ b/fs/9p/xattr.c >>> @@ -149,11 +149,10 @@ int v9fs_fid_xattr_set(struct p9_fid *fid, const >>> char *name, >>> write_count = value_len; >>> write_count = p9_client_write(fid, ((char *)value)+offset, >>> NULL, offset, write_count); >>> - if (write_count < 0) { >>> - /* error in xattr write */ >>> - retval = write_count; >>> - break; >>> - } >>> + /* error in xattr write */ >>> + if (write_count < 0) >>> + return write_count; >>> + >>> >> >> >> So, I'm convinced that there's a problem here, but I think the solution in >> the patch is incomplete. Simply returning wouldn't clunk the fid. I think >> the right approach is likely to keep the break, clunk and return an error if >> either the p9_client_write or the p9_client_clunk fails. >> >> I suppose you could make a claim that v9fs_fid_xattr_set shouldn't be >> clunking the fid -- but considering it's cloned the fid in its function >> body, it does seem like it shoudl also be cleaning up after itself. >> > > Right. I'll centralize the exiting assuring that fid will be clunked > in case of fails. > >> -eric >> >> >> -eric >>
New version sent: [PATCH] 9p: fix return value in case in v9fs_fid_xattr_set() -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |