On Thursday 13 March 2008 00:21:36 Martin Schwidefsky wrote: > Index: linux-2.6/fs/exec.c > =================================================================== > --- linux-2.6.orig/fs/exec.c > +++ linux-2.6/fs/exec.c > @@ -51,6 +51,7 @@ > #include <linux/tsacct_kern.h> > #include <linux/cn_proc.h> > #include <linux/audit.h> > +#include <linux/page-states.h> > > #include <asm/uaccess.h> > #include <asm/mmu_context.h> I haven't compile-tested, but this seems unnecessary; it's the only change to this file. > +/** > + * __page_reset_writable() - clear the PageWritable bit > + * > + * @page: the page > + */ > +void __page_reset_writable(struct page *page) > +{ > + preempt_disable(); > + if (!page_test_set_state_change(page)) { > + ClearPageWritable(page); > + page_clear_state_change(page); > + } > + preempt_enable(); > +} > +EXPORT_SYMBOL(__page_reset_writable); If I understand correctly, you don't bother resetting the writable bit if you don't get the state_change lock. Is this best effort, or is there some correctness issue here? Cheers, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html