]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: user zero_user_segment helper
authorSage Weil <sage@newdream.net>
Wed, 4 Mar 2009 20:08:21 +0000 (12:08 -0800)
committerSage Weil <sage@newdream.net>
Wed, 4 Mar 2009 20:08:21 +0000 (12:08 -0800)
src/kernel/addr.c

index f6e4119e538085339072e80907fe43bcb4a4cf0a..58709bb639ddf8e494a79c711f1711e21d348ba8 100644 (file)
@@ -941,10 +941,11 @@ static int ceph_write_end(struct file *file, struct address_space *mapping,
 
        /* zero the stale part of the page if we did a short copy */
        if (copied < len) {
-               void *kaddr = kmap_atomic(page, KM_USER0);
-               memset(kaddr + from + copied, 0, len - copied);
-               flush_dcache_page(page);
-               kunmap_atomic(kaddr, KM_USER0);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+               zero_user_segment(page, from+copied, len);
+#else
+               zero_user_page(page, from+copied, len-copied, KM_USER0);
+#endif
        }
 
        /* did file size increase? */