--- x/mm/filemap.c.~1~ 2003-04-24 16:37:50.000000000 +0200 +++ x/mm/filemap.c 2003-04-24 17:05:10.000000000 +0200 @@ -100,9 +100,10 @@ static inline void remove_page_from_inod if (mapping->a_ops->removepage) mapping->a_ops->removepage(page); - mapping->nrpages--; list_del(&page->list); page->mapping = NULL; + wmb(); + mapping->nrpages--; } static inline void remove_page_from_hash_queue(struct page * page)