From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42372) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bufsG-0000r2-UW for qemu-devel@nongnu.org; Thu, 13 Oct 2016 09:16:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bufsD-0004HY-Cu for qemu-devel@nongnu.org; Thu, 13 Oct 2016 09:16:40 -0400 Received: from 8.mo179.mail-out.ovh.net ([46.105.75.26]:45742) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bufsD-0004GK-6W for qemu-devel@nongnu.org; Thu, 13 Oct 2016 09:16:37 -0400 Received: from player792.ha.ovh.net (b7.ovh.net [213.186.33.57]) by mo179.mail-out.ovh.net (Postfix) with ESMTP id 71638FFBA1F for ; Thu, 13 Oct 2016 15:16:36 +0200 (CEST) Date: Thu, 13 Oct 2016 15:16:30 +0200 From: Greg Kurz Message-ID: <20161013151630.130daa0a@bahia> In-Reply-To: <57ff5d7e.4a3c9d0a.90936.609c@mx.google.com> References: <1476353383-4679-1-git-send-email-Qiang(liqiang6-s@360.cn)> <57ff5d7e.4a3c9d0a.90936.609c@mx.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 1/3] 9pfs: add xattrwalk_fid field in V9fsXattr struct List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Li Qiang Cc: qemu-devel@nongnu.org, Li Qiang On Thu, 13 Oct 2016 03:09:41 -0700 Li Qiang wrote: > From: Li Qiang > > Currently, 9pfs sets the 'copied_len' field in V9fsXattr > to -1 to tag xattr walk fid. As the 'copied_len' is also > used to account for copied bytes, this may make confusion. This patch > add a bool 'xattrwalk_fid' to tag the xattr walk fid. > > Suggested-by: Greg Kurz > Signed-off-by: Li Qiang > --- > Reviewed-by: Greg Kurz > Changes since the v1: > -move 'xattrwalk_fid' to 'V9fsXattr' struct. > -add detailed changelog. > > hw/9pfs/9p.c | 7 ++++--- > hw/9pfs/9p.h | 1 + > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c > index e4040dc..e902eed 100644 > --- a/hw/9pfs/9p.c > +++ b/hw/9pfs/9p.c > @@ -325,7 +325,7 @@ static int v9fs_xattr_fid_clunk(V9fsPDU *pdu, V9fsFidState *fidp) > { > int retval = 0; > > - if (fidp->fs.xattr.copied_len == -1) { > + if (fidp->fs.xattr.xattrwalk_fid) { > /* getxattr/listxattr fid */ > goto free_value; > } > @@ -3189,7 +3189,7 @@ static void v9fs_xattrwalk(void *opaque) > */ > xattr_fidp->fs.xattr.len = size; > xattr_fidp->fid_type = P9_FID_XATTR; > - xattr_fidp->fs.xattr.copied_len = -1; > + xattr_fidp->fs.xattr.xattrwalk_fid = true; > if (size) { > xattr_fidp->fs.xattr.value = g_malloc(size); > err = v9fs_co_llistxattr(pdu, &xattr_fidp->path, > @@ -3222,7 +3222,7 @@ static void v9fs_xattrwalk(void *opaque) > */ > xattr_fidp->fs.xattr.len = size; > xattr_fidp->fid_type = P9_FID_XATTR; > - xattr_fidp->fs.xattr.copied_len = -1; > + xattr_fidp->fs.xattr.xattrwalk_fid = true; > if (size) { > xattr_fidp->fs.xattr.value = g_malloc(size); > err = v9fs_co_lgetxattr(pdu, &xattr_fidp->path, > @@ -3278,6 +3278,7 @@ static void v9fs_xattrcreate(void *opaque) > xattr_fidp = file_fidp; > xattr_fidp->fid_type = P9_FID_XATTR; > xattr_fidp->fs.xattr.copied_len = 0; > + xattr_fidp->fs.xattr.xattrwalk_fid = false; > xattr_fidp->fs.xattr.len = size; > xattr_fidp->fs.xattr.flags = flags; > v9fs_string_init(&xattr_fidp->fs.xattr.name); > diff --git a/hw/9pfs/9p.h b/hw/9pfs/9p.h > index d539d2e..aa18da1 100644 > --- a/hw/9pfs/9p.h > +++ b/hw/9pfs/9p.h > @@ -164,6 +164,7 @@ typedef struct V9fsXattr > void *value; > V9fsString name; > int flags; > + bool xattrwalk_fid; > } V9fsXattr; > > typedef struct V9fsDir {