linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [dm-devel] [PATCH] block: do not return -EOPNOTSUPP only when issue a discard request
@ 2016-02-03  9:54 jiangyiwen
  2016-02-03 16:19 ` Lukáš Czerner
  2016-02-03 22:00 ` Martin K. Petersen
  0 siblings, 2 replies; 3+ messages in thread
From: jiangyiwen @ 2016-02-03  9:54 UTC (permalink / raw)
  To: axboe, linux-kernel
  Cc: dm-devel, martin.petersen, Lukáš Czerner, xuejiufei,
	Qijiang (Joseph, Euler)

commit 8af1954d172a("blkdev: Do not return -EOPNOTSUPP if discard
is supported") only solve the situation of discard, because When
applications issue a discard request to device, they can't expect
deterministic behaviour. However, WRITE SAME should not ignore error
with EOPNOTSUPP, because if applications issue WRITE SAME requests to
device, it should return deterministic results to applications
according to the T10 standard, or else it will cause an inconsistent
state between upper layer and bottom layer.

So ignoring error with EOPNOTSUPP only in discard situation.

Signed-off-by: Yiwen Jiang <jiangyiwen@huawei.com>
---
 block/blk-lib.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/block/blk-lib.c b/block/blk-lib.c
index 9ebf653..e4f02f1 100644
--- a/block/blk-lib.c
+++ b/block/blk-lib.c
@@ -19,7 +19,9 @@ static void bio_batch_end_io(struct bio *bio)
 {
 	struct bio_batch *bb = bio->bi_private;

-	if (bio->bi_error && bio->bi_error != -EOPNOTSUPP)
+	/* ignore -EOPNOTSUPP only when issue a discard request */
+	if (bio->bi_error && (!(bio->bi_rw & REQ_DISCARD) ||
+			(bio->bi_error != -EOPNOTSUPP)))
 		bb->error = bio->bi_error;
 	if (atomic_dec_and_test(&bb->done))
 		complete(bb->wait);
-- 
1.8.4.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-02-03 22:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-03  9:54 [dm-devel] [PATCH] block: do not return -EOPNOTSUPP only when issue a discard request jiangyiwen
2016-02-03 16:19 ` Lukáš Czerner
2016-02-03 22:00 ` Martin K. Petersen

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).