On Sat, Jan 20, 2024 at 02:40:07AM +0000, Yosry Ahmed wrote: > During swapoff, try_to_unuse() makes sure that zswap_invalidate() is > called for all swap entries before zswap_swapoff() is called. This means > that all zswap entries should already be removed from the tree. Simplify > zswap_swapoff() by removing the tree cleanup loop, and leaving an > assertion in its place. > > Signed-off-by: Yosry Ahmed <yosryahmed@xxxxxxxxxx> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx> That's a great simplification. Removing the tree->lock made me double take, but at this point the swapfile and its cache should be fully dead and I don't see how any of the zswap operations that take tree->lock could race at this point. > --- > Chengming, Chris, I think this should make the tree split and the xarray > conversion patches simpler (especially the former). If others agree, > both changes can be rebased on top of this. The resulting code is definitely simpler, but this patch is not a completely trivial cleanup, either. If you put it before Chengming's patch and it breaks something, it would be difficult to pull out without affecting the tree split.