From: Vladimir Saveliev The attached patch fixes 3 trivial bugs in reiser4. To hit them one would have to either run with REISER4_DEBUG turned on or to encounter partially converted file. Signed-off-by: Vladimir Saveliev Cc: Hans Reiser Signed-off-by: Andrew Morton --- fs/reiser4/page_cache.c | 2 +- fs/reiser4/plugin/file/file.c | 1 + fs/reiser4/plugin/space/bitmap.c | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff -puN fs/reiser4/page_cache.c~reiser4-fix-trivial-tyops-which-were-hard-to-hit fs/reiser4/page_cache.c --- devel/fs/reiser4/page_cache.c~reiser4-fix-trivial-tyops-which-were-hard-to-hit 2006-05-30 14:47:32.000000000 -0700 +++ devel-akpm/fs/reiser4/page_cache.c 2006-05-30 14:47:32.000000000 -0700 @@ -518,7 +518,7 @@ int reiser4_writepage(struct page *page, s = page->mapping->host->i_sb; ctx = get_current_context_check(); - assert("", !can_hit_entd(ctx, s)); + assert("", can_hit_entd(ctx, s)); return write_page_by_ent(page, wbc); } diff -puN fs/reiser4/plugin/file/file.c~reiser4-fix-trivial-tyops-which-were-hard-to-hit fs/reiser4/plugin/file/file.c --- devel/fs/reiser4/plugin/file/file.c~reiser4-fix-trivial-tyops-which-were-hard-to-hit 2006-05-30 14:47:32.000000000 -0700 +++ devel-akpm/fs/reiser4/plugin/file/file.c 2006-05-30 14:47:32.000000000 -0700 @@ -1981,6 +1981,7 @@ int open_unix_file(struct inode *inode, assert("vs-1712", ergo(result == 0, (!inode_get_flag(inode, REISER4_PART_MIXED) && !inode_get_flag(inode, REISER4_PART_IN_CONV)))); + drop_exclusive_access(uf_info); reiser4_exit_context(ctx); return result; } diff -puN fs/reiser4/plugin/space/bitmap.c~reiser4-fix-trivial-tyops-which-were-hard-to-hit fs/reiser4/plugin/space/bitmap.c --- devel/fs/reiser4/plugin/space/bitmap.c~reiser4-fix-trivial-tyops-which-were-hard-to-hit 2006-05-30 14:47:32.000000000 -0700 +++ devel-akpm/fs/reiser4/plugin/space/bitmap.c 2006-05-30 14:47:32.000000000 -0700 @@ -742,8 +742,10 @@ prepare_bnode(struct bitmap_node *bnode, super = reiser4_get_current_sb(); *wjnode_ret = wjnode = bnew(); - if (wjnode == NULL) + if (wjnode == NULL) { + *cjnode_ret = NULL; return RETERR(-ENOMEM); + } *cjnode_ret = cjnode = bnew(); if (cjnode == NULL) _