]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xfs: fix frozen file system assert in xfs_trans_alloc
authorChristoph Hellwig <hch@lst.de>
Thu, 31 Jul 2025 14:19:41 +0000 (07:19 -0700)
committerCarlos Maiolino <cem@kernel.org>
Mon, 11 Aug 2025 12:03:07 +0000 (14:03 +0200)
Commit 83a80e95e797 ("xfs: decouple xfs_trans_alloc_empty from
xfs_trans_alloc") move the place of the assert for a frozen file system
after the sb_start_intwrite call that ensures it doesn't run on frozen
file systems, and thus allows to incorrect trigger it.

Fix that by moving it back to where it belongs.

Fixes: 83a80e95e797 ("xfs: decouple xfs_trans_alloc_empty from xfs_trans_alloc")
Reported-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/xfs_trans.c

index ece374d622b3e9925d257b5e675fd0e8ee024d7f..575e7028f423a8892d458f607d6d64fd6b1bb8e9 100644 (file)
@@ -253,8 +253,8 @@ xfs_trans_alloc(
         * by doing GFP_KERNEL allocations inside sb_start_intwrite().
         */
 retry:
-       WARN_ON(mp->m_super->s_writers.frozen == SB_FREEZE_COMPLETE);
        tp = __xfs_trans_alloc(mp, flags);
+       WARN_ON(mp->m_super->s_writers.frozen == SB_FREEZE_COMPLETE);
        error = xfs_trans_reserve(tp, resp, blocks, rtextents);
        if (error == -ENOSPC && want_retry) {
                xfs_trans_cancel(tp);