aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/xfs_inode.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index f643a9295179..4591598ca04d 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -3614,7 +3614,6 @@ cluster_corrupt_out:
3614 * inode buffer and shut down the filesystem. 3614 * inode buffer and shut down the filesystem.
3615 */ 3615 */
3616 rcu_read_unlock(); 3616 rcu_read_unlock();
3617 xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
3618 3617
3619 /* 3618 /*
3620 * We'll always have an inode attached to the buffer for completion 3619 * We'll always have an inode attached to the buffer for completion
@@ -3624,11 +3623,14 @@ cluster_corrupt_out:
3624 * xfs_buf_submit(). 3623 * xfs_buf_submit().
3625 */ 3624 */
3626 ASSERT(bp->b_iodone); 3625 ASSERT(bp->b_iodone);
3626 bp->b_flags |= XBF_ASYNC;
3627 bp->b_flags &= ~XBF_DONE; 3627 bp->b_flags &= ~XBF_DONE;
3628 xfs_buf_stale(bp); 3628 xfs_buf_stale(bp);
3629 xfs_buf_ioerror(bp, -EIO); 3629 xfs_buf_ioerror(bp, -EIO);
3630 xfs_buf_ioend(bp); 3630 xfs_buf_ioend(bp);
3631 3631
3632 xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
3633
3632 /* abort the corrupt inode, as it was not attached to the buffer */ 3634 /* abort the corrupt inode, as it was not attached to the buffer */
3633 xfs_iflush_abort(cip, false); 3635 xfs_iflush_abort(cip, false);
3634 kmem_free(cilist); 3636 kmem_free(cilist);