[CIFS] use simple_prepare_write to zero page data
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 <nate.diller@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
4a379e6657
commit
8803863a90
|
@ -1966,14 +1966,7 @@ static int cifs_prepare_write(struct file *file, struct page *page,
|
||||||
* We don't need to read data beyond the end of the file.
|
* We don't need to read data beyond the end of the file.
|
||||||
* zero it, and set the page uptodate
|
* zero it, and set the page uptodate
|
||||||
*/
|
*/
|
||||||
void *kaddr = kmap_atomic(page, KM_USER0);
|
simple_prepare_write(file, page, from, to);
|
||||||
|
|
||||||
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);
|
|
||||||
SetPageUptodate(page);
|
SetPageUptodate(page);
|
||||||
} else if ((file->f_flags & O_ACCMODE) != O_WRONLY) {
|
} else if ((file->f_flags & O_ACCMODE) != O_WRONLY) {
|
||||||
/* might as well read a page, it is fast enough */
|
/* might as well read a page, it is fast enough */
|
||||||
|
|
Loading…
Reference in a new issue