diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_lrw.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c index 0b5c9b6774c8..ff8d64eba9f8 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.c +++ b/fs/xfs/linux-2.6/xfs_lrw.c | |||
@@ -137,7 +137,6 @@ xfs_iozero( | |||
137 | unsigned bytes; | 137 | unsigned bytes; |
138 | struct page *page; | 138 | struct page *page; |
139 | struct address_space *mapping; | 139 | struct address_space *mapping; |
140 | char *kaddr; | ||
141 | int status; | 140 | int status; |
142 | 141 | ||
143 | mapping = ip->i_mapping; | 142 | mapping = ip->i_mapping; |
@@ -155,15 +154,13 @@ xfs_iozero( | |||
155 | if (!page) | 154 | if (!page) |
156 | break; | 155 | break; |
157 | 156 | ||
158 | kaddr = kmap(page); | ||
159 | status = mapping->a_ops->prepare_write(NULL, page, offset, | 157 | status = mapping->a_ops->prepare_write(NULL, page, offset, |
160 | offset + bytes); | 158 | offset + bytes); |
161 | if (status) { | 159 | if (status) |
162 | goto unlock; | 160 | goto unlock; |
163 | } | ||
164 | 161 | ||
165 | memset((void *) (kaddr + offset), 0, bytes); | 162 | memclear_highpage_flush(page, offset, bytes); |
166 | flush_dcache_page(page); | 163 | |
167 | status = mapping->a_ops->commit_write(NULL, page, offset, | 164 | status = mapping->a_ops->commit_write(NULL, page, offset, |
168 | offset + bytes); | 165 | offset + bytes); |
169 | if (!status) { | 166 | if (!status) { |
@@ -172,7 +169,6 @@ xfs_iozero( | |||
172 | } | 169 | } |
173 | 170 | ||
174 | unlock: | 171 | unlock: |
175 | kunmap(page); | ||
176 | unlock_page(page); | 172 | unlock_page(page); |
177 | page_cache_release(page); | 173 | page_cache_release(page); |
178 | if (status) | 174 | if (status) |