[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 11/13] block/fuse: take AioContext lock around blk_exp_ref/unref()
These functions must be called with the AioContext acquired: /* Callers must hold exp->ctx lock */ void blk_exp_ref(BlockExport *exp) ... /* Callers must hold exp->ctx lock */ void blk_exp_unref(BlockExport *exp) Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> --- block/export/fuse.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/block/export/fuse.c b/block/export/fuse.c index 06fa41079e..18394f9e07 100644 --- a/block/export/fuse.c +++ b/block/export/fuse.c @@ -244,7 +244,9 @@ static void read_from_fuse_export(void *opaque) FuseExport *exp = opaque; int ret; + aio_context_acquire(exp->common.ctx); blk_exp_ref(&exp->common); + aio_context_release(exp->common.ctx); do { ret = fuse_session_receive_buf(exp->fuse_session, &exp->fuse_buf); @@ -256,7 +258,9 @@ static void read_from_fuse_export(void *opaque) fuse_session_process_buf(exp->fuse_session, &exp->fuse_buf); out: + aio_context_acquire(exp->common.ctx); blk_exp_unref(&exp->common); + aio_context_release(exp->common.ctx); } static void fuse_export_shutdown(BlockExport *blk_exp) -- 2.39.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |