Re: [PATCH 004 of 4] Make address_space_operations->invalidatepagereturn void

From: Andrew Morton
Date: Mon Mar 13 2006 - 16:36:18 EST


Dave Kleikamp <shaggy@xxxxxxxxxxxxxx> wrote:
>
> On Mon, 2006-03-13 at 10:32 -0600, Dave Kleikamp wrote:
> > I'll try to stress test jfs with these patches to see if I can trigger
> > the an oops here.
>
> While stress testing on a jfs volume (dbench), I hit an assert in jbd:
>
> Assertion failure in journal_invalidatepage() at fs/jbd/transaction.c:1920: "!page_has_buffers(page)"

Yes, thanks, that assertion has become wrong.

--- devel/fs/jbd/transaction.c~make-address_space_operations-invalidatepage-return-void-jbd-fix 2006-03-13 13:33:12.000000000 -0800
+++ devel-akpm/fs/jbd/transaction.c 2006-03-13 13:33:12.000000000 -0800
@@ -1915,9 +1915,8 @@ void journal_invalidatepage(journal_t *j
} while (bh != head);

if (!offset) {
- /* Maybe should BUG_ON !may_free - neilb */
- try_to_free_buffers(page);
- J_ASSERT(!page_has_buffers(page));
+ if (may_free && try_to_free_buffers(page))
+ J_ASSERT(!page_has_buffers(page));
}
}


However I'm more inclined to drop the whole patch, really - having
->invalidatepage() return a success indication makes sense. The fact that
we're currently not using that return value doesn't mean that we shouldn't,
didn't and won't.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/