Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d26978dd authored by Brian Foster's avatar Brian Foster Committed by Ben Myers
Browse files

xfs: pull up stack_switch check into xfs_bmapi_write



The stack_switch check currently occurs in __xfs_bmapi_allocate,
which means the stack switch only occurs when xfs_bmapi_allocate()
is called in a loop. Pull the check up before the loop in
xfs_bmapi_write() such that the first iteration of the loop has
consistent behavior.

Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent 1bee12b8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -4680,9 +4680,6 @@ __xfs_bmapi_allocate(
			return error;
	}

	if (bma->flags & XFS_BMAPI_STACK_SWITCH)
		bma->stack_switch = 1;

	error = xfs_bmap_alloc(bma);
	if (error)
		return error;
@@ -4956,6 +4953,9 @@ xfs_bmapi_write(
	bma.flist = flist;
	bma.firstblock = firstblock;

	if (flags & XFS_BMAPI_STACK_SWITCH)
		bma.stack_switch = 1;

	while (bno < end && n < *nmap) {
		inhole = eof || bma.got.br_startoff > bno;
		wasdelay = !inhole && isnullstartblock(bma.got.br_startblock);