Messages in this thread | | | Date | Fri, 20 Apr 2018 10:17:42 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] lockdep: fix fs_reclaim annotation |
| |
On Sun, Apr 15, 2018 at 12:42:25AM -0700, Omar Sandoval wrote: > From: Omar Sandoval <osandov@fb.com> > > While revisiting my Btrfs swapfile series [1], I introduced a situation > in which reclaim would lock i_rwsem, and even though the swapon() path > clearly made GFP_KERNEL allocations while holding i_rwsem, I got no > complaints from lockdep. It turns out that the rework of the fs_reclaim > annotation was broken: if the current task has PF_MEMALLOC set, we don't > acquire the dummy fs_reclaim lock, but when reclaiming we always check > this _after_ we've just set the PF_MEMALLOC flag. In most cases, we can > fix this by moving the fs_reclaim_{acquire,release}() outside of the > memalloc_noreclaim_{save,restore}(), althought kswapd is slightly > different. After applying this, I got the expected lockdep splats. > > 1: https://lwn.net/Articles/625412/ > Fixes: d92a8cfcb37e ("locking/lockdep: Rework FS_RECLAIM annotation") > Signed-off-by: Omar Sandoval <osandov@fb.com>
Urgh, thanks for fixing that!
| |