Thanks.
I'm just looking at page_mapped(). It is now implicitly assuming that the
architecture's representation of a zero-count atomic_t is all-bits-zero.
This is not true on sparc32 if some other CPU is in the middle of an
atomic_foo() against that counter. Maybe the assumption is false on other
architectures too.
So page_mapped() really should be performing an atomic_read() if that is
appropriate to the particular page. I guess this involves testing
page->mapping. Which is stable only when the page is locked or
mapping->page_lock is held.
It appears that all page_mapped() callers are inside lock_page() at present,
so a quick audit and addition of a comment would be appropriate there please.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/