@Ben: You'll probably also want to take these two into the next 3.16 release.
Sorry, I forgot that 3.16 has a different maintainer...
On Mon, Mar 23, 2020 at 8:18 PM Jann Horn jannh@google.com wrote:
On Wed, Mar 18, 2020 at 9:54 PM Sasha Levin sashal@kernel.org wrote:
From: Peter Zijlstra peterz@infradead.org
[ Upstream commit 8019ad13ef7f64be44d4f892af9c840179009254 ]
As reported by Jann, ihold() does not in fact guarantee inode persistence. And instead of making it so, replace the usage of inode pointers with a per boot, machine wide, unique inode identifier.
This sequence number is global, but shared (file backed) futexes are rare enough that this should not become a performance issue.
Please also take this patch, together with 8d67743653dce5a0e7aa500fcccb237cde7ad88e "futex: Unbreak futex hashing", into the older stable branches. This has to go all the way back; as far as I can tell, the bug already existed at the beginning of git history.