[PATCH v2][RESEND] md/raid10: properly indicate failure when ending a failed write request

Subsystems: software raid (multiple disks) support, the rest

STALE1840d

3 messages, 3 authors, 2021-07-23 · open the first message on its own page

[PATCH v2][RESEND] md/raid10: properly indicate failure when ending a failed write request

From: <hidden>
Date: 2021-06-28 07:15:15

Similar to commit 2417b9869b81882ab90fd5ed1081a1cb2d4db1dd, this patch
fixes the same bug in raid10. Also cleanup the comments.

Fixes: 7cee6d4e6035 ("md/raid10: end bio when the device faulty")
Signed-off-by: Wei Shuyu <redacted>
---
 drivers/md/raid1.c  | 2 --
 drivers/md/raid10.c | 4 ++--
 2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index ced076ba560e..753822ca9613 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -472,8 +472,6 @@ static void raid1_end_write_request(struct bio *bio)
 		/*
 		 * When the device is faulty, it is not necessary to
 		 * handle write error.
-		 * For failfast, this is the only remaining device,
-		 * We need to retry the write without FailFast.
 		 */
 		if (!test_bit(Faulty, &rdev->flags))
 			set_bit(R1BIO_WriteError, &r1_bio->state);
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 13f5e6b2a73d..40e845fb9717 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -469,12 +469,12 @@ static void raid10_end_write_request(struct bio *bio)
 			/*
 			 * When the device is faulty, it is not necessary to
 			 * handle write error.
-			 * For failfast, this is the only remaining device,
-			 * We need to retry the write without FailFast.
 			 */
 			if (!test_bit(Faulty, &rdev->flags))
 				set_bit(R10BIO_WriteError, &r10_bio->state);
 			else {
+				/* Fail the request */
+				set_bit(R10BIO_Degraded, &r10_bio->state);
 				r10_bio->devs[slot].bio = NULL;
 				to_put = bio;
 				dec_rdev = 1;
-- 
2.32.0

Re: [PATCH v2][RESEND] md/raid10: properly indicate failure when ending a failed write request

From: Guoqing Jiang <hidden>
Date: 2021-06-29 07:24:39


On 6/28/21 3:15 PM, wsy@dogben.com wrote:
quoted hunk
Similar to commit 2417b9869b81882ab90fd5ed1081a1cb2d4db1dd, this patch
fixes the same bug in raid10. Also cleanup the comments.

Fixes: 7cee6d4e6035 ("md/raid10: end bio when the device faulty")
Signed-off-by: Wei Shuyu <redacted>
---
  drivers/md/raid1.c  | 2 --
  drivers/md/raid10.c | 4 ++--
  2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index ced076ba560e..753822ca9613 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -472,8 +472,6 @@ static void raid1_end_write_request(struct bio *bio)
  		/*
  		 * When the device is faulty, it is not necessary to
  		 * handle write error.
-		 * For failfast, this is the only remaining device,
-		 * We need to retry the write without FailFast.
  		 */
  		if (!test_bit(Faulty, &rdev->flags))
  			set_bit(R1BIO_WriteError, &r1_bio->state);
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 13f5e6b2a73d..40e845fb9717 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -469,12 +469,12 @@ static void raid10_end_write_request(struct bio *bio)
  			/*
  			 * When the device is faulty, it is not necessary to
  			 * handle write error.
-			 * For failfast, this is the only remaining device,
-			 * We need to retry the write without FailFast.
  			 */
  			if (!test_bit(Faulty, &rdev->flags))
  				set_bit(R10BIO_WriteError, &r10_bio->state);
  			else {
+				/* Fail the request */
+				set_bit(R10BIO_Degraded, &r10_bio->state);
  				r10_bio->devs[slot].bio = NULL;
  				to_put = bio;
  				dec_rdev = 1;
Acked-by: Guoqing Jiang <redacted>

Thanks,
Guoqing

Re: [PATCH v2][RESEND] md/raid10: properly indicate failure when ending a failed write request

From: Song Liu <song@kernel.org>
Date: 2021-07-23 17:20:12

On Tue, Jun 29, 2021 at 12:24 AM Guoqing Jiang [off-list ref] wrote:


On 6/28/21 3:15 PM, wsy@dogben.com wrote:
quoted
Similar to commit 2417b9869b81882ab90fd5ed1081a1cb2d4db1dd, this patch
fixes the same bug in raid10. Also cleanup the comments.

Fixes: 7cee6d4e6035 ("md/raid10: end bio when the device faulty")
Signed-off-by: Wei Shuyu <redacted>
Applied to md-next.

I fixed some issues highlighted by checkpatch.pl. For the next time, please run
checkpatch.pl before sending the patch.

Thanks,
Song
quoted
---
  drivers/md/raid1.c  | 2 --
  drivers/md/raid10.c | 4 ++--
  2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index ced076ba560e..753822ca9613 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -472,8 +472,6 @@ static void raid1_end_write_request(struct bio *bio)
              /*
               * When the device is faulty, it is not necessary to
               * handle write error.
-              * For failfast, this is the only remaining device,
-              * We need to retry the write without FailFast.
               */
              if (!test_bit(Faulty, &rdev->flags))
                      set_bit(R1BIO_WriteError, &r1_bio->state);
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 13f5e6b2a73d..40e845fb9717 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -469,12 +469,12 @@ static void raid10_end_write_request(struct bio *bio)
                      /*
                       * When the device is faulty, it is not necessary to
                       * handle write error.
-                      * For failfast, this is the only remaining device,
-                      * We need to retry the write without FailFast.
                       */
                      if (!test_bit(Faulty, &rdev->flags))
                              set_bit(R10BIO_WriteError, &r10_bio->state);
                      else {
+                             /* Fail the request */
+                             set_bit(R10BIO_Degraded, &r10_bio->state);
                              r10_bio->devs[slot].bio = NULL;
                              to_put = bio;
                              dec_rdev = 1;
Acked-by: Guoqing Jiang <redacted>

Thanks,
Guoqing
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help