Whamcloud - gitweb
b=21454 fix a miscalculation of ccc_io->cui_nrsegs.
authorEric Mei <Eric.Mei@Sun.COM>
Thu, 18 Mar 2010 19:47:19 +0000 (12:47 -0700)
committerRobert Read <rread@sun.com>
Thu, 18 Mar 2010 19:47:19 +0000 (12:47 -0700)
o=jay
r=ericm
r=wangdi

lustre/lclient/lcommon_cl.c
lustre/llite/file.c

index 1bb57b3..99b6790 100644 (file)
@@ -749,12 +749,9 @@ void ccc_io_update_iov(const struct lu_env *env,
         size_t size = io->u.ci_rw.crw_count;
 
         cio->cui_iov_olen = 0;
-        if (!cl_is_normalio(env, io) || size == cio->cui_tot_count)
+        if (!cl_is_normalio(env, io))
                 return;
 
-        if (cio->cui_tot_nrsegs == 0)
-                cio->cui_tot_nrsegs =  cio->cui_nrsegs;
-
         for (i = 0; i < cio->cui_tot_nrsegs; i++) {
                 struct iovec *iv = &cio->cui_iov[i];
 
index 2d864c1..355f4f3 100644 (file)
@@ -841,6 +841,7 @@ static ssize_t ll_file_io_generic(const struct lu_env *env,
                 case IO_NORMAL:
                         cio->cui_iov = args->u.normal.via_iov;
                         cio->cui_nrsegs = args->u.normal.via_nrsegs;
+                        cio->cui_tot_nrsegs = cio->cui_nrsegs;
 #ifndef HAVE_FILE_WRITEV
                         cio->cui_iocb = args->u.normal.via_iocb;
 #endif