From 910bf0100897068fcc431c18bfda67c2c6d4c036 Mon Sep 17 00:00:00 2001 From: Eric Mei Date: Thu, 18 Mar 2010 12:47:19 -0700 Subject: [PATCH] b=21454 fix a miscalculation of ccc_io->cui_nrsegs. o=jay r=ericm r=wangdi --- lustre/lclient/lcommon_cl.c | 5 +---- lustre/llite/file.c | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lustre/lclient/lcommon_cl.c b/lustre/lclient/lcommon_cl.c index 1bb57b3..99b6790 100644 --- a/lustre/lclient/lcommon_cl.c +++ b/lustre/lclient/lcommon_cl.c @@ -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]; diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 2d864c1..355f4f3 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -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 -- 1.8.3.1