From: Nate Diller It's common for file systems to need to zero data on either side of a write, if a page is not Uptodate during prepare_write. It just so happens that simple_prepare_write() in libfs.c does exactly that, so we can avoid duplication and just call that function to zero page data. Signed-off-by: Nate Diller Cc: Steven French Signed-off-by: Andrew Morton --- fs/cifs/file.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff -puN fs/cifs/file.c~cifs-use-simple_prepare_write-to-zero-page-data fs/cifs/file.c --- a/fs/cifs/file.c~cifs-use-simple_prepare_write-to-zero-page-data +++ a/fs/cifs/file.c @@ -1955,14 +1955,7 @@ static int cifs_prepare_write(struct fil * We don't need to read data beyond the end of the file. * zero it, and set the page uptodate */ - void *kaddr = kmap_atomic(page, KM_USER0); - - if (from) - memset(kaddr, 0, from); - if (to < PAGE_CACHE_SIZE) - memset(kaddr + to, 0, PAGE_CACHE_SIZE - to); - flush_dcache_page(page); - kunmap_atomic(kaddr, KM_USER0); + simple_prepare_write(file, page, from, to); SetPageUptodate(page); } else if ((file->f_flags & O_ACCMODE) != O_WRONLY) { /* might as well read a page, it is fast enough */ _