bio: switch to iov_iter_{npages,alignment}
PATCH 1/1 bio: switch to iov_iter_{npages,alignment}
Signed-off-by Ming Lin <[email protected]>
--- block/bio.c | 45 +++++++-------------------------------------- 1 file changed, 7 insertions(+), 38 deletions(-)
block/bio.c +7 -38
@@ -1158,29 +1158,14 @@ struct bio *bio_copy_user_iov(struct request_queue *q,struct bio_map_data *bmd;struct page *page;struct bio *bio; -int i, ret; +int uninitialized_var (i ), ret;int nr_pages =0 ;unsigned int len = iter->count;unsigned int offset = map_data ? map_data->offset & ~PAGE_MASK :0 ; -for (i =0 ; i < iter->nr_segs; i++) { -unsigned long uaddr; -unsigned long end; -unsigned long start; - - uaddr = (unsigned long ) iter->iov[i].iov_base; - end = (uaddr + iter->iov[i].iov_len +PAGE_SIZE -1 ) - >>PAGE_SHIFT ; - start = uaddr >>PAGE_SHIFT ; - -/* -* Overflow, abort -*/ -if (end < start) -return ERR_PTR (-EINVAL ); - - nr_pages += end - start; - } + nr_pages =iov_iter_npages (iter,INT_MAX ); +if (!nr_pages) +return ERR_PTR (-EINVAL );if (offset) nr_pages++;
@@ -1292,26 +1277,10 @@ struct bio *bio_map_user_iov(struct request_queue *q,struct iov_iter i;struct iovec iov; -iov_for_each (iov, i, *iter) { -unsigned long uaddr = (unsigned long ) iov.iov_base; -unsigned long len = iov.iov_len; -unsigned long end = (uaddr + len +PAGE_SIZE -1 ) >>PAGE_SHIFT ; -unsigned long start = uaddr >>PAGE_SHIFT ; - -/* -* Overflow, abort -*/ -if (end < start) -return ERR_PTR (-EINVAL ); - - nr_pages += end - start; -/* -* buffer must be aligned to at least hardsector size for now -*/ -if (uaddr &queue_dma_alignment (q)) -return ERR_PTR (-EINVAL ); - } +if (iov_iter_alignment (iter) &queue_dma_alignment (q)) +return ERR_PTR (-EINVAL ); + nr_pages =iov_iter_npages (iter,INT_MAX );if (!nr_pages)return ERR_PTR (-EINVAL );
Signature · 1 line
1.9.1
Quoted 1 line · Ming Lin
Signed-off-by Ming Lin <[email protected]>
Looks good,
Reviewed-by Christoph Hellwig <[email protected]>
Quoted 6 lines · Christoph Hellwig
Quoted 1 line · Ming Lin
Signed-off-by Ming Lin <[email protected]>Looks good,
Reviewed-by Christoph Hellwig <[email protected]>
Hi Jens,
Would you like to take this?
Thanks.