On Thu, Jan 17, 2013 at 01:11:29PM -0500, Brian Foster wrote:
> 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: Brian Foster <bfoster@xxxxxxxxxx>
> I was reading through this code and confused myself over whether the stack
> switch ever actually occurs. Eric and Ben pointed out on irc (simultaneously,
> I might add) the surrounding loop that I had missed, but it wasn't clear
> the behavior to enable the stack switch after the first iteration was
> intentional or not. I'm throwing this out there to either fix the issue or
> out an explanation for the existing behavior. Thanks!
To me this looks to be the correct behavior. It might be better to
just get rid of the XFS_BMAPI_STACK_SWITCH flag entirely. Nice find.