Message ID | 00bee0f7a89147c90c672f07b9a1ebcd9180215b.1646850707.git.qemu_oss@crudebyte.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | 9pfs: fix 'Twalk' protocol violation | expand |
On Mittwoch, 9. März 2022 18:12:17 CET Christian Schoenebeck wrote: > The local variable 'name_idx' is used in two loops in function v9fs_walk(). > Let the first loop use its own variable 'nvalid' instead, which we will use > in subsequent patches as the number of (requested) path components > successfully retrieved/walked by background I/O thread. > > Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> > --- > hw/9pfs/9p.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c > index a6d6b3f835..6cdc566866 100644 > --- a/hw/9pfs/9p.c > +++ b/hw/9pfs/9p.c > @@ -1764,7 +1764,7 @@ static bool same_stat_id(const struct stat *a, const > struct stat *b) > > static void coroutine_fn v9fs_walk(void *opaque) > { > - int name_idx; > + int name_idx, nvalid; Or rather renaming this nvalid -> nfetched? > g_autofree V9fsQID *qids = NULL; > int i, err = 0; > V9fsPath dpath, path; > @@ -1842,17 +1842,17 @@ static void coroutine_fn v9fs_walk(void *opaque) > break; > } > stbuf = fidst; > - for (name_idx = 0; name_idx < nwnames; name_idx++) { > + for (nvalid = 0; nvalid < nwnames; nvalid++) { > if (v9fs_request_cancelled(pdu)) { > err = -EINTR; > break; > } > if (!same_stat_id(&pdu->s->root_st, &stbuf) || > - strcmp("..", wnames[name_idx].data)) > + strcmp("..", wnames[nvalid].data)) > { > err = s->ops->name_to_path(&s->ctx, &dpath, > - wnames[name_idx].data, > - &pathes[name_idx]); > + wnames[nvalid].data, > + &pathes[nvalid]); > if (err < 0) { > err = -errno; > break; > @@ -1861,13 +1861,13 @@ static void coroutine_fn v9fs_walk(void *opaque) > err = -EINTR; > break; > } > - err = s->ops->lstat(&s->ctx, &pathes[name_idx], &stbuf); > + err = s->ops->lstat(&s->ctx, &pathes[nvalid], &stbuf); > if (err < 0) { > err = -errno; > break; > } > - stbufs[name_idx] = stbuf; > - v9fs_path_copy(&dpath, &pathes[name_idx]); > + stbufs[nvalid] = stbuf; > + v9fs_path_copy(&dpath, &pathes[nvalid]); > } > } > });
On Thu, 10 Mar 2022 10:07:04 +0100 Christian Schoenebeck <qemu_oss@crudebyte.com> wrote: > On Mittwoch, 9. März 2022 18:12:17 CET Christian Schoenebeck wrote: > > The local variable 'name_idx' is used in two loops in function v9fs_walk(). > > Let the first loop use its own variable 'nvalid' instead, which we will use > > in subsequent patches as the number of (requested) path components > > successfully retrieved/walked by background I/O thread. I think walked is clear enough. > > > > Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> > > --- > > hw/9pfs/9p.c | 16 ++++++++-------- > > 1 file changed, 8 insertions(+), 8 deletions(-) > > > > diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c > > index a6d6b3f835..6cdc566866 100644 > > --- a/hw/9pfs/9p.c > > +++ b/hw/9pfs/9p.c > > @@ -1764,7 +1764,7 @@ static bool same_stat_id(const struct stat *a, const > > struct stat *b) > > > > static void coroutine_fn v9fs_walk(void *opaque) > > { > > - int name_idx; > > + int name_idx, nvalid; > > Or rather renaming this nvalid -> nfetched? > or simply nwalked ? Anyway, Reviewed-by: Greg Kurz <groug@kaod.org> > > g_autofree V9fsQID *qids = NULL; > > int i, err = 0; > > V9fsPath dpath, path; > > @@ -1842,17 +1842,17 @@ static void coroutine_fn v9fs_walk(void *opaque) > > break; > > } > > stbuf = fidst; > > - for (name_idx = 0; name_idx < nwnames; name_idx++) { > > + for (nvalid = 0; nvalid < nwnames; nvalid++) { > > if (v9fs_request_cancelled(pdu)) { > > err = -EINTR; > > break; > > } > > if (!same_stat_id(&pdu->s->root_st, &stbuf) || > > - strcmp("..", wnames[name_idx].data)) > > + strcmp("..", wnames[nvalid].data)) > > { > > err = s->ops->name_to_path(&s->ctx, &dpath, > > - wnames[name_idx].data, > > - &pathes[name_idx]); > > + wnames[nvalid].data, > > + &pathes[nvalid]); > > if (err < 0) { > > err = -errno; > > break; > > @@ -1861,13 +1861,13 @@ static void coroutine_fn v9fs_walk(void *opaque) > > err = -EINTR; > > break; > > } > > - err = s->ops->lstat(&s->ctx, &pathes[name_idx], &stbuf); > > + err = s->ops->lstat(&s->ctx, &pathes[nvalid], &stbuf); > > if (err < 0) { > > err = -errno; > > break; > > } > > - stbufs[name_idx] = stbuf; > > - v9fs_path_copy(&dpath, &pathes[name_idx]); > > + stbufs[nvalid] = stbuf; > > + v9fs_path_copy(&dpath, &pathes[nvalid]); > > } > > } > > }); > >
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c index a6d6b3f835..6cdc566866 100644 --- a/hw/9pfs/9p.c +++ b/hw/9pfs/9p.c @@ -1764,7 +1764,7 @@ static bool same_stat_id(const struct stat *a, const struct stat *b) static void coroutine_fn v9fs_walk(void *opaque) { - int name_idx; + int name_idx, nvalid; g_autofree V9fsQID *qids = NULL; int i, err = 0; V9fsPath dpath, path; @@ -1842,17 +1842,17 @@ static void coroutine_fn v9fs_walk(void *opaque) break; } stbuf = fidst; - for (name_idx = 0; name_idx < nwnames; name_idx++) { + for (nvalid = 0; nvalid < nwnames; nvalid++) { if (v9fs_request_cancelled(pdu)) { err = -EINTR; break; } if (!same_stat_id(&pdu->s->root_st, &stbuf) || - strcmp("..", wnames[name_idx].data)) + strcmp("..", wnames[nvalid].data)) { err = s->ops->name_to_path(&s->ctx, &dpath, - wnames[name_idx].data, - &pathes[name_idx]); + wnames[nvalid].data, + &pathes[nvalid]); if (err < 0) { err = -errno; break; @@ -1861,13 +1861,13 @@ static void coroutine_fn v9fs_walk(void *opaque) err = -EINTR; break; } - err = s->ops->lstat(&s->ctx, &pathes[name_idx], &stbuf); + err = s->ops->lstat(&s->ctx, &pathes[nvalid], &stbuf); if (err < 0) { err = -errno; break; } - stbufs[name_idx] = stbuf; - v9fs_path_copy(&dpath, &pathes[name_idx]); + stbufs[nvalid] = stbuf; + v9fs_path_copy(&dpath, &pathes[nvalid]); } } });
The local variable 'name_idx' is used in two loops in function v9fs_walk(). Let the first loop use its own variable 'nvalid' instead, which we will use in subsequent patches as the number of (requested) path components successfully retrieved/walked by background I/O thread. Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> --- hw/9pfs/9p.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)