All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ming Lei <ming.lei@redhat.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: Mike Snitzer <snitzer@redhat.com>,
	linux-mm@kvack.org, dm-devel@redhat.com,
	Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>,
	"Darrick J . Wong" <darrick.wong@oracle.com>,
	Omar Sandoval <osandov@fb.com>,
	cluster-devel@redhat.com, linux-ext4@vger.kernel.org,
	Kent Overstreet <kent.overstreet@gmail.com>,
	Boaz Harrosh <ooo@electrozaur.com>,
	Gao Xiang <gaoxiang25@huawei.com>, Coly Li <colyli@suse.de>,
	linux-raid@vger.kernel.org, linux-bcache@vger.kernel.org,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	David Sterba <dsterba@suse.com>, Ming Lei <ming.lei@redhat.com>,
	linux-block@vger.kernel.org, Theodore Ts'o <tytso@mit.edu>,
	linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org
Subject: [PATCH V15 04/18] block: introduce multi-page bvec helpers
Date: Fri, 15 Feb 2019 19:13:10 +0800	[thread overview]
Message-ID: <20190215111324.30129-5-ming.lei@redhat.com> (raw)
In-Reply-To: <20190215111324.30129-1-ming.lei@redhat.com>

This patch introduces helpers of 'mp_bvec_iter_*' for multi-page bvec
support.

The introduced helpers treate one bvec as real multi-page segment,
which may include more than one pages.

The existed helpers of bvec_iter_* are interfaces for supporting current
bvec iterator which is thought as single-page by drivers, fs, dm and
etc. These introduced helpers will build single-page bvec in flight, so
this way won't break current bio/bvec users, which needn't any change.

Follows some multi-page bvec background:

- bvecs stored in bio->bi_io_vec is always multi-page style

- bvec(struct bio_vec) represents one physically contiguous I/O
  buffer, now the buffer may include more than one page after
  multi-page bvec is supported, and all these pages represented
  by one bvec is physically contiguous. Before multi-page bvec
  support, at most one page is included in one bvec, we call it
  single-page bvec.

- .bv_page of the bvec points to the 1st page in the multi-page bvec

- .bv_offset of the bvec is the offset of the buffer in the bvec

The effect on the current drivers/filesystem/dm/bcache/...:

- almost everyone supposes that one bvec only includes one single
  page, so we keep the sp interface not changed, for example,
  bio_for_each_segment() still returns single-page bvec

- bio_for_each_segment_all() will return single-page bvec too

- during iterating, iterator variable(struct bvec_iter) is always
  updated in multi-page bvec style, and bvec_iter_advance() is kept
  not changed

- returned(copied) single-page bvec is built in flight by bvec
  helpers from the stored multi-page bvec

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 include/linux/bvec.h | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index ba0ae40e77c9..0ae729b1c9fe 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -23,6 +23,7 @@
 #include <linux/kernel.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
+#include <linux/mm.h>
 
 /*
  * was unsigned short, but we might as well be ready for > 64kB I/O pages
@@ -50,16 +51,39 @@ struct bvec_iter {
  */
 #define __bvec_iter_bvec(bvec, iter)	(&(bvec)[(iter).bi_idx])
 
-#define bvec_iter_page(bvec, iter)				\
+/* multi-page (mp_bvec) helpers */
+#define mp_bvec_iter_page(bvec, iter)				\
 	(__bvec_iter_bvec((bvec), (iter))->bv_page)
 
-#define bvec_iter_len(bvec, iter)				\
+#define mp_bvec_iter_len(bvec, iter)				\
 	min((iter).bi_size,					\
 	    __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
 
-#define bvec_iter_offset(bvec, iter)				\
+#define mp_bvec_iter_offset(bvec, iter)				\
 	(__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
 
+#define mp_bvec_iter_page_idx(bvec, iter)			\
+	(mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
+
+#define mp_bvec_iter_bvec(bvec, iter)				\
+((struct bio_vec) {						\
+	.bv_page	= mp_bvec_iter_page((bvec), (iter)),	\
+	.bv_len		= mp_bvec_iter_len((bvec), (iter)),	\
+	.bv_offset	= mp_bvec_iter_offset((bvec), (iter)),	\
+})
+
+/* For building single-page bvec in flight */
+ #define bvec_iter_offset(bvec, iter)				\
+	(mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
+
+#define bvec_iter_len(bvec, iter)				\
+	min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),		\
+	      PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
+
+#define bvec_iter_page(bvec, iter)				\
+	nth_page(mp_bvec_iter_page((bvec), (iter)),		\
+		 mp_bvec_iter_page_idx((bvec), (iter)))
+
 #define bvec_iter_bvec(bvec, iter)				\
 ((struct bio_vec) {						\
 	.bv_page	= bvec_iter_page((bvec), (iter)),	\
-- 
2.9.5

WARNING: multiple messages have this Message-ID (diff)
From: Ming Lei <ming.lei@redhat.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, Theodore Ts'o <tytso@mit.edu>,
	Omar Sandoval <osandov@fb.com>, Sagi Grimberg <sagi@grimberg.me>,
	Dave Chinner <dchinner@redhat.com>,
	Kent Overstreet <kent.overstreet@gmail.com>,
	Mike Snitzer <snitzer@redhat.com>,
	dm-devel@redhat.com, Alexander Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, linux-raid@vger.kernel.org,
	David Sterba <dsterba@suse.com>,
	linux-btrfs@vger.kernel.org,
	"Darrick J . Wong" <darrick.wong@oracle.com>,
	linux-xfs@vger.kernel.org, Gao Xiang <gaoxiang25@huawei.com>,
	Christoph Hellwig <hch@lst.de>,
	linux-ext4@vger.kernel.org, Coly Li <colyli@suse.de>,
	linux-bcache@vger.kernel.org, Boaz Harrosh <ooo@electrozaur.com>,
	Bob Peterson <rpeterso@redhat.com>,
	cluster-devel@redhat.com, Ming Lei <ming.lei@redhat.com>
Subject: [PATCH V15 04/18] block: introduce multi-page bvec helpers
Date: Fri, 15 Feb 2019 19:13:10 +0800	[thread overview]
Message-ID: <20190215111324.30129-5-ming.lei@redhat.com> (raw)
In-Reply-To: <20190215111324.30129-1-ming.lei@redhat.com>

This patch introduces helpers of 'mp_bvec_iter_*' for multi-page bvec
support.

The introduced helpers treate one bvec as real multi-page segment,
which may include more than one pages.

The existed helpers of bvec_iter_* are interfaces for supporting current
bvec iterator which is thought as single-page by drivers, fs, dm and
etc. These introduced helpers will build single-page bvec in flight, so
this way won't break current bio/bvec users, which needn't any change.

Follows some multi-page bvec background:

- bvecs stored in bio->bi_io_vec is always multi-page style

- bvec(struct bio_vec) represents one physically contiguous I/O
  buffer, now the buffer may include more than one page after
  multi-page bvec is supported, and all these pages represented
  by one bvec is physically contiguous. Before multi-page bvec
  support, at most one page is included in one bvec, we call it
  single-page bvec.

- .bv_page of the bvec points to the 1st page in the multi-page bvec

- .bv_offset of the bvec is the offset of the buffer in the bvec

The effect on the current drivers/filesystem/dm/bcache/...:

- almost everyone supposes that one bvec only includes one single
  page, so we keep the sp interface not changed, for example,
  bio_for_each_segment() still returns single-page bvec

- bio_for_each_segment_all() will return single-page bvec too

- during iterating, iterator variable(struct bvec_iter) is always
  updated in multi-page bvec style, and bvec_iter_advance() is kept
  not changed

- returned(copied) single-page bvec is built in flight by bvec
  helpers from the stored multi-page bvec

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 include/linux/bvec.h | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index ba0ae40e77c9..0ae729b1c9fe 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -23,6 +23,7 @@
 #include <linux/kernel.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
+#include <linux/mm.h>
 
 /*
  * was unsigned short, but we might as well be ready for > 64kB I/O pages
@@ -50,16 +51,39 @@ struct bvec_iter {
  */
 #define __bvec_iter_bvec(bvec, iter)	(&(bvec)[(iter).bi_idx])
 
-#define bvec_iter_page(bvec, iter)				\
+/* multi-page (mp_bvec) helpers */
+#define mp_bvec_iter_page(bvec, iter)				\
 	(__bvec_iter_bvec((bvec), (iter))->bv_page)
 
-#define bvec_iter_len(bvec, iter)				\
+#define mp_bvec_iter_len(bvec, iter)				\
 	min((iter).bi_size,					\
 	    __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
 
-#define bvec_iter_offset(bvec, iter)				\
+#define mp_bvec_iter_offset(bvec, iter)				\
 	(__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
 
+#define mp_bvec_iter_page_idx(bvec, iter)			\
+	(mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
+
+#define mp_bvec_iter_bvec(bvec, iter)				\
+((struct bio_vec) {						\
+	.bv_page	= mp_bvec_iter_page((bvec), (iter)),	\
+	.bv_len		= mp_bvec_iter_len((bvec), (iter)),	\
+	.bv_offset	= mp_bvec_iter_offset((bvec), (iter)),	\
+})
+
+/* For building single-page bvec in flight */
+ #define bvec_iter_offset(bvec, iter)				\
+	(mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
+
+#define bvec_iter_len(bvec, iter)				\
+	min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),		\
+	      PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
+
+#define bvec_iter_page(bvec, iter)				\
+	nth_page(mp_bvec_iter_page((bvec), (iter)),		\
+		 mp_bvec_iter_page_idx((bvec), (iter)))
+
 #define bvec_iter_bvec(bvec, iter)				\
 ((struct bio_vec) {						\
 	.bv_page	= bvec_iter_page((bvec), (iter)),	\
-- 
2.9.5


WARNING: multiple messages have this Message-ID (diff)
From: Ming Lei <ming.lei@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH V15 04/18] block: introduce multi-page bvec helpers
Date: Fri, 15 Feb 2019 19:13:10 +0800	[thread overview]
Message-ID: <20190215111324.30129-5-ming.lei@redhat.com> (raw)
In-Reply-To: <20190215111324.30129-1-ming.lei@redhat.com>

This patch introduces helpers of 'mp_bvec_iter_*' for multi-page bvec
support.

The introduced helpers treate one bvec as real multi-page segment,
which may include more than one pages.

The existed helpers of bvec_iter_* are interfaces for supporting current
bvec iterator which is thought as single-page by drivers, fs, dm and
etc. These introduced helpers will build single-page bvec in flight, so
this way won't break current bio/bvec users, which needn't any change.

Follows some multi-page bvec background:

- bvecs stored in bio->bi_io_vec is always multi-page style

- bvec(struct bio_vec) represents one physically contiguous I/O
  buffer, now the buffer may include more than one page after
  multi-page bvec is supported, and all these pages represented
  by one bvec is physically contiguous. Before multi-page bvec
  support, at most one page is included in one bvec, we call it
  single-page bvec.

- .bv_page of the bvec points to the 1st page in the multi-page bvec

- .bv_offset of the bvec is the offset of the buffer in the bvec

The effect on the current drivers/filesystem/dm/bcache/...:

- almost everyone supposes that one bvec only includes one single
  page, so we keep the sp interface not changed, for example,
  bio_for_each_segment() still returns single-page bvec

- bio_for_each_segment_all() will return single-page bvec too

- during iterating, iterator variable(struct bvec_iter) is always
  updated in multi-page bvec style, and bvec_iter_advance() is kept
  not changed

- returned(copied) single-page bvec is built in flight by bvec
  helpers from the stored multi-page bvec

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 include/linux/bvec.h | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index ba0ae40e77c9..0ae729b1c9fe 100644
--- a/include/linux/bvec.h
+++ b/include/linux/bvec.h
@@ -23,6 +23,7 @@
 #include <linux/kernel.h>
 #include <linux/bug.h>
 #include <linux/errno.h>
+#include <linux/mm.h>
 
 /*
  * was unsigned short, but we might as well be ready for > 64kB I/O pages
@@ -50,16 +51,39 @@ struct bvec_iter {
  */
 #define __bvec_iter_bvec(bvec, iter)	(&(bvec)[(iter).bi_idx])
 
-#define bvec_iter_page(bvec, iter)				\
+/* multi-page (mp_bvec) helpers */
+#define mp_bvec_iter_page(bvec, iter)				\
 	(__bvec_iter_bvec((bvec), (iter))->bv_page)
 
-#define bvec_iter_len(bvec, iter)				\
+#define mp_bvec_iter_len(bvec, iter)				\
 	min((iter).bi_size,					\
 	    __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
 
-#define bvec_iter_offset(bvec, iter)				\
+#define mp_bvec_iter_offset(bvec, iter)				\
 	(__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
 
+#define mp_bvec_iter_page_idx(bvec, iter)			\
+	(mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
+
+#define mp_bvec_iter_bvec(bvec, iter)				\
+((struct bio_vec) {						\
+	.bv_page	= mp_bvec_iter_page((bvec), (iter)),	\
+	.bv_len		= mp_bvec_iter_len((bvec), (iter)),	\
+	.bv_offset	= mp_bvec_iter_offset((bvec), (iter)),	\
+})
+
+/* For building single-page bvec in flight */
+ #define bvec_iter_offset(bvec, iter)				\
+	(mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
+
+#define bvec_iter_len(bvec, iter)				\
+	min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),		\
+	      PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
+
+#define bvec_iter_page(bvec, iter)				\
+	nth_page(mp_bvec_iter_page((bvec), (iter)),		\
+		 mp_bvec_iter_page_idx((bvec), (iter)))
+
 #define bvec_iter_bvec(bvec, iter)				\
 ((struct bio_vec) {						\
 	.bv_page	= bvec_iter_page((bvec), (iter)),	\
-- 
2.9.5



  parent reply	other threads:[~2019-02-15 11:13 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-15 11:13 [PATCH V15 00/18] block: support multi-page bvec Ming Lei
2019-02-15 11:13 ` [Cluster-devel] " Ming Lei
2019-02-15 11:13 ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 01/18] btrfs: look at bi_size for repair decisions Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 02/18] block: don't use bio->bi_vcnt to figure out segment number Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 03/18] block: remove bvec_iter_rewind() Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` Ming Lei [this message]
2019-02-15 11:13   ` [Cluster-devel] [PATCH V15 04/18] block: introduce multi-page bvec helpers Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 05/18] block: introduce bio_for_each_bvec() and rq_for_each_bvec() Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 06/18] block: use bio_for_each_bvec() to compute multi-page bvec count Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 07/18] block: use bio_for_each_bvec() to map sg Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 08/18] block: introduce mp_bvec_last_segment() Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 09/18] fs/buffer.c: use bvec iterator to truncate the bio Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 10/18] btrfs: use mp_bvec_last_segment to get bio's last page Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 11/18] block: loop: pass multi-page bvec to iov_iter Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 12/18] bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages() Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 13/18] block: allow bio_for_each_segment_all() to iterate over multi-page bvec Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 14/18] block: enable multipage bvecs Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
     [not found]   ` <CGME20190221084301eucas1p11e8841a62b4b1da3cccca661b6f4c29d@eucas1p1.samsung.com>
2019-02-21  8:42     ` Marek Szyprowski
2019-02-21  8:42       ` [Cluster-devel] " Marek Szyprowski
2019-02-21  8:42       ` Marek Szyprowski
2019-02-21  9:57       ` Ming Lei
2019-02-21  9:57         ` [Cluster-devel] " Ming Lei
2019-02-21  9:57         ` Ming Lei
2019-02-21 10:08         ` Marek Szyprowski
2019-02-21 10:08           ` [Cluster-devel] " Marek Szyprowski
2019-02-21 10:08           ` Marek Szyprowski
2019-02-21 10:16           ` Ming Lei
2019-02-21 10:16             ` [Cluster-devel] " Ming Lei
2019-02-21 10:16             ` Ming Lei
2019-02-21 10:22             ` Marek Szyprowski
2019-02-21 10:22               ` [Cluster-devel] " Marek Szyprowski
2019-02-21 10:22               ` Marek Szyprowski
2019-02-21 10:38               ` Ming Lei
2019-02-21 10:38                 ` [Cluster-devel] " Ming Lei
2019-02-21 10:38                 ` Ming Lei
2019-02-21 11:42                 ` Marek Szyprowski
2019-02-21 11:42                   ` [Cluster-devel] " Marek Szyprowski
2019-02-21 11:42                   ` Marek Szyprowski
2019-02-27 20:47       ` Jon Hunter
2019-02-27 20:47         ` [Cluster-devel] " Jon Hunter
2019-02-27 20:47         ` Jon Hunter
2019-02-27 20:47         ` Jon Hunter
2019-02-27 23:29         ` Ming Lei
2019-02-27 23:29           ` [Cluster-devel] " Ming Lei
2019-02-27 23:29           ` Ming Lei
2019-02-28  7:51           ` Marek Szyprowski
2019-02-28  7:51             ` [Cluster-devel] " Marek Szyprowski
2019-02-28  7:51             ` Marek Szyprowski
2019-02-28 12:39             ` Jon Hunter
2019-02-28 12:39               ` [Cluster-devel] " Jon Hunter
2019-02-28 12:39               ` Jon Hunter
2019-02-28 12:39               ` Jon Hunter
2019-02-15 11:13 ` [PATCH V15 15/18] block: always define BIO_MAX_PAGES as 256 Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 16/18] block: document usage of bio iterator helpers Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 17/18] block: kill QUEUE_FLAG_NO_SG_MERGE Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 11:13 ` [PATCH V15 18/18] block: kill BLK_MQ_F_SG_MERGE Ming Lei
2019-02-15 11:13   ` [Cluster-devel] " Ming Lei
2019-02-15 11:13   ` Ming Lei
2019-02-15 14:51 ` [PATCH V15 00/18] block: support multi-page bvec Christoph Hellwig
2019-02-15 14:51   ` [Cluster-devel] " Christoph Hellwig
2019-02-15 14:51   ` Christoph Hellwig
2019-02-17 13:10   ` Ming Lei
2019-02-17 13:10     ` [Cluster-devel] " Ming Lei
2019-02-17 13:10     ` Ming Lei
2019-02-15 15:49 ` Jens Axboe
2019-02-15 15:49   ` [Cluster-devel] " Jens Axboe
2019-02-15 15:49   ` Jens Axboe
2019-02-15 17:14   ` [dm-devel] " Bart Van Assche
2019-02-15 17:14     ` [Cluster-devel] " Bart Van Assche
2019-02-15 17:14     ` Bart Van Assche
2019-02-15 17:14     ` Bart Van Assche
2019-02-15 17:59     ` Jens Axboe
2019-02-15 17:59       ` [Cluster-devel] " Jens Axboe
2019-02-15 17:59       ` Jens Axboe
2019-02-17 13:13       ` Ming Lei
2019-02-17 13:13         ` [Cluster-devel] " Ming Lei
2019-02-17 13:13         ` Ming Lei
2019-02-18  7:49         ` Ming Lei
2019-02-18  7:49           ` [Cluster-devel] " Ming Lei
2019-02-18  7:49           ` Ming Lei
2019-02-17 13:11     ` Ming Lei
2019-02-17 13:11       ` [Cluster-devel] " Ming Lei
2019-02-17 13:11       ` Ming Lei
2019-02-19 16:28       ` Bart Van Assche
2019-02-19 16:28         ` [Cluster-devel] " Bart Van Assche
2019-02-19 16:28         ` Bart Van Assche
2019-02-19 16:28         ` Bart Van Assche
2019-02-20  1:17         ` Ming Lei
2019-02-20  1:17           ` [Cluster-devel] " Ming Lei
2019-02-20  1:17           ` Ming Lei
2019-02-20  2:37           ` Bart Van Assche
2019-02-20  2:37             ` [Cluster-devel] " Bart Van Assche
2019-02-20  2:37             ` Bart Van Assche

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=20190215111324.30129-5-ming.lei@redhat.com \
    --to=ming.lei@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=cluster-devel@redhat.com \
    --cc=colyli@suse.de \
    --cc=darrick.wong@oracle.com \
    --cc=dm-devel@redhat.com \
    --cc=dsterba@suse.com \
    --cc=gaoxiang25@huawei.com \
    --cc=hch@lst.de \
    --cc=kent.overstreet@gmail.com \
    --cc=linux-bcache@vger.kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=ooo@electrozaur.com \
    --cc=osandov@fb.com \
    --cc=sagi@grimberg.me \
    --cc=snitzer@redhat.com \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.