|
@@ -89,7 +89,7 @@ _xfs_trans_bjoin(
|
|
|
* The checks to see if one is there are in xfs_buf_item_init().
|
|
|
*/
|
|
|
xfs_buf_item_init(bp, tp->t_mountp);
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ bip = bp->b_fspriv;
|
|
|
ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
|
|
|
ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL));
|
|
|
ASSERT(!(bip->bli_flags & XFS_BLI_LOGGED));
|
|
@@ -173,7 +173,7 @@ xfs_trans_get_buf(xfs_trans_t *tp,
|
|
|
ASSERT(!XFS_BUF_ISDELAYWRITE(bp));
|
|
|
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ bip = bp->b_fspriv;
|
|
|
ASSERT(bip != NULL);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
bip->bli_recur++;
|
|
@@ -233,7 +233,7 @@ xfs_trans_getsb(xfs_trans_t *tp,
|
|
|
*/
|
|
|
bp = mp->m_sb_bp;
|
|
|
if (bp->b_transp == tp) {
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*);
|
|
|
+ bip = bp->b_fspriv;
|
|
|
ASSERT(bip != NULL);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
bip->bli_recur++;
|
|
@@ -329,7 +329,7 @@ xfs_trans_read_buf(
|
|
|
if (bp != NULL) {
|
|
|
ASSERT(xfs_buf_islocked(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
+ ASSERT(bp->b_fspriv != NULL);
|
|
|
ASSERT((XFS_BUF_ISERROR(bp)) == 0);
|
|
|
if (!(XFS_BUF_ISDONE(bp))) {
|
|
|
trace_xfs_trans_read_buf_io(bp, _RET_IP_);
|
|
@@ -363,7 +363,7 @@ xfs_trans_read_buf(
|
|
|
}
|
|
|
|
|
|
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*);
|
|
|
+ bip = bp->b_fspriv;
|
|
|
bip->bli_recur++;
|
|
|
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
@@ -460,32 +460,30 @@ xfs_trans_brelse(xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
xfs_buf_log_item_t *bip;
|
|
|
- xfs_log_item_t *lip;
|
|
|
|
|
|
/*
|
|
|
* Default to a normal brelse() call if the tp is NULL.
|
|
|
*/
|
|
|
if (tp == NULL) {
|
|
|
+ struct xfs_log_item *lip = bp->b_fspriv;
|
|
|
+
|
|
|
ASSERT(bp->b_transp == NULL);
|
|
|
+
|
|
|
/*
|
|
|
* If there's a buf log item attached to the buffer,
|
|
|
* then let the AIL know that the buffer is being
|
|
|
* unlocked.
|
|
|
*/
|
|
|
- if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) {
|
|
|
- lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *);
|
|
|
- if (lip->li_type == XFS_LI_BUF) {
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp,xfs_buf_log_item_t*);
|
|
|
- xfs_trans_unlocked_item(bip->bli_item.li_ailp,
|
|
|
- lip);
|
|
|
- }
|
|
|
+ if (lip != NULL && lip->li_type == XFS_LI_BUF) {
|
|
|
+ bip = bp->b_fspriv;
|
|
|
+ xfs_trans_unlocked_item(bip->bli_item.li_ailp, lip);
|
|
|
}
|
|
|
xfs_buf_relse(bp);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ bip = bp->b_fspriv;
|
|
|
ASSERT(bip->bli_item.li_type == XFS_LI_BUF);
|
|
|
ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
|
|
|
ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL));
|
|
@@ -581,16 +579,15 @@ void
|
|
|
xfs_trans_bhold(xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
|
|
|
ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL));
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
+
|
|
|
bip->bli_flags |= XFS_BLI_HOLD;
|
|
|
trace_xfs_trans_bhold(bip);
|
|
|
}
|
|
@@ -603,19 +600,17 @@ void
|
|
|
xfs_trans_bhold_release(xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
|
|
|
ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL));
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
ASSERT(bip->bli_flags & XFS_BLI_HOLD);
|
|
|
- bip->bli_flags &= ~XFS_BLI_HOLD;
|
|
|
|
|
|
+ bip->bli_flags &= ~XFS_BLI_HOLD;
|
|
|
trace_xfs_trans_bhold_release(bip);
|
|
|
}
|
|
|
|
|
@@ -634,11 +629,11 @@ xfs_trans_log_buf(xfs_trans_t *tp,
|
|
|
uint first,
|
|
|
uint last)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp)));
|
|
|
ASSERT((XFS_BUF_IODONE_FUNC(bp) == NULL) ||
|
|
|
(XFS_BUF_IODONE_FUNC(bp) == xfs_buf_iodone_callbacks));
|
|
@@ -656,7 +651,6 @@ xfs_trans_log_buf(xfs_trans_t *tp,
|
|
|
XFS_BUF_DELAYWRITE(bp);
|
|
|
XFS_BUF_DONE(bp);
|
|
|
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
XFS_BUF_SET_IODONE_FUNC(bp, xfs_buf_iodone_callbacks);
|
|
|
bip->bli_item.li_cb = xfs_buf_iodone;
|
|
@@ -706,13 +700,11 @@ xfs_trans_binval(
|
|
|
xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
|
|
|
trace_xfs_trans_binval(bip);
|
|
@@ -780,13 +772,11 @@ xfs_trans_inode_buf(
|
|
|
xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
|
|
|
bip->bli_flags |= XFS_BLI_INODE_BUF;
|
|
@@ -806,13 +796,11 @@ xfs_trans_stale_inode_buf(
|
|
|
xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
|
|
|
bip->bli_flags |= XFS_BLI_STALE_INODE;
|
|
@@ -833,13 +821,11 @@ xfs_trans_inode_alloc_buf(
|
|
|
xfs_trans_t *tp,
|
|
|
xfs_buf_t *bp)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
|
|
|
bip->bli_flags |= XFS_BLI_INODE_ALLOC_BUF;
|
|
@@ -863,16 +849,14 @@ xfs_trans_dquot_buf(
|
|
|
xfs_buf_t *bp,
|
|
|
uint type)
|
|
|
{
|
|
|
- xfs_buf_log_item_t *bip;
|
|
|
+ xfs_buf_log_item_t *bip = bp->b_fspriv;
|
|
|
|
|
|
ASSERT(XFS_BUF_ISBUSY(bp));
|
|
|
ASSERT(bp->b_transp == tp);
|
|
|
- ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL);
|
|
|
+ ASSERT(bip != NULL);
|
|
|
ASSERT(type == XFS_BLF_UDQUOT_BUF ||
|
|
|
type == XFS_BLF_PDQUOT_BUF ||
|
|
|
type == XFS_BLF_GDQUOT_BUF);
|
|
|
-
|
|
|
- bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *);
|
|
|
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
|
|
|
|
|
bip->bli_format.blf_flags |= type;
|