From: Ming Lei <ming.lei@canonical.com>
To: Jens Axboe <axboe@fb.com>, linux-kernel@vger.kernel.org
Cc: linux-block@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Ming Lei <ming.lei@canonical.com>,
Keith Busch <keith.busch@intel.com>,
Kent Overstreet <kent.overstreet@gmail.com>,
Michal Hocko <mhocko@suse.com>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Tejun Heo <tj@kernel.org>, Mike Snitzer <snitzer@redhat.com>,
Jan Kara <jack@suse.cz>, Shaohua Li <shli@fb.com>
Subject: [PATCH v6 2/8] block: move two bvec structure into bvec.h
Date: Mon, 30 May 2016 21:34:30 +0800 [thread overview]
Message-ID: <1464615294-9946-3-git-send-email-ming.lei@canonical.com> (raw)
In-Reply-To: <1464615294-9946-1-git-send-email-ming.lei@canonical.com>
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.
Reviewed-by: Christoph Hellwig <hch@lst.de>
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 | 23 ++++++++++++++++++++++-
3 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/include/linux/bio.h b/include/linux/bio.h
index ed4bfb9..8555b90 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 77e5d81..dadc240 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..096efd2 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -20,7 +20,28 @@
#ifndef __LINUX_BVEC_ITER_H
#define __LINUX_BVEC_ITER_H
-#include <linux/blk_types.h>
+#include <linux/kernel.h>
+#include <linux/bug.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
next prev parent reply other threads:[~2016-05-30 13:36 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-30 13:34 [PATCH v6 0/8] block: prepare for multipage bvecs Ming Lei
2016-05-30 13:34 ` [PATCH v6 1/8] block: move bvec iterator into include/linux/bvec.h Ming Lei
2016-05-30 13:34 ` Ming Lei [this message]
2016-05-30 13:34 ` [PATCH v6 3/8] block: mark 1st parameter of bvec_iter_advance as const Ming Lei
2016-05-30 13:34 ` [PATCH v6 4/8] iov_iter: use bvec iterator to implement iterate_bvec() Ming Lei
2016-05-30 13:34 ` [PATCH v6 5/8] fs: xfs: replace BIO_MAX_SECTORS with BIO_MAX_PAGES Ming Lei
2016-06-01 13:48 ` Christoph Hellwig
2016-06-02 3:32 ` Ming Lei
2016-05-30 13:34 ` [PATCH v6 6/8] block: bio: remove BIO_MAX_SECTORS Ming Lei
2016-05-30 13:34 ` [PATCH v6 7/8] block: drbd: avoid to use BIO_MAX_SIZE Ming Lei
2016-05-30 13:34 ` [PATCH v6 8/8] block: mark BIO_MAX_SIZE as obsolete Ming Lei
2016-05-31 16:07 ` Jens Axboe
2016-05-31 15:53 ` [PATCH v6 0/8] block: prepare for multipage bvecs Mike Snitzer
2016-06-01 12:38 ` Ming Lei
2016-06-01 13:44 ` Christoph Hellwig
2016-06-01 13:51 ` Mike Snitzer
2016-06-01 14:05 ` Christoph Hellwig
2016-06-02 2:13 ` Ming Lei
2016-06-01 13:43 ` Christoph Hellwig
2016-06-01 13:53 ` Hannes Reinecke
2016-06-01 13:57 ` Mike Snitzer
2016-06-09 16:06 ` Jens Axboe
2016-06-10 2:44 ` Ming Lei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1464615294-9946-3-git-send-email-ming.lei@canonical.com \
--to=ming.lei@canonical.com \
--cc=axboe@fb.com \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=keith.busch@intel.com \
--cc=kent.overstreet@gmail.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhocko@suse.com \
--cc=shli@fb.com \
--cc=snitzer@redhat.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).