struct cl_io_range *range = &io->u.ci_rw.rw_range;
loff_t start = range->cir_pos;
loff_t next;
- unsigned long ssize;
int index;
LASSERT(io->ci_type == CIT_READ || io->ci_type == CIT_WRITE);
lse = lov_lse(lio->lis_object, index);
- ssize = lse->lsme_stripe_size;
- lov_do_div64(start, ssize);
- next = (start + 1) * ssize;
- if (next <= start * ssize)
- next = ~0ull;
+ next = MAX_LFS_FILESIZE;
+ if (lse->lsme_stripe_count > 1) {
+ unsigned long ssize = lse->lsme_stripe_size;
+
+ lov_do_div64(start, ssize);
+ next = (start + 1) * ssize;
+ if (next <= start * ssize)
+ next = MAX_LFS_FILESIZE;
+ }
LASSERTF(range->cir_pos >= lse->lsme_extent.e_start,
"pos %lld, [%lld, %lld)\n", range->cir_pos,