Files
twx-linux/fs
Hillf Danton 0364742dec gfs2: Fix use-after-free in gfs2_glock_shrink_scan
[ Upstream commit 1ab19c5de4 ]

The GLF_LRU flag is checked under lru_lock in gfs2_glock_remove_from_lru() to
remove the glock from the lru list in __gfs2_glock_put().

On the shrink scan path, the same flag is cleared under lru_lock but because
of cond_resched_lock(&lru_lock) in gfs2_dispose_glock_lru(), progress on the
put side can be made without deleting the glock from the lru list.

Keep GLF_LRU across the race window opened by cond_resched_lock(&lru_lock) to
ensure correct behavior on both sides - clear GLF_LRU after list_del under
lru_lock.

Reported-by: syzbot <syzbot+34ba7ddbf3021981a228@syzkaller.appspotmail.com>
Signed-off-by: Hillf Danton <hdanton@sina.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-06-30 08:48:46 -04:00
..
2020-11-05 11:07:03 +01:00
2020-04-02 16:34:33 +02:00
…
…
2021-05-22 10:57:42 +02:00
2019-08-06 19:05:23 +02:00
2021-05-22 10:57:35 +02:00
…
2020-08-21 09:48:18 +02:00
2021-05-22 10:57:36 +02:00
…
…
…
…
…
…
…
…
…
2020-03-11 18:02:43 +01:00
…
…
…
…
…
2020-04-02 16:34:21 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…