mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
fs: convert core functions to zero_user_page
It's very common for file systems to need to zero part or all of a page, the simplist way is just to use kmap_atomic() and memset(). There's actually a library function in include/linux/highmem.h that does exactly that, but it's confusingly named memclear_highpage_flush(), which is descriptive of *how* it does the work rather than what the *purpose* is. So this patchset renames the function to zero_user_page(), and calls it from the various places that currently open code it. This first patch introduces the new function call, and converts all the core kernel callsites, both the open-coded ones and the old memclear_highpage_flush() ones. Following this patch is a series of conversions for each file system individually, per AKPM, and finally a patch deprecating the old call. The diffstat below shows the entire patchset. [[email protected]: fix a few things] Signed-off-by: Nate Diller <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
38a23e311b
commit
01f2705daf
7 changed files with 42 additions and 81 deletions
|
|
@ -243,17 +243,13 @@ static int do_lo_send_aops(struct loop_device *lo, struct bio_vec *bvec,
|
|||
transfer_result = lo_do_transfer(lo, WRITE, page, offset,
|
||||
bvec->bv_page, bv_offs, size, IV);
|
||||
if (unlikely(transfer_result)) {
|
||||
char *kaddr;
|
||||
|
||||
/*
|
||||
* The transfer failed, but we still write the data to
|
||||
* keep prepare/commit calls balanced.
|
||||
*/
|
||||
printk(KERN_ERR "loop: transfer error block %llu\n",
|
||||
(unsigned long long)index);
|
||||
kaddr = kmap_atomic(page, KM_USER0);
|
||||
memset(kaddr + offset, 0, size);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
zero_user_page(page, offset, size, KM_USER0);
|
||||
}
|
||||
flush_dcache_page(page);
|
||||
ret = aops->commit_write(file, page, offset,
|
||||
|
|
|
|||
Loading…
Reference in a new issue