cache bypass: fix afs_bypass_copy_page memcpy oops
authorMarc Dionne <marc.c.dionne@gmail.com>
Wed, 5 Dec 2012 23:23:34 +0000 (18:23 -0500)
committerDerrick Brashear <shadow@your-file-system.com>
Thu, 6 Dec 2012 16:00:53 +0000 (08:00 -0800)
The two memory copy cases were inverted when the code was
refactored, causing an oops when cache bypass is enabled.

Change-Id: I30a9a51b7280883fb9b7bbeebbabe464c139b714
Reviewed-on: http://gerrit.openafs.org/8617
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

src/afs/afs_bypasscache.c

index 666a83f..6988398 100644 (file)
@@ -320,9 +320,9 @@ afs_bypass_copy_page(bypass_page_t pp, int pageoff, struct iovec *rxiov,
     int dolen;
 
     if (partial)
-       dolen = rxiov[iovno].iov_len - iovoff;
-    else
        dolen = auio->uio_iov[curiov].iov_len - pageoff;
+    else
+       dolen = rxiov[iovno].iov_len - iovoff;
 
 #if !defined(UKERNEL)
 # if defined(KMAP_ATOMIC_TAKES_NO_KM_TYPE)