In the Linux kernel, the following vulnerability has been resolved:
gfs2: Fix use-after-free in gfs2glockshrink_scan
The GLFLRU flag is checked under lrulock in gfs2glockremovefromlru() to remove the glock from the lru list in _gfs2glock_put().
On the shrink scan path, the same flag is cleared under lrulock but because of condreschedlock(&lrulock) in gfs2disposeglock_lru(), progress on the put side can be made without deleting the glock from the lru list.
Keep GLFLRU across the race window opened by condreschedlock(&lrulock) to ensure correct behavior on both sides - clear GLFLRU after listdel under lru_lock.