Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1370252 > unrolled thread

[PATCH v2 2/8] block: move two bvec structure into bvec.h

Started byMing Lei <ming.lei@canonical.com>
First post2016-04-03 18:40 +0200
Last post2016-04-03 20:20 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v2 2/8] block: move two bvec structure into bvec.h Ming Lei <ming.lei@canonical.com> - 2016-04-03 18:40 +0200
    Re: [PATCH v2 2/8] block: move two bvec structure into bvec.h kbuild test robot <lkp@intel.com> - 2016-04-03 20:20 +0200

#1370252 — [PATCH v2 2/8] block: move two bvec structure into bvec.h

FromMing Lei <ming.lei@canonical.com>
Date2016-04-03 18:40 +0200
Subject[PATCH v2 2/8] block: move two bvec structure into bvec.h
Message-ID<rjTea-6bQ-9@gated-at.bofh.it>
This patch moves 'struct bio_vec' and 'struct bvec_iter'
into 'include/linux/bvec.h', then always include this header
into 'include/linux/blk_types.h'.

With this change, both 'struct bvec_iter' and bvec iterator
helpers don't depend on CONFIG_BLOCK any more, then we can
use bvec iterator to implement iterate_bvec(): lib/iov_iter.c.

Suggested-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 include/linux/bio.h       |  1 -
 include/linux/blk_types.h | 22 +---------------------
 include/linux/bvec.h      | 20 +++++++++++++++++++-
 3 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/include/linux/bio.h b/include/linux/bio.h
index 78cf737..7f998ac 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -31,7 +31,6 @@
 
 /* struct bio, bio_vec and BIO_* flags are defined in blk_types.h */
 #include <linux/blk_types.h>
-#include <linux/bvec.h>
 
 #define BIO_DEBUG
 
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 86a38ea..a8d8e1f 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -6,6 +6,7 @@
 #define __LINUX_BLK_TYPES_H
 
 #include <linux/types.h>
+#include <linux/bvec.h>
 
 struct bio_set;
 struct bio;
@@ -17,28 +18,7 @@ struct cgroup_subsys_state;
 typedef void (bio_end_io_t) (struct bio *);
 typedef void (bio_destructor_t) (struct bio *);
 
-/*
- * was unsigned short, but we might as well be ready for > 64kB I/O pages
- */
-struct bio_vec {
-	struct page	*bv_page;
-	unsigned int	bv_len;
-	unsigned int	bv_offset;
-};
-
 #ifdef CONFIG_BLOCK
-
-struct bvec_iter {
-	sector_t		bi_sector;	/* device address in 512 byte
-						   sectors */
-	unsigned int		bi_size;	/* residual I/O count */
-
-	unsigned int		bi_idx;		/* current index into bvl_vec */
-
-	unsigned int            bi_bvec_done;	/* number of bytes completed in
-						   current bvec */
-};
-
 /*
  * main unit of I/O for the block layer and lower layers (ie drivers and
  * stacking drivers)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index 29c459d..e111124 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -20,7 +20,25 @@
 #ifndef __LINUX_BVEC_ITER_H
 #define __LINUX_BVEC_ITER_H
 
-#include <linux/blk_types.h>
+/*
+ * was unsigned short, but we might as well be ready for > 64kB I/O pages
+ */
+struct bio_vec {
+	struct page	*bv_page;
+	unsigned int	bv_len;
+	unsigned int	bv_offset;
+};
+
+struct bvec_iter {
+	sector_t		bi_sector;	/* device address in 512 byte
+						   sectors */
+	unsigned int		bi_size;	/* residual I/O count */
+
+	unsigned int		bi_idx;		/* current index into bvl_vec */
+
+	unsigned int            bi_bvec_done;	/* number of bytes completed in
+						   current bvec */
+};
 
 /*
  * various member access, note that bio_data should of course not be used
-- 
1.9.1

[toc] | [next] | [standalone]


#1370269

Fromkbuild test robot <lkp@intel.com>
Date2016-04-03 20:20 +0200
Message-ID<rjUMW-7tf-13@gated-at.bofh.it>
In reply to#1370252

[Multipart message — attachments visible in raw view] — view raw

Hi Ming,

[auto build test ERROR on block/for-next]
[also build test ERROR on v4.6-rc2 next-20160401]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Ming-Lei/block-prepare-for-multipage-bvecs/20160404-003648
base:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
config: arm-at91_dt_defconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   In file included from include/linux/blk_types.h:9:0,
                    from arch/arm/include/asm/io.h:28,
                    from drivers/input/joydev.c:15:
   include/linux/bvec.h: In function 'bvec_iter_advance':
>> include/linux/bvec.h:69:2: error: implicit declaration of function 'WARN_ONCE' [-Werror=implicit-function-declaration]
     WARN_ONCE(bytes > iter->bi_size,
     ^
>> include/linux/bvec.h:73:3: error: implicit declaration of function 'min' [-Werror=implicit-function-declaration]
      unsigned len = min(bytes, bvec_iter_len(bv, *iter));
      ^
   cc1: some warnings being treated as errors

vim +/WARN_ONCE +69 include/linux/bvec.h

0d61ba15 Ming Lei 2016-04-04  63  	.bv_offset	= bvec_iter_offset((bvec), (iter)),	\
0d61ba15 Ming Lei 2016-04-04  64  })
0d61ba15 Ming Lei 2016-04-04  65  
0d61ba15 Ming Lei 2016-04-04  66  static inline void bvec_iter_advance(struct bio_vec *bv, struct bvec_iter *iter,
0d61ba15 Ming Lei 2016-04-04  67  				     unsigned bytes)
0d61ba15 Ming Lei 2016-04-04  68  {
0d61ba15 Ming Lei 2016-04-04 @69  	WARN_ONCE(bytes > iter->bi_size,
0d61ba15 Ming Lei 2016-04-04  70  		  "Attempted to advance past end of bvec iter\n");
0d61ba15 Ming Lei 2016-04-04  71  
0d61ba15 Ming Lei 2016-04-04  72  	while (bytes) {
0d61ba15 Ming Lei 2016-04-04 @73  		unsigned len = min(bytes, bvec_iter_len(bv, *iter));
0d61ba15 Ming Lei 2016-04-04  74  
0d61ba15 Ming Lei 2016-04-04  75  		bytes -= len;
0d61ba15 Ming Lei 2016-04-04  76  		iter->bi_size -= len;

:::::: The code at line 69 was first introduced by commit
:::::: 0d61ba15b7eb4a7478dae53947aaaf898a1bbf30 block: move bvec iterator into include/linux/bvec.h

:::::: TO: Ming Lei <ming.lei@canonical.com>
:::::: CC: 0day robot <fengguang.wu@intel.com>

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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web