|
@@ -1329,6 +1329,10 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb)
|
|
opcode = IOCB_CMD_PWRITEV;
|
|
opcode = IOCB_CMD_PWRITEV;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* This matches the pread()/pwrite() logic */
|
|
|
|
+ if (iocb->ki_pos < 0)
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
do {
|
|
do {
|
|
ret = rw_op(iocb, &iocb->ki_iovec[iocb->ki_cur_seg],
|
|
ret = rw_op(iocb, &iocb->ki_iovec[iocb->ki_cur_seg],
|
|
iocb->ki_nr_segs - iocb->ki_cur_seg,
|
|
iocb->ki_nr_segs - iocb->ki_cur_seg,
|