[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Qemu-block] [PATCH] xen-block: treat XenbusStateUnknown the same as XenbusStateClosed
> -----Original Message----- > From: John Snow <jsnow@xxxxxxxxxx> > Sent: 20 September 2019 22:11 > To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx; > qemu-devel@xxxxxxxxxx; > qemu-block@xxxxxxxxxx > Cc: Kevin Wolf <kwolf@xxxxxxxxxx>; Stefano Stabellini > <sstabellini@xxxxxxxxxx>; Max Reitz > <mreitz@xxxxxxxxxx>; Anthony Perard <anthony.perard@xxxxxxxxxx>; Mark Syms > <Mark.Syms@xxxxxxxxxx> > Subject: Re: [Qemu-block] [PATCH] xen-block: treat XenbusStateUnknown the > same as XenbusStateClosed > > > > On 9/18/19 7:57 AM, Paul Durrant wrote: > > When a frontend gracefully disconnects from an offline backend, it will > > set its own state to XenbusStateClosed. The code in xen-block.c correctly > > deals with this and sets the backend into XenbusStateClosed. Unfortunately > > it is possible for toolstack to actually delete the frontend area > > before the state key has been read, leading to an apparent frontend state > > of XenbusStateUnknown. This prevents the backend state from transitioning > > to XenbusStateClosed and hence leaves it limbo. > > > > Does the 0 come from a read into de-allocated memory? No, it comes from the fact that the xenstore state key is not present. Conventionally a missing state key means the state is reported as XenbusStateUnknown. Paul > > --js > > > This patch simply treats a frontend state of XenbusStateUnknown the same > > as XenbusStateClosed, which will unblock the backend in these circumstances. > > > > Reported-by: Mark Syms <mark.syms@xxxxxxxxxx> > > Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > > --- > > Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> > > Cc: Anthony Perard <anthony.perard@xxxxxxxxxx> > > Cc: Kevin Wolf <kwolf@xxxxxxxxxx> > > Cc: Max Reitz <mreitz@xxxxxxxxxx> > > --- > > hw/block/xen-block.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c > > index f77343db60..879fc310a4 100644 > > --- a/hw/block/xen-block.c > > +++ b/hw/block/xen-block.c > > @@ -313,6 +313,7 @@ static void xen_block_frontend_changed(XenDevice > > *xendev, > > break; > > > > case XenbusStateClosed: > > + case XenbusStateUnknown: > > xen_block_disconnect(xendev, &local_err); > > if (local_err) { > > error_propagate(errp, local_err); > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |