--- ext2fs/pager.c.orig 2010-05-11 18:40:40.000000000 +0200 +++ ext2fs/pager.c 2010-05-11 18:42:27.000000000 +0200 @@ -250,7 +250,11 @@ if (block == 0) /* Reading unallocated block, just make a zero-filled one. */ { - *writelock = 1; + if (lock) { + rwlock_reader_unlock (lock); + lock = NULL; + } + pager_unlock_page(pager_get_upi(node->dn->pager), page); if (offs == 0) /* No page allocated to read into yet. */ {