On Fri, Nov 22, 2013 at 01:24:49PM +0800, Fam Zheng wrote: > +bool bdrv_op_is_blocked(BlockDriverState *bs, BlockOpType op, Error **errp) > +{ > + BdrvOpBlocker *blocker; > + assert(op >=0 && op < BLOCK_OP_TYPE_MAX); > + if (!QLIST_EMPTY(&bs->op_blockers[op])) { > + blocker = QLIST_FIRST(&bs->op_blockers[op]); > + *errp = error_copy(blocker->reason); > + return true; > + } > + return false; > +}
It's worth following the convention that Error **errp may be NULL: if (errp) { *errp = error_copy(blocker->reason); } The bool return value might be enough for some callers who don't need the full Error.