On Thu, 12 Jun 2008 21:38:59 +1000 Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote: > +int putback_lru_page(struct page *page) > +{ > + int lru; > + int ret = 1; > + int was_unevictable; > + > + VM_BUG_ON(!PageLocked(page)); > + VM_BUG_ON(PageLRU(page)); > + > + lru = !!TestClearPageActive(page); > + was_unevictable = TestClearPageUnevictable(page); /* for > page_evictable() */ > + > + if (unlikely(!page->mapping)) { > + /* > + * page truncated. drop lock as put_page() will > + * free the page. > + */ > + VM_BUG_ON(page_count(page) != 1); > + unlock_page(page); > ^^^^^^^^^^^^^^^^^^ > > > This is a rather wild thing to be doing. It's a really bad idea > to drop a lock that's taken several function calls distant and > across different files... > I agree and strongly hope this unlock should be removed. The caller can do unlock by itself, I think. Thanks, -Kame -- To unsubscribe from this list: send the line "unsubscribe kernel-testers" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html