diff options
Diffstat (limited to 'fs/ocfs2')
-rw-r--r-- | fs/ocfs2/aops.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 1db080135c6d..506c24fb5078 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
@@ -1073,12 +1073,15 @@ static void ocfs2_write_failure(struct inode *inode, | |||
1073 | for(i = 0; i < wc->w_num_pages; i++) { | 1073 | for(i = 0; i < wc->w_num_pages; i++) { |
1074 | tmppage = wc->w_pages[i]; | 1074 | tmppage = wc->w_pages[i]; |
1075 | 1075 | ||
1076 | if (ocfs2_should_order_data(inode)) | 1076 | if (page_has_buffers(tmppage)) { |
1077 | walk_page_buffers(wc->w_handle, page_buffers(tmppage), | 1077 | if (ocfs2_should_order_data(inode)) |
1078 | from, to, NULL, | 1078 | walk_page_buffers(wc->w_handle, |
1079 | ocfs2_journal_dirty_data); | 1079 | page_buffers(tmppage), |
1080 | 1080 | from, to, NULL, | |
1081 | block_commit_write(tmppage, from, to); | 1081 | ocfs2_journal_dirty_data); |
1082 | |||
1083 | block_commit_write(tmppage, from, to); | ||
1084 | } | ||
1082 | } | 1085 | } |
1083 | } | 1086 | } |
1084 | 1087 | ||
@@ -1901,12 +1904,14 @@ int ocfs2_write_end_nolock(struct address_space *mapping, | |||
1901 | to = PAGE_CACHE_SIZE; | 1904 | to = PAGE_CACHE_SIZE; |
1902 | } | 1905 | } |
1903 | 1906 | ||
1904 | if (ocfs2_should_order_data(inode)) | 1907 | if (page_has_buffers(tmppage)) { |
1905 | walk_page_buffers(wc->w_handle, page_buffers(tmppage), | 1908 | if (ocfs2_should_order_data(inode)) |
1906 | from, to, NULL, | 1909 | walk_page_buffers(wc->w_handle, |
1907 | ocfs2_journal_dirty_data); | 1910 | page_buffers(tmppage), |
1908 | 1911 | from, to, NULL, | |
1909 | block_commit_write(tmppage, from, to); | 1912 | ocfs2_journal_dirty_data); |
1913 | block_commit_write(tmppage, from, to); | ||
1914 | } | ||
1910 | } | 1915 | } |
1911 | 1916 | ||
1912 | out_write_size: | 1917 | out_write_size: |