[v3,46/49] fs/btrfs: convert to bio_for_each_segment_all_sp()
diff mbox

Message ID 20170808084548.18963-47-ming.lei@redhat.com
State New
Headers show

Commit Message

Ming Lei Aug. 8, 2017, 8:45 a.m. UTC
Cc: Chris Mason <clm@fb.com>
Cc: Josef Bacik <jbacik@fb.com>
Cc: David Sterba <dsterba@suse.com>
Cc: linux-btrfs@vger.kernel.org
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 fs/btrfs/compression.c |  3 ++-
 fs/btrfs/disk-io.c     |  3 ++-
 fs/btrfs/extent_io.c   | 12 ++++++++----
 fs/btrfs/inode.c       |  6 ++++--
 fs/btrfs/raid56.c      |  1 +
 5 files changed, 17 insertions(+), 8 deletions(-)

Comments

Filipe Manana Aug. 8, 2017, 9 a.m. UTC | #1
On Tue, Aug 8, 2017 at 9:45 AM, Ming Lei <ming.lei@redhat.com> wrote:
> Cc: Chris Mason <clm@fb.com>
> Cc: Josef Bacik <jbacik@fb.com>
> Cc: David Sterba <dsterba@suse.com>
> Cc: linux-btrfs@vger.kernel.org
> Signed-off-by: Ming Lei <ming.lei@redhat.com>

Can you please add some meaningful changelog? E.g., why is this
conversion needed.

> ---
>  fs/btrfs/compression.c |  3 ++-
>  fs/btrfs/disk-io.c     |  3 ++-
>  fs/btrfs/extent_io.c   | 12 ++++++++----
>  fs/btrfs/inode.c       |  6 ++++--
>  fs/btrfs/raid56.c      |  1 +
>  5 files changed, 17 insertions(+), 8 deletions(-)
>
> diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
> index 28746588f228..55f251a83d0b 100644
> --- a/fs/btrfs/compression.c
> +++ b/fs/btrfs/compression.c
> @@ -147,13 +147,14 @@ static void end_compressed_bio_read(struct bio *bio)
>         } else {
>                 int i;
>                 struct bio_vec *bvec;
> +               struct bvec_iter_all bia;
>
>                 /*
>                  * we have verified the checksum already, set page
>                  * checked so the end_io handlers know about it
>                  */
>                 ASSERT(!bio_flagged(bio, BIO_CLONED));
> -               bio_for_each_segment_all(bvec, cb->orig_bio, i)
> +               bio_for_each_segment_all_sp(bvec, cb->orig_bio, i, bia)
>                         SetPageChecked(bvec->bv_page);
>
>                 bio_endio(cb->orig_bio);
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 080e2ebb8aa0..a9cd75e6383d 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -963,9 +963,10 @@ static blk_status_t btree_csum_one_bio(struct bio *bio)
>         struct bio_vec *bvec;
>         struct btrfs_root *root;
>         int i, ret = 0;
> +       struct bvec_iter_all bia;
>
>         ASSERT(!bio_flagged(bio, BIO_CLONED));
> -       bio_for_each_segment_all(bvec, bio, i) {
> +       bio_for_each_segment_all_sp(bvec, bio, i, bia) {
>                 root = BTRFS_I(bvec->bv_page->mapping->host)->root;
>                 ret = csum_dirty_buffer(root->fs_info, bvec->bv_page);
>                 if (ret)
> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
> index c8f6a8657bf2..4de9cfd1c385 100644
> --- a/fs/btrfs/extent_io.c
> +++ b/fs/btrfs/extent_io.c
> @@ -2359,8 +2359,9 @@ static unsigned int get_bio_pages(struct bio *bio)
>  {
>         unsigned i;
>         struct bio_vec *bv;
> +       struct bvec_iter_all bia;
>
> -       bio_for_each_segment_all(bv, bio, i)
> +       bio_for_each_segment_all_sp(bv, bio, i, bia)
>                 ;
>
>         return i;
> @@ -2463,9 +2464,10 @@ static void end_bio_extent_writepage(struct bio *bio)
>         u64 start;
>         u64 end;
>         int i;
> +       struct bvec_iter_all bia;
>
>         ASSERT(!bio_flagged(bio, BIO_CLONED));
> -       bio_for_each_segment_all(bvec, bio, i) {
> +       bio_for_each_segment_all_sp(bvec, bio, i, bia) {
>                 struct page *page = bvec->bv_page;
>                 struct inode *inode = page->mapping->host;
>                 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
> @@ -2534,9 +2536,10 @@ static void end_bio_extent_readpage(struct bio *bio)
>         int mirror;
>         int ret;
>         int i;
> +       struct bvec_iter_all bia;
>
>         ASSERT(!bio_flagged(bio, BIO_CLONED));
> -       bio_for_each_segment_all(bvec, bio, i) {
> +       bio_for_each_segment_all_sp(bvec, bio, i, bia) {
>                 struct page *page = bvec->bv_page;
>                 struct inode *inode = page->mapping->host;
>                 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
> @@ -3693,9 +3696,10 @@ static void end_bio_extent_buffer_writepage(struct bio *bio)
>         struct bio_vec *bvec;
>         struct extent_buffer *eb;
>         int i, done;
> +       struct bvec_iter_all bia;
>
>         ASSERT(!bio_flagged(bio, BIO_CLONED));
> -       bio_for_each_segment_all(bvec, bio, i) {
> +       bio_for_each_segment_all_sp(bvec, bio, i, bia) {
>                 struct page *page = bvec->bv_page;
>
>                 eb = (struct extent_buffer *)page->private;
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 084ed99dd308..eeb2ff662ec4 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -8047,6 +8047,7 @@ static void btrfs_retry_endio_nocsum(struct bio *bio)
>         struct bio_vec *bvec;
>         struct extent_io_tree *io_tree, *failure_tree;
>         int i;
> +       struct bvec_iter_all bia;
>
>         if (bio->bi_status)
>                 goto end;
> @@ -8064,7 +8065,7 @@ static void btrfs_retry_endio_nocsum(struct bio *bio)
>
>         done->uptodate = 1;
>         ASSERT(!bio_flagged(bio, BIO_CLONED));
> -       bio_for_each_segment_all(bvec, bio, i)
> +       bio_for_each_segment_all_sp(bvec, bio, i, bia)
>                 clean_io_failure(BTRFS_I(inode)->root->fs_info, failure_tree,
>                                  io_tree, done->start, bvec->bv_page,
>                                  btrfs_ino(BTRFS_I(inode)), 0);
> @@ -8143,6 +8144,7 @@ static void btrfs_retry_endio(struct bio *bio)
>         int uptodate;
>         int ret;
>         int i;
> +       struct bvec_iter_all bia;
>
>         if (bio->bi_status)
>                 goto end;
> @@ -8162,7 +8164,7 @@ static void btrfs_retry_endio(struct bio *bio)
>         failure_tree = &BTRFS_I(inode)->io_failure_tree;
>
>         ASSERT(!bio_flagged(bio, BIO_CLONED));
> -       bio_for_each_segment_all(bvec, bio, i) {
> +       bio_for_each_segment_all_sp(bvec, bio, i, bia) {
>                 ret = __readpage_endio_check(inode, io_bio, i, bvec->bv_page,
>                                              bvec->bv_offset, done->start,
>                                              bvec->bv_len);
> diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
> index 208638384cd2..9247226a2efd 100644
> --- a/fs/btrfs/raid56.c
> +++ b/fs/btrfs/raid56.c
> @@ -1365,6 +1365,7 @@ static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio,
>         u64 logical = bio->bi_iter.bi_sector;
>         u64 stripe_start;
>         int i;
> +       struct bvec_iter_all bia;

Unused variable.

Thanks.

>
>         logical <<= 9;
>
> --
> 2.9.4
>
kbuild test robot Aug. 11, 2017, 4:54 p.m. UTC | #2
Hi Ming,

[auto build test WARNING on linus/master]
[also build test WARNING on v4.13-rc4 next-20170810]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Ming-Lei/block-support-multipage-bvec/20170810-110521
config: x86_64-randconfig-b0-08112217 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   fs/btrfs/raid56.c: In function 'find_logical_bio_stripe':
>> fs/btrfs/raid56.c:1368: warning: unused variable 'bia'

vim +/bia +1368 fs/btrfs/raid56.c

  1356	
  1357	/*
  1358	 * helper to find the stripe number for a given
  1359	 * bio (before mapping).  Used to figure out which stripe has
  1360	 * failed.  This looks up based on logical block numbers.
  1361	 */
  1362	static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio,
  1363					   struct bio *bio)
  1364	{
  1365		u64 logical = bio->bi_iter.bi_sector;
  1366		u64 stripe_start;
  1367		int i;
> 1368		struct bvec_iter_all bia;
  1369	
  1370		logical <<= 9;
  1371	
  1372		for (i = 0; i < rbio->nr_data; i++) {
  1373			stripe_start = rbio->bbio->raid_map[i];
  1374			if (logical >= stripe_start &&
  1375			    logical < stripe_start + rbio->stripe_len) {
  1376				return i;
  1377			}
  1378		}
  1379		return -1;
  1380	}
  1381	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Patch
diff mbox

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 28746588f228..55f251a83d0b 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -147,13 +147,14 @@  static void end_compressed_bio_read(struct bio *bio)
 	} else {
 		int i;
 		struct bio_vec *bvec;
+		struct bvec_iter_all bia;
 
 		/*
 		 * we have verified the checksum already, set page
 		 * checked so the end_io handlers know about it
 		 */
 		ASSERT(!bio_flagged(bio, BIO_CLONED));
-		bio_for_each_segment_all(bvec, cb->orig_bio, i)
+		bio_for_each_segment_all_sp(bvec, cb->orig_bio, i, bia)
 			SetPageChecked(bvec->bv_page);
 
 		bio_endio(cb->orig_bio);
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 080e2ebb8aa0..a9cd75e6383d 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -963,9 +963,10 @@  static blk_status_t btree_csum_one_bio(struct bio *bio)
 	struct bio_vec *bvec;
 	struct btrfs_root *root;
 	int i, ret = 0;
+	struct bvec_iter_all bia;
 
 	ASSERT(!bio_flagged(bio, BIO_CLONED));
-	bio_for_each_segment_all(bvec, bio, i) {
+	bio_for_each_segment_all_sp(bvec, bio, i, bia) {
 		root = BTRFS_I(bvec->bv_page->mapping->host)->root;
 		ret = csum_dirty_buffer(root->fs_info, bvec->bv_page);
 		if (ret)
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index c8f6a8657bf2..4de9cfd1c385 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -2359,8 +2359,9 @@  static unsigned int get_bio_pages(struct bio *bio)
 {
 	unsigned i;
 	struct bio_vec *bv;
+	struct bvec_iter_all bia;
 
-	bio_for_each_segment_all(bv, bio, i)
+	bio_for_each_segment_all_sp(bv, bio, i, bia)
 		;
 
 	return i;
@@ -2463,9 +2464,10 @@  static void end_bio_extent_writepage(struct bio *bio)
 	u64 start;
 	u64 end;
 	int i;
+	struct bvec_iter_all bia;
 
 	ASSERT(!bio_flagged(bio, BIO_CLONED));
-	bio_for_each_segment_all(bvec, bio, i) {
+	bio_for_each_segment_all_sp(bvec, bio, i, bia) {
 		struct page *page = bvec->bv_page;
 		struct inode *inode = page->mapping->host;
 		struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
@@ -2534,9 +2536,10 @@  static void end_bio_extent_readpage(struct bio *bio)
 	int mirror;
 	int ret;
 	int i;
+	struct bvec_iter_all bia;
 
 	ASSERT(!bio_flagged(bio, BIO_CLONED));
-	bio_for_each_segment_all(bvec, bio, i) {
+	bio_for_each_segment_all_sp(bvec, bio, i, bia) {
 		struct page *page = bvec->bv_page;
 		struct inode *inode = page->mapping->host;
 		struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
@@ -3693,9 +3696,10 @@  static void end_bio_extent_buffer_writepage(struct bio *bio)
 	struct bio_vec *bvec;
 	struct extent_buffer *eb;
 	int i, done;
+	struct bvec_iter_all bia;
 
 	ASSERT(!bio_flagged(bio, BIO_CLONED));
-	bio_for_each_segment_all(bvec, bio, i) {
+	bio_for_each_segment_all_sp(bvec, bio, i, bia) {
 		struct page *page = bvec->bv_page;
 
 		eb = (struct extent_buffer *)page->private;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 084ed99dd308..eeb2ff662ec4 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -8047,6 +8047,7 @@  static void btrfs_retry_endio_nocsum(struct bio *bio)
 	struct bio_vec *bvec;
 	struct extent_io_tree *io_tree, *failure_tree;
 	int i;
+	struct bvec_iter_all bia;
 
 	if (bio->bi_status)
 		goto end;
@@ -8064,7 +8065,7 @@  static void btrfs_retry_endio_nocsum(struct bio *bio)
 
 	done->uptodate = 1;
 	ASSERT(!bio_flagged(bio, BIO_CLONED));
-	bio_for_each_segment_all(bvec, bio, i)
+	bio_for_each_segment_all_sp(bvec, bio, i, bia)
 		clean_io_failure(BTRFS_I(inode)->root->fs_info, failure_tree,
 				 io_tree, done->start, bvec->bv_page,
 				 btrfs_ino(BTRFS_I(inode)), 0);
@@ -8143,6 +8144,7 @@  static void btrfs_retry_endio(struct bio *bio)
 	int uptodate;
 	int ret;
 	int i;
+	struct bvec_iter_all bia;
 
 	if (bio->bi_status)
 		goto end;
@@ -8162,7 +8164,7 @@  static void btrfs_retry_endio(struct bio *bio)
 	failure_tree = &BTRFS_I(inode)->io_failure_tree;
 
 	ASSERT(!bio_flagged(bio, BIO_CLONED));
-	bio_for_each_segment_all(bvec, bio, i) {
+	bio_for_each_segment_all_sp(bvec, bio, i, bia) {
 		ret = __readpage_endio_check(inode, io_bio, i, bvec->bv_page,
 					     bvec->bv_offset, done->start,
 					     bvec->bv_len);
diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
index 208638384cd2..9247226a2efd 100644
--- a/fs/btrfs/raid56.c
+++ b/fs/btrfs/raid56.c
@@ -1365,6 +1365,7 @@  static int find_logical_bio_stripe(struct btrfs_raid_bio *rbio,
 	u64 logical = bio->bi_iter.bi_sector;
 	u64 stripe_start;
 	int i;
+	struct bvec_iter_all bia;
 
 	logical <<= 9;