Re: [PATCH] futex: Reduce the scope of lock_page, aka lockless futex_get_key()

From: Davidlohr Bueso
Date: Tue Jan 05 2016 - 16:11:55 EST


On Tue, 05 Jan 2016, Bueso wrote:

On Tue, 05 Jan 2016, Peter Zijlstra wrote:

On Tue, Jan 05, 2016 at 12:23:55PM -0800, Davidlohr Bueso wrote:
+ if (unlikely(!mapping)) {
+ int shmem_swizzled;
+
+ /*
+ * Page lock is required to identify which special case above
+ * applies. If this is really a shmem page then the page lock
+ * will prevent unexpected transitions.
+ */
+ lock_page(page);
+ shmem_swizzled = PageSwapCache(page);
unlock_page(page);
put_page(page);
+ WARN_ON_ONCE(mapping);

We've not re-loaded mapping, so how could this possibly be?

Yep, this wants to be page->mapping.

Actually under compound_head() afaict, along with the rest of the page->mapping
loads.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/