summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_trans_buf.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2010-05-07 05:04:34 +0400
committerAlex Elder <aelder@sgi.com>2010-05-24 19:33:31 +0400
commit64fc35de60da3b1fe970168d10914bf1cf34a3e3 (patch)
tree150216a336bbb3a0f7066763b675fb6a0e6f3061 /fs/xfs/xfs_trans_buf.c
parent3383ca5780f88bb2c119174045ed77d5ece08072 (diff)
downloadlinux-64fc35de60da3b1fe970168d10914bf1cf34a3e3.tar.xz
xfs: modify buffer item reference counting
The buffer log item reference counts used to take referenceѕ for every transaction, similar to the pin counting. This is symmetric (like the pin/unpin) with respect to transaction completion, but with dleayed logging becomes assymetric as the pinning becomes assymetric w.r.t. transaction completion. To make both cases the same, allow the buffer pinning to take a reference to the buffer log item and always drop the reference the transaction has on it when being unlocked. This is balanced correctly because the unpin operation always drops a reference to the log item. Hence reference counting becomes symmetric w.r.t. item pinning as well as w.r.t active transactions and as a result the reference counting model remain consistent between normal and delayed logging. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_trans_buf.c')
0 files changed, 0 insertions, 0 deletions