From: Alexaner Zarochentsev re-add to reiser4_releasepage mistakenly removed page_count check. reiser4 uses extra page reference to protect page from detaching from the jnode. Signed-off-by: Alexander Zarochentsev Cc: Hans Reiser Signed-off-by: Andrew Morton --- fs/reiser4/as_ops.c | 5 +++++ 1 files changed, 5 insertions(+) diff -puN fs/reiser4/as_ops.c~reiser4-re-add-page_count-check-to-reiser4_releasepage fs/reiser4/as_ops.c --- a/fs/reiser4/as_ops.c~reiser4-re-add-page_count-check-to-reiser4_releasepage +++ a/fs/reiser4/as_ops.c @@ -292,6 +292,11 @@ int reiser4_releasepage(struct page *pag if (PageDirty(page)) return 0; + /* extra page reference is used by reiser4 to protect + * jnode<->page link from this ->releasepage(). */ + if (page_count(page) > 3) + return 0; + /* releasable() needs jnode lock, because it looks at the jnode fields * and we need jload_lock here to avoid races with jload(). */ spin_lock_jnode(node); _