Re: [PATCH] md/raid1: check whether rdev is null before reference in raid1_sync_request func

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 12/6/19 10:40 AM, liuzhiqiang (I) wrote:
In raid1_sync_request func, rdev should be checked whether it is null
before reference.

Do you have real calltrace about it?

Fixes: 06f603851f("md/raid1: avoid reading known bad blocks during resync")
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx>
---
  drivers/md/raid1.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index a409ab6f30bc..0dea35052efe 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -2782,7 +2782,7 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
  				write_targets++;
  			}
  		}
-		if (bio->bi_end_io) {
+		if (rdev != NULL && bio->bi_end_io) {
  			atomic_inc(&rdev->nr_pending);
  			bio->bi_iter.bi_sector = sector_nr + rdev->data_offset;
  			bio_set_dev(bio, rdev->bdev);

If "bio->bi_end_io" is true, I think it implys rdev exists because bio->bi_end_io is set when rdev != NUL.  I don't object to add it to make it explicitly, but it is not a fix.

Thanks,
Guoqing



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux