By completing the request entirely in the driver we can remove the
BLK_EH_HANDLED return value and thus the split responsibility between the
driver and the block layer that has been causing trouble.
Signed-off-by: Christoph Hellwig
---
drivers/block/null_blk.c | 6 --
1 file changed, 4
From: Keith Busch
The block layer had been setting the state to in-flight prior to updating
the timer. This is the wrong order since the timeout handler could observe
the in-flight state with the older timeout, believing the request had
expired when in fact it is just getting started.
Signed-off
By completing the request entirely in the driver we can remove the
BLK_EH_HANDLED return value and thus the split responsibility between the
driver and the block layer that has been causing trouble.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi_transport_fc.c | 7 +++
1 file
Signed-off-by: Christoph Hellwig
---
include/linux/blkdev.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 3d9d4da4dedd..3815d9dcfbe0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -337,8 +337,8
t
one should not actually be possible. If this doesn't work out iscsi
will probably need its own eh_strategy_handler instead to just do the
right thing.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/libiscsi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dr
Signed-off-by: Christoph Hellwig
---
Documentation/scsi/scsi_eh.txt | 11 ---
block/blk-mq.c | 3 ---
block/blk-timeout.c| 3 ---
include/linux/blkdev.h | 1 -
4 files changed, 18 deletions(-)
diff --git a/Documentation/scsi/scsi_eh.txt b
Signed-off-by: Christoph Hellwig
---
block/blk-mq.c | 22 --
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 8c7b1803b7e9..592bab689f8e 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -747,22 +747,16 @@ EXPORT_SYMBOL
!]
Signed-off-by: Christoph Hellwig
---
drivers/mmc/core/queue.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c
index 56e9a803db21..648eb6743ed5 100644
--- a/drivers/mmc/core/queue.c
+++ b/drivers/mmc/core/queue.c
x27;s tag won't be
released for reuse until both the timeout handler and the completion
are done with it.
[hch: slight cleanups]
Signed-off-by: Keith Busch
Signed-off-by: Christoph Hellwig
---
block/blk-core.c | 6 -
block/blk-mq-debugfs.c | 1 -
block/bl
On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote:
> > Should I move to code to a new drivers/scsi/scsi_sense.c and add it to
> > drivers/scsi/Makefile as:
> >
> > obj-$(CONFIG_BLK_SCSI_REQUEST)+= scsi_sense.o
> >
> > Every place I want to use the code is already covered by
> > CONFI
Switch to using the iomap_page structure for checking sub-page uptodate
status and track sub-page I/O completion status, and remove large
quantities of boilerplate code working around buffer heads.
Signed-off-by: Christoph Hellwig
---
fs/xfs/xfs_aops.c | 536
.
- two atomic_t counters are used to track the outstanding read and write
counts
There is quite a bit of boilerplate code as the buffered I/O path uses
various helper methods, but the actual code is very straight forward.
Signed-off-by: Christoph Hellwig
---
fs/iomap.c| 247
Hi all,
this series adds support for buffered I/O without buffer heads for
block size < PAGE_SIZE to the iomap and XFS code.
A git tree is available at:
git://git.infradead.org/users/hch/xfs.git xfs-iomap-read
xfs-remove-bufferheads.2
Gitweb:
http://git.infradead.org/users/hch/xfs.gi
On Wed, May 23, 2018 at 02:17:14PM -0700, Kees Cook wrote:
>
> True, though I'm finding other robustness issues in the CDROM code.
> They're probably all insane corner cases, but it seems like it'd be
> nice to just fix them:
>
> diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
> index
On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote:
> Ugh, so that would necessitate a change there too. As I said before,
> I don't really care where it lives. I know the SCSI folks seem bothered
> by moving it, but in reality, it's not like this stuff will likely ever
> really change. Of
> +/* Make sure any sense buffer is the correct size. */
> +#define scsi_execute(sdev, cmd, data_direction, buffer, bufflen, sense,
> \
> + sshdr, timeout, retries, flags, rq_flags, resid) \
> +({ \
> + B
On Thu, May 24, 2018 at 10:06:59AM -0700, Kees Cook wrote:
> On Thu, May 24, 2018 at 1:00 AM, Christoph Hellwig wrote:
> > On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote:
> >> Ugh, so that would necessitate a change there too. As I said before,
> >> I don
Zeroes the SGL in the payload.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/target/core.c | 7 +++
drivers/nvme/target/nvmet.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index 800aaf96ddcd..55c4bc693aa2 100644
--- a
Only used in block_dev.c and the partitions code, and it should remain
that way..
Signed-off-by: Christoph Hellwig
---
fs/block_dev.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 7ec920e27065..771ddfa29dc9 100644
--- a/fs/block_dev.c
+++ b/fs
From: Hannes Reinecke
Signed-off-by: Hannes Reinecke
[hch: split from a larger patch]
Signed-off-by: Christoph Hellwig
---
include/linux/nvme.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 7ce0f3cf4409..2950ce957656 100644
--- a
The information about a size change in this case just creates confusion.
Signed-off-by: Christoph Hellwig
---
block/partition-generic.c | 4 ++--
fs/block_dev.c| 14 +-
include/linux/fs.h| 2 +-
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a
Hi all,
this series started as prep work for ANA, but has grown a lot.
The idea is to make the AEN handling in the target closer to what
the standard says, and implement the changed namespaces list log page,
which is required to clear the namespace attribute notice event.
One the host side this
Signed-off-by: Christoph Hellwig
---
include/linux/nvme.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index c37103a4ad38..7ce0f3cf4409 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -751,6 +751,7 @@ enum
Stop including the event type in the definitions for the notice type.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/host/core.c | 30 ++
include/linux/nvme.h | 8 ++--
2 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/drivers/nvme/host
From: Hannes Reinecke
AEN configuration via the 'Get Features' and 'Set Features' admin
command is mandatory, so we should be implemeting handling for it.
Signed-off-by: Hannes Reinecke
[hch: use WRITE_ONCE, check for invalid values]
Signed-off-by: Christoph Hellwig
---
And move it toward the top of the file to avoid a forward declaration.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/host/core.c | 19 +--
drivers/nvme/host/nvme.h | 1 -
2 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme
From: Hannes Reinecke
We should register for AEN events; some law-abiding targets might
not be sending us AENs otherwise.
Signed-off-by: Hannes Reinecke
[hch: slight cleanups]
Signed-off-by: Christoph Hellwig
---
drivers/nvme/host/core.c | 17 +
drivers/nvme/host/nvme.h | 1
Remove the common code to allocate a buffer and copy it into the SGL.
Instead the two no-op implementations just zero the SGL directly, and
the smart log allocates a buffer on its own. This prepares for the
more elaborate ANA log page.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/target
Just keep a per-controller buffer of changed namespaces and copy it out
in the get log page implementation.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/target/admin-cmd.c | 23 +
drivers/nvme/target/core.c | 44 ++---
drivers/nvme/target
Per section 5.2 we need to issue the corresponding log page to clear an
AEN, so for a namespace data changed AEN we need to read the changed
namespace list log. And once we read that log anyway we might as well
use it to optimize the rescan.
Signed-off-by: Christoph Hellwig
---
drivers/nvme
lears that event. An event is cleared by
reading the log page associated with that event using the Get Log Page
command (see section 5.14)."
Signed-off-by: Christoph Hellwig
---
drivers/nvme/target/admin-cmd.c | 1 +
drivers/nvme/target/core.c | 2 ++
drivers/nvme/target/nvmet.h
When rescanning namespaces after an AEN we will issue Identify Namespace
comands to namespaces that have gone away, so don't warn for this specific
case.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/host/core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dr
On Sat, May 26, 2018 at 12:05:02PM +, Popuri, Sriram wrote:
> Reading the spec it looks like ns log is alternate approach:
>
> "Namespace Attribute Changed: The Identify Namespace data structure for one
> or more namespaces, as well as the Namespace List returned when the Identify
> command
Summary: mke2s uses the BLKDISCARD ioctl to wipe the device,
and then uses BLKDISCARDZEROES to check if that zeroed the data.
A while ago I made BLKDISCARDZEROES always return 0 because it is
basically impossible to have reliably zeroing using discard as the
standards leave the devices way to many
On Fri, May 25, 2018 at 01:17:02PM -0400, Brian Foster wrote:
> > +static struct iomap_page *
> > +iomap_page_create(struct inode *inode, struct page *page)
> > +{
> > + struct iomap_page *iop = to_iomap_page(page);
> > +
> > + if (iop || i_blocksize(inode) == PAGE_SIZE)
> > + return
On Fri, May 25, 2018 at 01:17:15PM -0400, Brian Foster wrote:
> On Wed, May 23, 2018 at 04:46:46PM +0200, Christoph Hellwig wrote:
> > Switch to using the iomap_page structure for checking sub-page uptodate
> > status and track sub-page I/O completion status, and remove large
&g
On Thu, May 24, 2018 at 12:45:15PM +0800, Ming Lei wrote:
> This change should have been done after '[PATCH 13/14] blk-mq: Remove
> generation seqeunce', otherwise the timed-out request won't be completed
> by nvme_cancel_request() at all because we always marked this request as
> 'COMPLETE' before
On Wed, May 23, 2018 at 03:27:35PM +0200, Hannes Reinecke wrote:
> Is there a way of _testing_ this patch?
Use the error injection framework Johannes wrote? Use blktests
(but make sure you have a fixed version of test 011).
> It looks pretty dodgy, just replacing BLK_EH_HANDLED with
> BLK_EH_NO
On Wed, May 23, 2018 at 03:28:38PM +0200, Hannes Reinecke wrote:
> Again, some testcase would be nice ...
For this one I don't have an actual test case. I'll have to defer
to the nbd maintainers for that.
.
Reported-by: Anatoliy Glagolev
Signed-off-by: Christoph Hellwig
---
block/bsg-lib.c | 6 ++---
block/bsg.c | 39 -
drivers/scsi/scsi_transport_fc.c| 7 +++---
drivers/scsi/scsi_transport_iscsi.c | 2 +-
drivers/scsi
On Mon, May 28, 2018 at 08:36:56AM +0200, Johannes Thumshirn wrote:
> Don't we already have this? Or is it a re-send? It looks so awefully familiar
> to me...
It was part of my ANA series, like many changes in this series.
On Mon, May 28, 2018 at 08:53:42AM +0200, Johannes Thumshirn wrote:
> Reviewed-by: Johannes Thumshirn
>
> As a side note, what happens if more than 1024 Namespaces are changed
> (apart from setting the 1st element to 0x and zeroing out the
> rest)?
>
> The Spec is pretty silent in this r
On Tue, May 29, 2018 at 10:16:31AM +0200, Johannes Thumshirn wrote:
> The "full rescan" part was what I couldn't read out of the spec.
The spec part is: something changed (AEN + some content in the log page)
+ too much changed (all-f first entry). The rest is host policy, but
except for the full
The information about a size change in this case just creates confusion.
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
block/partition-generic.c | 4 ++--
fs/block_dev.c| 14 +-
include/linux/fs.h| 2 +-
3 files changed, 12 insertions
Only used in block_dev.c and the partitions code, and it should remain
that way..
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
fs/block_dev.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 7ec920e27065..771ddfa29dc9 100644
--- a
Remove the unused export, and suppress the size change message when the
device went away.
On Tue, May 29, 2018 at 04:59:05PM +, Verkamp, Daniel wrote:
> > + } else if (ctrl->nr_changed_ns == NVME_MAX_CHANGED_NAMESPACES) {
> > + ctrl->changed_ns_list[0] = cpu_to_le32(0x);
> > + }
>
> Unless I'm missing it happening somewhere else, the list-full case that sets
On Tue, May 29, 2018 at 05:15:34PM +, Verkamp, Daniel wrote:
> This looks overly restrictive - a host sending a Set Features with e.g. the
> health critical warning bits set in CDW11 will get a failure. As far as I
> can tell, this isn't allowed by the spec; Set Features - Asynchronous Even
On Tue, May 29, 2018 at 05:35:12PM +, Verkamp, Daniel wrote:
> Sorry, I should have been clearer - I agree with your position here. Only
> bits that are valid should be allowed, so for example it is fine to fail
> commands that set reserved bits, or optional bits that have a mechanism to
>
Hi Jens,
below is a one-liner fix from Max that unbreaks T10-DIF support, which
got broken in 4.15.
The following changes since commit eedffa28c9b00ca2dcb4d541b5a530f4c917052d:
loop: clear wb_err in bd_inode when detaching backing file (2018-05-21
12:36:03 -0600)
are available in the Git rep
Hi Jens,
here is the current batch of nvme updates for 4.18, we have a few more
patches in the queue, but I'd like to get this pile into your tree
and linux-next ASAP.
The biggest item is support for file-backed namespaces in the NVMe target
from Chaitanya, in addition to that we mostly small fix
On Wed, May 30, 2018 at 06:22:04AM +, Damien Le Moal wrote:
> That would necessitate splitting elevator_init() into a generic elevator
> initialization function setting up the elevator related fields of the
> request queue and a second part setting up the default elevator (e.g.
> elevator_set_d
While I really don't want drivers to change the I/O schedule themselves
we have a class of devices (zoned) that don't work at all with certain
I/O schedulers. The kernel not chosing something sane and requiring
user workarounds is just silly.
Hi all,
this series started as prep work for ANA, but has grown a lot.
The idea is to make the AEN handling in the target closer to what
the standard says, and implement the changed namespaces list log page,
which is required to clear the namespace attribute notice event.
One the host side this
Zeroes the SGL in the payload.
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
drivers/nvme/target/core.c | 7 +++
drivers/nvme/target/nvmet.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index
Just keep a per-controller buffer of changed namespaces and copy it out
in the get log page implementation.
Signed-off-by: Christoph Hellwig
---
drivers/nvme/target/admin-cmd.c | 26 +
drivers/nvme/target/core.c | 50 +++--
drivers/nvme/target
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
include/linux/nvme.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index c37103a4ad38..7ce0f3cf4409 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -751,6
Remove the common code to allocate a buffer and copy it into the SGL.
Instead the two no-op implementations just zero the SGL directly, and
the smart log allocates a buffer on its own. This prepares for the
more elaborate ANA log page.
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes
Stop including the event type in the definitions for the notice type.
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
drivers/nvme/host/core.c | 30 ++
include/linux/nvme.h | 8 ++--
2 files changed, 24 insertions(+), 14 deletions
From: Hannes Reinecke
Signed-off-by: Hannes Reinecke
[hch: split from a larger patch]
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
include/linux/nvme.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index
AEN configuration via the 'Get Features' and 'Set Features' admin
command is mandatory, so we should be implemeting handling for it.
Signed-off-by: Hannes Reinecke
[hch: use WRITE_ONCE, check for invalid values]
Signed-off-by: Christoph Hellwig
---
drivers/nvme/tar
lears that event. An event is cleared by
reading the log page associated with that event using the Get Log Page
command (see section 5.14)."
Signed-off-by: Christoph Hellwig
---
drivers/nvme/target/admin-cmd.c | 1 +
drivers/nvme/target/core.c | 9 -
drivers/nvme/target/nvmet
Per section 5.2 we need to issue the corresponding log page to clear an
AEN, so for a namespace data changed AEN we need to read the changed
namespace list log. And once we read that log anyway we might as well
use it to optimize the rescan.
Signed-off-by: Christoph Hellwig
---
drivers/nvme
And move it toward the top of the file to avoid a forward declaration.
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
drivers/nvme/host/core.c | 19 +--
drivers/nvme/host/nvme.h | 1 -
2 files changed, 9 insertions(+), 11 deletions(-)
diff --git a
When rescanning namespaces after an AEN we will issue Identify Namespace
comands to namespaces that have gone away, so don't warn for this specific
case.
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
drivers/nvme/host/core.c | 4 +++-
1 file changed, 3 insertions(
From: Hannes Reinecke
We should register for AEN events; some law-abiding targets might
not be sending us AENs otherwise.
Signed-off-by: Hannes Reinecke
[hch: slight cleanups]
Signed-off-by: Christoph Hellwig
Reviewed-by: Johannes Thumshirn
---
drivers/nvme/host/core.c | 17
We already check for started commands in all callbacks, but we should
also protect against already completed commands. Do this by taking
the checks to common code.
Signed-off-by: Christoph Hellwig
---
block/blk-mq-tag.c| 2 +-
drivers/block/mtip32xx/mtip32xx.c | 12
pely actually
looks cleaner as well:
---
>From d4baf4068220a90ecf67309d01ece5d0aadd952e Mon Sep 17 00:00:00 2001
From: Christoph Hellwig
Date: Fri, 25 May 2018 17:16:09 +0200
Subject: nvmet: implement the changed namespaces log
Just keep a per-controller buffer of changed namespaces and copy it out
in the get log page
These are only used by the block core. Also move the declarations to
block/blk.h.
Reported-by: Damien Le Moal
Signed-off-by: Christoph Hellwig
Reviewed-by: Damien Le Moal
Tested-by: Damien Le Moal
---
block/blk.h | 2 ++
block/elevator.c | 2 --
include/linux/elevator.h
Reported-by: Damien Le Moal
Signed-off-by: Christoph Hellwig
Reviewed-by: Damien Le Moal
Tested-by: Damien Le Moal
---
block/blk-core.c | 2 +-
block/blk-mq-sched.c | 2 +-
block/blk.h | 2 +-
block/elevator.c | 10 ++
4 files changed, 5 insertions(+), 11 deletions
There is almost no shared logic, which leads to a very confusing code
flow.
Signed-off-by: Christoph Hellwig
Reviewed-by: Damien Le Moal
Tested-by: Damien Le Moal
---
block/blk-mq.c | 2 +-
block/blk.h | 1 +
block/elevator.c | 77 +---
3
Both callers take just around so function call, so move it in.
Also remove the now pointless blk_mq_sched_init wrapper.
Signed-off-by: Christoph Hellwig
Reviewed-by: Damien Le Moal
Tested-by: Damien Le Moal
---
block/blk-core.c | 10 +-
block/blk-mq-sched.c | 11 ---
block
No need for I/O scheduling during probe, and this cleans up the
code nicely by converging on the switch path.
Signed-off-by: Christoph Hellwig
Reviewed-by: Damien Le Moal
Tested-by: Damien Le Moal
---
block/blk-mq.c| 9 -
block/blk-sysfs.c | 25 ++---
block
No point in doing this in elevator_init.
Signed-off-by: Christoph Hellwig
Reported-by: Damien Le Moal
Reviewed-by: Damien Le Moal
Tested-by: Damien Le Moal
---
block/blk-core.c | 5 +
block/elevator.c | 5 -
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/block/blk
The first 5 patches are simple cleanup and refactoring patches. 6 changes
behavior in that it only attaches blk-mq ioscheds once we are done with
probing, but that actually simplifies things a bit too even if it might
be a bit more controversial.
On Thu, May 31, 2018 at 02:21:51PM -0600, Jens Axboe wrote:
> On 5/31/18 11:11 AM, Christoph Hellwig wrote:
> > The first 5 patches are simple cleanup and refactoring patches. 6 changes
> > behavior in that it only attaches blk-mq ioscheds once we are done with
> > probi
-06-01 14:37:35 +0200)
Christoph Hellwig (12):
nvme-pci: simplify __nvme_submit_cmd
nvme-loop: add support for multiple ports
nvme-fabrics: allow internal passthrough command on deleting controllers
nvme.h
Clean up some bio_vec abuses to prepare for saner handling of multipage
bio_vecs.
t by not saving
irq state - we know we are called from a workqueue.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 56 +---
1 file changed, 21 insertions(+), 35 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index 53e0f0a1ed94..5094
merge physically contiguous pages once support for multipath bio_vecs is
merged.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 45 +
1 file changed, 21 insertions(+), 24 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index d95fab72acb5..b09c133
So don't bother handling it.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index 50941c1c9118..d95fab72acb5 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1578,10 +1578,8 @@
well
> > use it to optimize the rescan.
> >
> > Signed-off-by: Christoph Hellwig
>
> I'm a little concerned about this. Userspace might be reading the same
> log page. Since the contents of the page may change each time its read,
> it's possible the dr
On Wed, Jun 06, 2018 at 08:26:56AM -0600, Jens Axboe wrote:
> On 6/6/18 8:22 AM, Hannes Reinecke wrote:
> > blk_partition_remap() will only clear bi_partno if an actual remapping
> > has happened. But flush request et al don't have an actual size, so
> > the remapping doesn't happen and bi_partno i
On Wed, Jun 06, 2018 at 04:21:40PM +0200, Hannes Reinecke wrote:
> If flush requests are being sent to the device we need to inherit the
> failfast and driver-specific flags, too, otherwise I/O will fail.
Looks fine,
Reviewed-by: Christoph Hellwig
Good idea to display the flags, but the characters aren't really
very self-describing. Should we prefix each with an f maybe?
So for stacked devices blk_partition_remap() will be called on each level.
> If (as is the case for native nvme multipathing) one of the lower-level
> devices do _not_support partitioning a spurious I/O error is generated.
>
> Signed-off-by: Hannes Reinecke
Looks good,
Reviewed-by: Christoph Hellwig
ository at:
git://git.infradead.org/nvme.git nvme-4.18
for you to fetch changes up to 9ce44fde233fcbe5eca34f97f2a68b97d3ca833b:
nvme: cleanup double shift issue (2018-06-07 16:27:08 +0200)
----
Christoph Hellwig (1):
nvmet: return
Looks good,
Reviewed-by: Christoph Hellwig
Use the bio_reuse helper instead of rebuilding the bio_vecs and
size for bios that get reused for the same data.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/request.c | 5 +
drivers/md/bcache/super.c | 6 ++
2 files changed, 3 insertions(+), 8 deletions(-)
diff --git a
Let bch_bio_alloc_pages and bch_bio_map set up the bio vec information
and bi_size. This also means no additional bch_bio_map call with
a NULL argument is needed before bch_bio_alloc_pages.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/btree.c | 16 +++-
drivers/md/bcache
Instead of reinitializing the bio everytime we can call bio_reuse when
reusing it. Also removes the remainder of the moving_init helper
to improve readability.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/movinggc.c | 40 +---
1 file changed, 19
We immediately overwrite the biovec array, so instead just allocate
a new bio and copy over the disk, setor and size.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/debug.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/md/bcache/debug.c b/drivers/md
Hi all,
this series cleans up various places where bcache is way too intimate
with bio internals. This is intended as a baseline for the multi-page
biovec work, which requires some nasty workarounds for the existing
code.
Note that I do not have a bcache test setup, so this will require
some car
Instead of reinitializing the bio everytime we can call bio_reuse when
reusing it. Also moves the private data initialization out of
dirty_init, which is renamed to suit the remaining functionality.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/writeback.c | 26
This abstracts out a way to reuse a bio without destroying the
data pointers.
Signed-off-by: Christoph Hellwig
---
block/bio.c | 20
include/linux/bio.h | 1 +
2 files changed, 21 insertions(+)
diff --git a/block/bio.c b/block/bio.c
index 70c4e1b6dd45
On Tue, Jun 12, 2018 at 02:16:30AM -0400, Kent Overstreet wrote:
> On Mon, Jun 11, 2018 at 09:48:01PM +0200, Christoph Hellwig wrote:
> > This abstracts out a way to reuse a bio without destroying the
> > data pointers.
>
> What is the point of this? What "data pointers
On Wed, Jun 13, 2018 at 07:06:41PM +0800, Ming Lei wrote:
> > before bio_alloc_pages) that can be switched to something that just creates
> > a
> > single bvec.
>
> Yes, multipage bvec shouldn't break any driver or fs.
It probably isn't broken, at least I didn't see assumptions of the same
numbe
On Wed, Jun 13, 2018 at 04:54:41AM -0400, Kent Overstreet wrote:
> bi_size is not immutable though, it will usually be modified by drivers when
> you
> submit a bio.
>
> I see what you're trying to do, but your approach is busted given the way the
> block layer works today. You'd have to save bio
We immediately overwrite the biovec array, so instead just allocate
a new bio and copy over the disk, setor and size.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/debug.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/md/bcache/debug.c b/drivers/md
Let bch_bio_alloc_pages and bch_bio_map set up the bio vec information
and bi_size. This also means no additional bch_bio_map call with
a NULL argument is needed before bch_bio_alloc_pages.
Signed-off-by: Christoph Hellwig
---
drivers/md/bcache/btree.c | 16 +++-
drivers/md/bcache
101 - 200 of 3789 matches
Mail list logo