Commit 8803863a authored by Nate's avatar Nate Committed by Steve French
Browse files

[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: default avatarNate Diller <nate.diller@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 4a379e66
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -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.
		 * 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 */