summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate <nate.diler@gmail.com>2007-07-16 15:45:13 +0000
committerSteve French <sfrench@us.ibm.com>2007-07-16 15:45:13 +0000
commit8803863a9051582081fb2bcca3a6dc8fddaed93c (patch)
treed3d8162fd0a77c6e3891edbfc89f365b428b03f9
parent4a379e6657ae2dd910f9f06d46bd7c05fbe9ed5c (diff)
downloadblackbird-op-linux-8803863a9051582081fb2bcca3a6dc8fddaed93c.tar.gz
blackbird-op-linux-8803863a9051582081fb2bcca3a6dc8fddaed93c.zip
[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>
-rw-r--r--fs/cifs/file.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index b67f1da020be..0620feaaea66 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -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 */
OpenPOWER on IntegriCloud