On Thu, Jun 15, 2023 at 06:48:38PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > Jan Kara suggested that when one thread is in the middle of freezing a > filesystem, another thread trying to freeze the same fs but with a > different freeze_holder should wait until the freezer reaches either end > state (UNFROZEN or COMPLETE) instead of returning EBUSY immediately. > > Neither caller can do anything sensible with this race other than retry > but they cannot really distinguish EBUSY as in "someone other holder of > the same type has the sb already frozen" from "freezing raced with > holder of a different type". > > Plumb in the extra coded needed to wait for the fs freezer to reach an > end state and try the freeze again. > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > --- > fs/super.c | 34 ++++++++++++++++++++++++++++++++-- > 1 file changed, 32 insertions(+), 2 deletions(-) Simple enough. I was going to comment about replacing wait_unfrozen with a variant on wait_for_partially_frozen(), but then I looked at the next patch.... Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx