Merge tag 'for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power...
[linux-2.6-microblaze.git] / fs / xfs / xfs_trans_buf.c
index 08174ff..11cd666 100644 (file)
@@ -465,24 +465,16 @@ xfs_trans_dirty_buf(
 
        ASSERT(bp->b_transp == tp);
        ASSERT(bip != NULL);
-       ASSERT(bp->b_iodone == NULL ||
-              bp->b_iodone == xfs_buf_iodone_callbacks);
 
        /*
         * Mark the buffer as needing to be written out eventually,
         * and set its iodone function to remove the buffer's buf log
         * item from the AIL and free it when the buffer is flushed
-        * to disk.  See xfs_buf_attach_iodone() for more details
-        * on li_cb and xfs_buf_iodone_callbacks().
-        * If we end up aborting this transaction, we trap this buffer
-        * inside the b_bdstrat callback so that this won't get written to
-        * disk.
+        * to disk.
         */
        bp->b_flags |= XBF_DONE;
 
        ASSERT(atomic_read(&bip->bli_refcount) > 0);
-       bp->b_iodone = xfs_buf_iodone_callbacks;
-       bip->bli_item.li_cb = xfs_buf_iodone;
 
        /*
         * If we invalidated the buffer within this transaction, then
@@ -626,6 +618,7 @@ xfs_trans_inode_buf(
        ASSERT(atomic_read(&bip->bli_refcount) > 0);
 
        bip->bli_flags |= XFS_BLI_INODE_BUF;
+       bp->b_flags |= _XBF_INODES;
        xfs_trans_buf_set_type(tp, bp, XFS_BLFT_DINO_BUF);
 }
 
@@ -650,7 +643,7 @@ xfs_trans_stale_inode_buf(
        ASSERT(atomic_read(&bip->bli_refcount) > 0);
 
        bip->bli_flags |= XFS_BLI_STALE_INODE;
-       bip->bli_item.li_cb = xfs_buf_iodone;
+       bp->b_flags |= _XBF_INODES;
        xfs_trans_buf_set_type(tp, bp, XFS_BLFT_DINO_BUF);
 }
 
@@ -675,6 +668,7 @@ xfs_trans_inode_alloc_buf(
        ASSERT(atomic_read(&bip->bli_refcount) > 0);
 
        bip->bli_flags |= XFS_BLI_INODE_ALLOC_BUF;
+       bp->b_flags |= _XBF_INODES;
        xfs_trans_buf_set_type(tp, bp, XFS_BLFT_DINO_BUF);
 }
 
@@ -785,5 +779,6 @@ xfs_trans_dquot_buf(
                break;
        }
 
+       bp->b_flags |= _XBF_DQUOTS;
        xfs_trans_buf_set_type(tp, bp, type);
 }