From: Andrew Morton There's no need to do this in the non-preemptible region. Cc: Alexey Dobriyan Cc: Dmitriy Monakhov Signed-off-by: Andrew Morton --- fs/reiserfs/file.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff -puN fs/reiserfs/file.c~reiserfs-add-missing-d-cache-flushing-tweak fs/reiserfs/file.c --- a/fs/reiserfs/file.c~reiserfs-add-missing-d-cache-flushing-tweak +++ a/fs/reiserfs/file.c @@ -1044,16 +1044,16 @@ static int reiserfs_prepare_file_region_ if (from != 0) { /* First page needs to be partially zeroed */ char *kaddr = kmap_atomic(prepared_pages[0], KM_USER0); memset(kaddr, 0, from); - flush_dcache_page(prepared_pages[0]); kunmap_atomic(kaddr, KM_USER0); + flush_dcache_page(prepared_pages[0]); } if (to != PAGE_CACHE_SIZE) { /* Last page needs to be partially zeroed */ char *kaddr = kmap_atomic(prepared_pages[num_pages - 1], KM_USER0); memset(kaddr + to, 0, PAGE_CACHE_SIZE - to); - flush_dcache_page(prepared_pages[num_pages - 1]); kunmap_atomic(kaddr, KM_USER0); + flush_dcache_page(prepared_pages[num_pages - 1]); } /* Since all blocks are new - use already calculated value */ @@ -1186,8 +1186,8 @@ static int reiserfs_prepare_file_region_ KM_USER0); memset(kaddr + block_start, 0, from - block_start); - flush_dcache_page(prepared_pages[0]); kunmap_atomic(kaddr, KM_USER0); + flush_dcache_page(prepared_pages[0]); set_buffer_uptodate(bh); } } @@ -1224,8 +1224,8 @@ static int reiserfs_prepare_file_region_ [num_pages - 1], KM_USER0); memset(kaddr + to, 0, block_end - to); - flush_dcache_page(prepared_pages[num_pages - 1]); kunmap_atomic(kaddr, KM_USER0); + flush_dcache_page(prepared_pages[num_pages - 1]); set_buffer_uptodate(bh); } } _