KAMEZAWA Hiroyuki wrote: > This is reproducer of panic. "quick fix" is attached. > But I think putback_lru_page() should be re-designed. > > == > #include <stdio.h> > #include <sys/types.h> > #include <sys/stat.h> > #include <fcntl.h> > #include <sys/mman.h> > #include <unistd.h> > #include <errno.h> > > int main(int argc, char *argv[]) > { > int fd; > char *filename = argv[1]; > char buffer[4096]; > char *addr; > int len; > > fd = open(filename, O_CREAT | O_EXCL | O_RDWR, S_IRWXU); > > if (fd < 0) { > perror("open"); > exit(1); > } > len = write(fd, buffer, sizeof(buffer)); > > if (len < 0) { > perror("write"); > exit(1); > } > > addr = mmap(NULL, 4096, PROT_WRITE, MAP_SHARED|MAP_LOCKED, fd, 0); > if (addr == MAP_FAILED) { > perror("mmap"); > exit(1); > } > munmap(addr, 4096); > close(fd); > > unlink(filename); > } > == > you'll see panic. > > Fix is here > == Hi Kame, Thanks, The patch fixes the kernel panic. Tested-by: Kamalesh Babulal <kamalesh@xxxxxxxxxxxxxxxxxx> > > quick fix for double unlock_page(); > > Signed-off-by: KAMEZAWA Hiroyuki <kamewzawa.hiroyu@xxxxxxxxxxxxxx> > Index: linux-2.6.26-rc5-mm3/mm/truncate.c > =================================================================== > --- linux-2.6.26-rc5-mm3.orig/mm/truncate.c > +++ linux-2.6.26-rc5-mm3/mm/truncate.c > @@ -104,8 +104,8 @@ truncate_complete_page(struct address_sp > > cancel_dirty_page(page, PAGE_CACHE_SIZE); > > - remove_from_page_cache(page); > clear_page_mlock(page); > + remove_from_page_cache(page); > ClearPageUptodate(page); > ClearPageMappedToDisk(page); > page_cache_release(page); /* pagecache ref */ > -- Thanks & Regards, Kamalesh Babulal, Linux Technology Center, IBM, ISTL. -- 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