mbox series

[v4,0/7] 9pfs: fix 'Twalk' protocol violation

Message ID cover.1647339025.git.qemu_oss@crudebyte.com (mailing list archive)
Headers show
Series 9pfs: fix 'Twalk' protocol violation | expand

Message

Christian Schoenebeck March 15, 2022, 10:10 a.m. UTC
Currently the implementation of 'Twalk' does not behave exactly as specified
by the 9p2000 protocol specification. Actual fix is patch 5; see the
description of that patch for details of what this overall fix and series is
about.

PREREQUISITES
=============

This series requires the following additional patch to work correctly:
https://lore.kernel.org/qemu-devel/E1nTpyU-0000yR-9o@lizzy.crudebyte.com/

OVERVIEW OF PATCHES
===================

Patch 4 is a preparatory (pure) refactoring change to make actual 'Twalk' fix
patch 5 better readable.

All the other patches are just additional test cases for guarding 'Twalk'
behaviour.

v3 -> v4:

  * QID returned by Twalk request in fs_walk_2nd_nonexistent() test should NOT
    be identical to root node's QID. [patch 7]

  * Fix actual 'fid unaffected' check in fs_walk_2nd_nonexistent() test by
    sending a subsequent 'Tgetattr' request. [patch 7]

Christian Schoenebeck (7):
  tests/9pfs: walk to non-existent dir
  tests/9pfs: Twalk with nwname=0
  tests/9pfs: compare QIDs in fs_walk_none() test
  9pfs: refactor 'name_idx' -> 'nwalked' in v9fs_walk()
  9pfs: fix 'Twalk' to only send error if no component walked
  tests/9pfs: guard recent 'Twalk' behaviour fix
  tests/9pfs: check fid being unaffected in fs_walk_2nd_nonexistent

 hw/9pfs/9p.c                 |  57 ++++++----
 tests/qtest/virtio-9p-test.c | 201 ++++++++++++++++++++++++++++++++++-
 2 files changed, 231 insertions(+), 27 deletions(-)

Comments

Christian Schoenebeck March 29, 2022, 10:21 a.m. UTC | #1
On Dienstag, 15. März 2022 11:10:25 CEST Christian Schoenebeck wrote:
> Currently the implementation of 'Twalk' does not behave exactly as specified
> by the 9p2000 protocol specification. Actual fix is patch 5; see the
> description of that patch for details of what this overall fix and series
> is about.
> 
> PREREQUISITES
> =============
> 
> This series requires the following additional patch to work correctly:
> https://lore.kernel.org/qemu-devel/E1nTpyU-0000yR-9o@lizzy.crudebyte.com/
> 
> OVERVIEW OF PATCHES
> ===================
> 
> Patch 4 is a preparatory (pure) refactoring change to make actual 'Twalk'
> fix patch 5 better readable.
> 
> All the other patches are just additional test cases for guarding 'Twalk'
> behaviour.
> 
> v3 -> v4:
> 
>   * QID returned by Twalk request in fs_walk_2nd_nonexistent() test should
> NOT be identical to root node's QID. [patch 7]
> 
>   * Fix actual 'fid unaffected' check in fs_walk_2nd_nonexistent() test by
>     sending a subsequent 'Tgetattr' request. [patch 7]
> 
> Christian Schoenebeck (7):
>   tests/9pfs: walk to non-existent dir
>   tests/9pfs: Twalk with nwname=0
>   tests/9pfs: compare QIDs in fs_walk_none() test
>   9pfs: refactor 'name_idx' -> 'nwalked' in v9fs_walk()
>   9pfs: fix 'Twalk' to only send error if no component walked
>   tests/9pfs: guard recent 'Twalk' behaviour fix
>   tests/9pfs: check fid being unaffected in fs_walk_2nd_nonexistent
> 
>  hw/9pfs/9p.c                 |  57 ++++++----
>  tests/qtest/virtio-9p-test.c | 201 ++++++++++++++++++++++++++++++++++-
>  2 files changed, 231 insertions(+), 27 deletions(-)

ping

No hurry, as this is something for the subsequent QEMU release cycle, but 
would be good to know whether you will be able to look at this at all.

Best regards,
Christian Schoenebeck
Greg Kurz March 29, 2022, 10:59 a.m. UTC | #2
On Tue, 29 Mar 2022 12:21:13 +0200
Christian Schoenebeck <qemu_oss@crudebyte.com> wrote:

> On Dienstag, 15. März 2022 11:10:25 CEST Christian Schoenebeck wrote:
> > Currently the implementation of 'Twalk' does not behave exactly as specified
> > by the 9p2000 protocol specification. Actual fix is patch 5; see the
> > description of that patch for details of what this overall fix and series
> > is about.
> > 
> > PREREQUISITES
> > =============
> > 
> > This series requires the following additional patch to work correctly:
> > https://lore.kernel.org/qemu-devel/E1nTpyU-0000yR-9o@lizzy.crudebyte.com/
> > 
> > OVERVIEW OF PATCHES
> > ===================
> > 
> > Patch 4 is a preparatory (pure) refactoring change to make actual 'Twalk'
> > fix patch 5 better readable.
> > 
> > All the other patches are just additional test cases for guarding 'Twalk'
> > behaviour.
> > 
> > v3 -> v4:
> > 
> >   * QID returned by Twalk request in fs_walk_2nd_nonexistent() test should
> > NOT be identical to root node's QID. [patch 7]
> > 
> >   * Fix actual 'fid unaffected' check in fs_walk_2nd_nonexistent() test by
> >     sending a subsequent 'Tgetattr' request. [patch 7]
> > 
> > Christian Schoenebeck (7):
> >   tests/9pfs: walk to non-existent dir
> >   tests/9pfs: Twalk with nwname=0
> >   tests/9pfs: compare QIDs in fs_walk_none() test
> >   9pfs: refactor 'name_idx' -> 'nwalked' in v9fs_walk()
> >   9pfs: fix 'Twalk' to only send error if no component walked
> >   tests/9pfs: guard recent 'Twalk' behaviour fix
> >   tests/9pfs: check fid being unaffected in fs_walk_2nd_nonexistent
> > 
> >  hw/9pfs/9p.c                 |  57 ++++++----
> >  tests/qtest/virtio-9p-test.c | 201 ++++++++++++++++++++++++++++++++++-
> >  2 files changed, 231 insertions(+), 27 deletions(-)
> 
> ping
> 
> No hurry, as this is something for the subsequent QEMU release cycle, but 
> would be good to know whether you will be able to look at this at all.
> 

Yes I will but probably not before next week.

Cheers,

--
Greg

> Best regards,
> Christian Schoenebeck
> 
>
Christian Schoenebeck June 16, 2022, 10:53 a.m. UTC | #3
On Dienstag, 15. März 2022 11:10:25 CEST Christian Schoenebeck wrote:
> Currently the implementation of 'Twalk' does not behave exactly as specified
> by the 9p2000 protocol specification. Actual fix is patch 5; see the
> description of that patch for details of what this overall fix and series
> is about.
> 
> PREREQUISITES
> =============
> 
> This series requires the following additional patch to work correctly:
> https://lore.kernel.org/qemu-devel/E1nTpyU-0000yR-9o@lizzy.crudebyte.com/
> 
> OVERVIEW OF PATCHES
> ===================
> 
> Patch 4 is a preparatory (pure) refactoring change to make actual 'Twalk'
> fix patch 5 better readable.
> 
> All the other patches are just additional test cases for guarding 'Twalk'
> behaviour.
> 
> v3 -> v4:
> 
>   * QID returned by Twalk request in fs_walk_2nd_nonexistent() test should
> NOT be identical to root node's QID. [patch 7]
> 
>   * Fix actual 'fid unaffected' check in fs_walk_2nd_nonexistent() test by
>     sending a subsequent 'Tgetattr' request. [patch 7]
> 
> Christian Schoenebeck (7):
>   tests/9pfs: walk to non-existent dir
>   tests/9pfs: Twalk with nwname=0
>   tests/9pfs: compare QIDs in fs_walk_none() test
>   9pfs: refactor 'name_idx' -> 'nwalked' in v9fs_walk()
>   9pfs: fix 'Twalk' to only send error if no component walked
>   tests/9pfs: guard recent 'Twalk' behaviour fix
>   tests/9pfs: check fid being unaffected in fs_walk_2nd_nonexistent
> 
>  hw/9pfs/9p.c                 |  57 ++++++----
>  tests/qtest/virtio-9p-test.c | 201 ++++++++++++++++++++++++++++++++++-
>  2 files changed, 231 insertions(+), 27 deletions(-)

Queued on 9p.next:
https://github.com/cschoenebeck/qemu/commits/9p.next

Good time to send a PR for this.

Thanks!

Best regards,
Christian Schoenebeck