When we're flushing an inode log item, it is not necessary to mess with
the inode cluster buffer's log item because the iflush code paths pass
the inode log item directly. The unconditional reset causes us to leak
buffer log items.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Bill O'Donnell <billodo@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
* of whether the flush succeed or not. If we fail the flush, make sure
* we still release the buffer reference we currently hold.
*/
- bp->b_log_item = iip;
error = libxfs_iflush_int(ip, bp);
ip->i_transp = NULL; /* disassociate from transaction */
- bp->b_log_item = NULL; /* remove log item */
bp->b_transp = NULL; /* remove xact ptr */
if (error) {
xfs_dinode_t *dip;
xfs_mount_t *mp;
- ASSERT(bp-b_log_item != NULL);
ASSERT(ip->i_d.di_format != XFS_DINODE_FMT_BTREE ||
ip->i_d.di_nextents > ip->i_df.if_ext_max);
ASSERT(ip->i_d.di_version > 1);