[PATCH] xfsdump: add locks around the inventory put

Rich Johnston
2013-10-01T16:30:57Z

From: Phil White <cerise-xfs@l.armory.com>

Add locks around the inventory put to prevent inventory
corruption.

Signed-off-by: Phil White <cerise-xfs@l.armory.com>

diff --git a/dump/content.c b/dump/content.c
index ac19021..b8977bb 100644
--- a/dump/content.c
+++ b/dump/content.c
@@ -2550,8 +2550,11 @@ decision_more:
scwhdrp->cih_startpt.sp_offset );
}

- /* already thread-safe, don't need to lock
+ /* Supposedly already thread-safe, according to the
+ * previous revisions, but corruption of inventory
+ * objects can occur.
*/
*/
+ lock();
ok = inv_put_mediafile( inv_stmt,
&mwhdrp->mh_mediaid,
mwhdrp->mh_medialabel,
@@ -2565,6 +2568,7 @@ decision_more:
&&
! empty_mediafile,
BOOL_FALSE );
+ unlock();
if ( ! ok ) {
mlog( MLOG_NORMAL, _(
"inventory media file put failed\n") );