read_mapping_page() is now fully synchronous, so there's no need wait for the page lock or check for I/O errors. Signed-off-by: Nate Diller <nate.diller@xxxxxxxxx> --- diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/file/tail_conversion.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/file/tail_conversion.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/file/tail_conversion.c 2007-04-09 17:24:03.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/file/tail_conversion.c 2007-04-10 21:33:47.000000000 -0700 @@ -608,14 +608,6 @@ int extent2tail(unix_file_info_t *uf_inf break; } - wait_on_page_locked(page); - - if (!PageUptodate(page)) { - page_cache_release(page); - result = RETERR(-EIO); - break; - } - /* cut part of file we have read */ start_byte = (__u64) (i << PAGE_CACHE_SHIFT); set_key_offset(&from, start_byte); diff -urpN -X dontdiff linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/extent_file_ops.c linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/extent_file_ops.c --- linux-2.6.21-rc6-mm1/fs/reiser4/plugin/item/extent_file_ops.c 2007-04-10 19:41:14.000000000 -0700 +++ linux-2.6.21-rc6-mm1-test/fs/reiser4/plugin/item/extent_file_ops.c 2007-04-10 21:38:41.000000000 -0700 @@ -1220,15 +1220,8 @@ int reiser4_read_extent(struct file *fil page = read_mapping_page(mapping, cur_page, file); if (IS_ERR(page)) return PTR_ERR(page); - lock_page(page); - if (!PageUptodate(page)) { - unlock_page(page); - page_cache_release(page); - warning("jmacd-97178", "extent_read: page is not up to date"); - return RETERR(-EIO); - } + mark_page_accessed(page); - unlock_page(page); /* If users can be writing to this page using arbitrary virtual addresses, take care about potential aliasing before reading - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html