|
@@ -606,11 +606,8 @@ do_next_page:
|
|
ntfs_submit_bh_for_read(bh);
|
|
ntfs_submit_bh_for_read(bh);
|
|
*wait_bh++ = bh;
|
|
*wait_bh++ = bh;
|
|
} else {
|
|
} else {
|
|
- u8 *kaddr = kmap_atomic(page, KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh), 0,
|
|
|
|
- blocksize);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page, bh_offset(bh),
|
|
|
|
+ blocksize, KM_USER0);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -685,12 +682,9 @@ map_buffer_cached:
|
|
ntfs_submit_bh_for_read(bh);
|
|
ntfs_submit_bh_for_read(bh);
|
|
*wait_bh++ = bh;
|
|
*wait_bh++ = bh;
|
|
} else {
|
|
} else {
|
|
- u8 *kaddr = kmap_atomic(page,
|
|
|
|
- KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh),
|
|
|
|
- 0, blocksize);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page,
|
|
|
|
+ bh_offset(bh),
|
|
|
|
+ blocksize, KM_USER0);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -708,11 +702,8 @@ map_buffer_cached:
|
|
*/
|
|
*/
|
|
if (bh_end <= pos || bh_pos >= end) {
|
|
if (bh_end <= pos || bh_pos >= end) {
|
|
if (!buffer_uptodate(bh)) {
|
|
if (!buffer_uptodate(bh)) {
|
|
- u8 *kaddr = kmap_atomic(page, KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh), 0,
|
|
|
|
- blocksize);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page, bh_offset(bh),
|
|
|
|
+ blocksize, KM_USER0);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
}
|
|
}
|
|
mark_buffer_dirty(bh);
|
|
mark_buffer_dirty(bh);
|
|
@@ -751,10 +742,8 @@ map_buffer_cached:
|
|
if (!buffer_uptodate(bh))
|
|
if (!buffer_uptodate(bh))
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
} else if (!buffer_uptodate(bh)) {
|
|
} else if (!buffer_uptodate(bh)) {
|
|
- u8 *kaddr = kmap_atomic(page, KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh), 0, blocksize);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page, bh_offset(bh), blocksize,
|
|
|
|
+ KM_USER0);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
}
|
|
}
|
|
continue;
|
|
continue;
|
|
@@ -878,11 +867,8 @@ rl_not_mapped_enoent:
|
|
if (!buffer_uptodate(bh))
|
|
if (!buffer_uptodate(bh))
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
} else if (!buffer_uptodate(bh)) {
|
|
} else if (!buffer_uptodate(bh)) {
|
|
- u8 *kaddr = kmap_atomic(page, KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh), 0,
|
|
|
|
- blocksize);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page, bh_offset(bh),
|
|
|
|
+ blocksize, KM_USER0);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
}
|
|
}
|
|
continue;
|
|
continue;
|
|
@@ -1137,16 +1123,12 @@ rl_not_mapped_enoent:
|
|
* to zero the overflowing region.
|
|
* to zero the overflowing region.
|
|
*/
|
|
*/
|
|
if (unlikely(bh_pos + blocksize > initialized_size)) {
|
|
if (unlikely(bh_pos + blocksize > initialized_size)) {
|
|
- u8 *kaddr;
|
|
|
|
int ofs = 0;
|
|
int ofs = 0;
|
|
|
|
|
|
if (likely(bh_pos < initialized_size))
|
|
if (likely(bh_pos < initialized_size))
|
|
ofs = initialized_size - bh_pos;
|
|
ofs = initialized_size - bh_pos;
|
|
- kaddr = kmap_atomic(page, KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh) + ofs, 0,
|
|
|
|
- blocksize - ofs);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page, bh_offset(bh) + ofs,
|
|
|
|
+ blocksize - ofs, KM_USER0);
|
|
}
|
|
}
|
|
} else /* if (unlikely(!buffer_uptodate(bh))) */
|
|
} else /* if (unlikely(!buffer_uptodate(bh))) */
|
|
err = -EIO;
|
|
err = -EIO;
|
|
@@ -1286,11 +1268,8 @@ rl_not_mapped_enoent:
|
|
if (PageUptodate(page))
|
|
if (PageUptodate(page))
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
else {
|
|
else {
|
|
- u8 *kaddr = kmap_atomic(page, KM_USER0);
|
|
|
|
- memset(kaddr + bh_offset(bh), 0,
|
|
|
|
- blocksize);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
- flush_dcache_page(page);
|
|
|
|
|
|
+ zero_user_page(page, bh_offset(bh),
|
|
|
|
+ blocksize, KM_USER0);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1350,9 +1329,7 @@ err_out:
|
|
len = PAGE_CACHE_SIZE;
|
|
len = PAGE_CACHE_SIZE;
|
|
if (len > bytes)
|
|
if (len > bytes)
|
|
len = bytes;
|
|
len = bytes;
|
|
- kaddr = kmap_atomic(*pages, KM_USER0);
|
|
|
|
- memset(kaddr, 0, len);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
|
|
+ zero_user_page(*pages, 0, len, KM_USER0);
|
|
}
|
|
}
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1473,9 +1450,7 @@ err_out:
|
|
len = PAGE_CACHE_SIZE;
|
|
len = PAGE_CACHE_SIZE;
|
|
if (len > bytes)
|
|
if (len > bytes)
|
|
len = bytes;
|
|
len = bytes;
|
|
- kaddr = kmap_atomic(*pages, KM_USER0);
|
|
|
|
- memset(kaddr, 0, len);
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
|
|
|
+ zero_user_page(*pages, 0, len, KM_USER0);
|
|
}
|
|
}
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|