Commit 67e38124 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 27865454 b964638f
...@@ -542,7 +542,7 @@ static int metapage_readpage(struct file *fp, struct page *page) ...@@ -542,7 +542,7 @@ static int metapage_readpage(struct file *fp, struct page *page)
static int metapage_releasepage(struct page *page, gfp_t gfp_mask) static int metapage_releasepage(struct page *page, gfp_t gfp_mask)
{ {
struct metapage *mp; struct metapage *mp;
int busy = 0; int ret = 1;
unsigned int offset; unsigned int offset;
for (offset = 0; offset < PAGE_CACHE_SIZE; offset += PSIZE) { for (offset = 0; offset < PAGE_CACHE_SIZE; offset += PSIZE) {
...@@ -552,30 +552,20 @@ static int metapage_releasepage(struct page *page, gfp_t gfp_mask) ...@@ -552,30 +552,20 @@ static int metapage_releasepage(struct page *page, gfp_t gfp_mask)
continue; continue;
jfs_info("metapage_releasepage: mp = 0x%p", mp); jfs_info("metapage_releasepage: mp = 0x%p", mp);
if (mp->count || mp->nohomeok) { if (mp->count || mp->nohomeok ||
test_bit(META_dirty, &mp->flag)) {
jfs_info("count = %ld, nohomeok = %d", mp->count, jfs_info("count = %ld, nohomeok = %d", mp->count,
mp->nohomeok); mp->nohomeok);
busy = 1; ret = 0;
continue; continue;
} }
wait_on_page_writeback(page);
//WARN_ON(test_bit(META_dirty, &mp->flag));
if (test_bit(META_dirty, &mp->flag)) {
dump_mem("dirty mp in metapage_releasepage", mp,
sizeof(struct metapage));
dump_mem("page", page, sizeof(struct page));
dump_stack();
}
if (mp->lsn) if (mp->lsn)
remove_from_logsync(mp); remove_from_logsync(mp);
remove_metapage(page, mp); remove_metapage(page, mp);
INCREMENT(mpStat.pagefree); INCREMENT(mpStat.pagefree);
free_metapage(mp); free_metapage(mp);
} }
if (busy) return ret;
return -1;
return 0;
} }
static void metapage_invalidatepage(struct page *page, unsigned long offset) static void metapage_invalidatepage(struct page *page, unsigned long offset)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment