From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Check the return value from libxfs_trans_commit since it can now return error codes. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- mkfs/proto.c | 9 +++++++-- mkfs/xfs_mkfs.c | 4 +++- repair/phase6.c | 25 +++++++++++++++++++------ repair/rmap.c | 4 +++- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/mkfs/proto.c b/mkfs/proto.c index 141c27b8..d65170d7 100644 --- a/mkfs/proto.c +++ b/mkfs/proto.c @@ -212,7 +212,9 @@ rsvfile( ip->i_d.di_flags |= XFS_DIFLAG_PREALLOC; libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + fail(_("committing space for a file failed"), error); } static int @@ -671,7 +673,10 @@ rtinit( rsumip->i_d.di_size = mp->m_rsumsize; libxfs_trans_log_inode(tp, rsumip, XFS_ILOG_CORE); libxfs_log_sb(tp); - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + fail(_("Completion of the realtime summary inode failed"), + error); mp->m_rsumip = rsumip; /* * Next, give the bitmap file some zero-filled blocks. diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 9ef6e84a..b04a705f 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -3690,7 +3690,9 @@ initialise_ag_freespace( libxfs_alloc_fix_freelist(&args, 0); libxfs_perag_put(args.pag); - libxfs_trans_commit(tp); + c = -libxfs_trans_commit(tp); + if (c) + res_failed(c); } /* diff --git a/repair/phase6.c b/repair/phase6.c index 58b23aa3..ecf8975e 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -575,7 +575,9 @@ mk_rbmino(xfs_mount_t *mp) * commit changes */ libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + do_error(_("%s: commit failed, error %d\n"), __func__, error); /* * then allocate blocks for file and fill with zeroes (stolen @@ -683,7 +685,9 @@ _("can't access block %" PRIu64 " (fsbno %" PRIu64 ") of realtime bitmap inode % bno++; } - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + do_error(_("%s: commit failed, error %d\n"), __func__, error); IRELE(ip); return(0); } @@ -755,7 +759,9 @@ _("can't access block %" PRIu64 " (fsbno %" PRIu64 ") of realtime summary inode bno++; } - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + do_error(_("%s: commit failed, error %d\n"), __func__, error); IRELE(ip); return(0); } @@ -822,7 +828,9 @@ mk_rsumino(xfs_mount_t *mp) * commit changes */ libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + do_error(_("%s: commit failed, error %d\n"), __func__, error); /* * then allocate blocks for file and fill with zeroes (stolen @@ -931,7 +939,10 @@ mk_root_dir(xfs_mount_t *mp) ip->d_ops = mp->m_dir_inode_ops; libxfs_dir_init(tp, ip, ip); - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + do_error(_("%s: commit failed, error %d\n"), __func__, error); + IRELE(ip); irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, mp->m_sb.sb_rootino), @@ -3005,7 +3016,9 @@ process_dir_inode( if (dirty) { libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE | XFS_ILOG_DDATA); - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + res_failed(error); } else { libxfs_trans_cancel(tp); } diff --git a/repair/rmap.c b/repair/rmap.c index 43eac288..c19513c2 100644 --- a/repair/rmap.c +++ b/repair/rmap.c @@ -1411,7 +1411,9 @@ fix_freelist( do_error(_("failed to fix AGFL on AG %d, error %d\n"), agno, error); } - libxfs_trans_commit(tp); + error = -libxfs_trans_commit(tp); + if (error) + do_error(_("%s: commit failed, error %d\n"), __func__, error); } /*