blkfront: Fix blkfront backend switch race (bdev release)
authorDaniel Stodden <daniel.stodden@citrix.com>
Sat, 7 Aug 2010 16:45:12 +0000 (18:45 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 7 Aug 2010 16:45:12 +0000 (18:45 +0200)
commit7fd152f4b6ae4f3cf89e4b7a0383cc3c470772fc
tree105d00acbdd635aa30f0a0f8257714d5cbb6699e
parent139617437aff1f0d3b57c2d7cc60e60efc8fe6c3
blkfront: Fix blkfront backend switch race (bdev release)

We cannot read backend state within bdev operations, because it risks
grabbing the state change before xenbus gets to do it.

Fixed by tracking deferral with a frontend switch to Closing. State
exposure isn't strictly necessary, but the backends won't mind.

For a 'clean' deferral this seems actually a more decent protocol than
raising errors.

Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
drivers/block/xen-blkfront.c