xfs: assert that we don't enter agfl freeing with a non-permanent transaction
Block allocation requires a permanent transaction for deferred AGFL frees. Add an assert in the block allocation path to make explicit and obvious to future callers the requirement of a transaction with a permanent reservation. Reported-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> [darrick: split this out from the previous patch per hch request] Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
Родитель
945c941fcd
Коммит
362f5e745a
|
@ -2243,6 +2243,9 @@ xfs_alloc_fix_freelist(
|
|||
xfs_extlen_t need; /* total blocks needed in freelist */
|
||||
int error = 0;
|
||||
|
||||
/* deferred ops (AGFL block frees) require permanent transactions */
|
||||
ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES);
|
||||
|
||||
if (!pag->pagf_init) {
|
||||
error = xfs_alloc_read_agf(mp, tp, args->agno, flags, &agbp);
|
||||
if (error)
|
||||
|
|
Загрузка…
Ссылка в новой задаче