block: Call transaction callbacks with lock held
commit5661a00d40a59c28796a59c9df55d03efe8c56fc
authorKevin Wolf <kwolf@redhat.com>
Mon, 11 Sep 2023 09:46:10 +0000 (11 11:46 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 20 Sep 2023 15:46:01 +0000 (20 17:46 +0200)
tree14f95c655ea855ac70defff65fd0f61b1da8d22a
parent7d4ca9d25bce7e7cd3f1188ec5e5c46c649310c7
block: Call transaction callbacks with lock held

In previous patches, we changed some transactionable functions to be
marked as GRAPH_WRLOCK, but required that tran_finalize() is still
called without the lock. This was because all callbacks that can be in
the same transaction need to follow the same convention.

Now that we don't have conflicting requirements any more, we can switch
all of the transaction callbacks to be declared GRAPH_WRLOCK, too, and
call tran_finalize() with the lock held.

Document for each of these transactionable functions that the lock needs
to be held when completing the transaction, and make sure that all
callers down to the place where the transaction is finalised actually
have the writer lock.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230911094620.45040-12-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c