• Brian Foster's avatar
    xfs: remove dead stale buf unpin handling code · e53d3aa0
    Brian Foster authored
    This code goes back to a time when transaction commits wrote
    directly to iclogs. The associated log items were pinned, written to
    the log, and then "uncommitted" if some part of the log write had
    failed. This uncommit sequence called an ->iop_unpin_remove()
    handler that was eventually folded into ->iop_unpin() via the remove
    parameter. The log subsystem has since changed significantly in that
    transactions commit to the CIL instead of direct to iclogs, though
    log items must still be aborted in the event of an eventual log I/O
    error. However, the context for a log item abort is now asynchronous
    from transaction commit, which means the committing transaction has
    been freed by this point in time and the transaction uncommit
    sequence of events is no longer relevant.
    
    Further, since stale buffers remain locked at transaction commit
    through unpin, we can be certain that the buffer is not associated
    with any transaction when the unpin callback executes. Remove this
    unused hunk of code and replace it with an assertion that the buffer
    is disassociated from transaction context.
    Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    e53d3aa0
xfs_buf_item.c 28.6 KB