Patch "xfs: finish dfops on every insert range shift iteration" has been added to the 5.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    xfs: finish dfops on every insert range shift iteration

to the 5.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     xfs-finish-dfops-on-every-insert-range-shift-iterati.patch
and it can be found in the queue-5.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8746bd2ff086432e026b92647ee1e3eaf9d69a79
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date:   Tue Aug 18 08:05:58 2020 -0700

    xfs: finish dfops on every insert range shift iteration
    
    [ Upstream commit 9c516e0e4554e8f26ab73d46cbc789d7d8db664d ]
    
    The recent change to make insert range an atomic operation used the
    incorrect transaction rolling mechanism. The explicit transaction
    roll does not finish deferred operations. This means that intents
    for rmapbt updates caused by extent shifts are not logged until the
    final transaction commits. Thus if a crash occurs during an insert
    range, log recovery might leave the rmapbt in an inconsistent state.
    This was discovered by repeated runs of generic/455.
    
    Update insert range to finish dfops on every shift iteration. This
    is similar to collapse range and ensures that intents are logged
    with the transactions that make associated changes.
    
    Fixes: dd87f87d87fa ("xfs: rework insert range into an atomic operation")
    Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
    Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
    Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
index afdc7f8e0e701..feb277874a1fb 100644
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -1165,7 +1165,7 @@ xfs_insert_file_space(
 		goto out_trans_cancel;
 
 	do {
-		error = xfs_trans_roll_inode(&tp, ip);
+		error = xfs_defer_finish(&tp);
 		if (error)
 			goto out_trans_cancel;
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux