On Thu, May 30, 2013 at 04:57:21PM -0600, Eric Blake wrote: > On 05/30/2013 06:34 AM, Stefan Hajnoczi wrote: > > Some QMP 'transaction' types don't need to do anything on .commit(). > > Make .commit() optional just like .abort(). > > > > The "drive-backup" action will take advantage of this, it only needs to > > cancel the block job on .abort(). Other block job actions will probably > > follow the same pattern, so allow .commit() to be NULL. > > > > Suggested-by: Eric Blake <ebl...@redhat.com> > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > > --- > > blockdev.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > Reviewed-by: Eric Blake <ebl...@redhat.com> > > Is it worth enforcing that at least one of commit or abort is supplied > (that is, assert if the user codes up an action that has neither > callback)? Or is that just overkill?
I left it out because it seems like overkill. The action types are small in number, statically defined in an array, and we test both the commit and abort code paths. So there's no convenience place to put a compile-time check and developers would stumble across their mistake when running their tests. Stefan