2014-02-21 10:21:45

by Gu Zheng

[permalink] [raw]
Subject: [PATCH] fs/direct-io: remove redundant comparison

The return value of bio_get_nr_vecs() can not bigger than BIO_MAX_PAGES,
so we can remove redundant the comparison between nr_pages and
BIO_MAX_PAGES.

Signed-off-by: Gu Zheng <[email protected]>
---
fs/direct-io.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/fs/direct-io.c b/fs/direct-io.c
index 160a548..6e6bff3 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -664,7 +664,6 @@ static inline int dio_new_bio(struct dio *dio, struct dio_submit *sdio,
goto out;
sector = start_sector << (sdio->blkbits - 9);
nr_pages = min(sdio->pages_in_io, bio_get_nr_vecs(map_bh->b_bdev));
- nr_pages = min(nr_pages, BIO_MAX_PAGES);
BUG_ON(nr_pages <= 0);
dio_bio_alloc(dio, sdio, map_bh->b_bdev, sector, nr_pages);
sdio->boundary = 0;
--
1.7.7


2014-02-21 15:03:44

by Jeff Moyer

[permalink] [raw]
Subject: Re: [PATCH] fs/direct-io: remove redundant comparison

Gu Zheng <[email protected]> writes:

> The return value of bio_get_nr_vecs() can not bigger than BIO_MAX_PAGES,
> so we can remove redundant the comparison between nr_pages and
> BIO_MAX_PAGES.

Yeah, commit f908ee94 (bio allocation failure due to bio_get_nr_vecs())
added that bounding.

Reviewed-by: Jeff Moyer <[email protected]>

>
> Signed-off-by: Gu Zheng <[email protected]>
> ---
> fs/direct-io.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/fs/direct-io.c b/fs/direct-io.c
> index 160a548..6e6bff3 100644
> --- a/fs/direct-io.c
> +++ b/fs/direct-io.c
> @@ -664,7 +664,6 @@ static inline int dio_new_bio(struct dio *dio, struct dio_submit *sdio,
> goto out;
> sector = start_sector << (sdio->blkbits - 9);
> nr_pages = min(sdio->pages_in_io, bio_get_nr_vecs(map_bh->b_bdev));
> - nr_pages = min(nr_pages, BIO_MAX_PAGES);
> BUG_ON(nr_pages <= 0);
> dio_bio_alloc(dio, sdio, map_bh->b_bdev, sector, nr_pages);
> sdio->boundary = 0;