Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:
JFS: Fix multiple errors in metapage_releasepage

+5 -15
+5 -15
fs/jfs/jfs_metapage.c
··· 542 542 static int metapage_releasepage(struct page *page, gfp_t gfp_mask) 543 543 { 544 544 struct metapage *mp; 545 - int busy = 0; 545 + int ret = 1; 546 546 unsigned int offset; 547 547 548 548 for (offset = 0; offset < PAGE_CACHE_SIZE; offset += PSIZE) { ··· 552 552 continue; 553 553 554 554 jfs_info("metapage_releasepage: mp = 0x%p", mp); 555 - if (mp->count || mp->nohomeok) { 555 + if (mp->count || mp->nohomeok || 556 + test_bit(META_dirty, &mp->flag)) { 556 557 jfs_info("count = %ld, nohomeok = %d", mp->count, 557 558 mp->nohomeok); 558 - busy = 1; 559 + ret = 0; 559 560 continue; 560 - } 561 - wait_on_page_writeback(page); 562 - //WARN_ON(test_bit(META_dirty, &mp->flag)); 563 - if (test_bit(META_dirty, &mp->flag)) { 564 - dump_mem("dirty mp in metapage_releasepage", mp, 565 - sizeof(struct metapage)); 566 - dump_mem("page", page, sizeof(struct page)); 567 - dump_stack(); 568 561 } 569 562 if (mp->lsn) 570 563 remove_from_logsync(mp); ··· 565 572 INCREMENT(mpStat.pagefree); 566 573 free_metapage(mp); 567 574 } 568 - if (busy) 569 - return -1; 570 - 571 - return 0; 575 + return ret; 572 576 } 573 577 574 578 static void metapage_invalidatepage(struct page *page, unsigned long offset)