tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 90d856e71443a2fcacca8e7539bac44d9cb3f7ab commit: fdac9de80c2e66d6df999ac810382c66b0cb2830 [2228/3296] dm: update target status functions to support IMA measurement config: x86_64-randconfig-m001-20210724 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> New smatch warnings: drivers/md/dm-raid.c:3686 raid_status() error: uninitialized symbol 'recovery'. Old smatch warnings: drivers/md/dm-raid.c:1336 parse_raid_params() warn: potential spectre issue 'rs->dev' [w] vim +/recovery +3686 drivers/md/dm-raid.c 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3510 static void raid_status(struct dm_target *ti, status_type_t type, 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3511 unsigned int status_flags, char *result, unsigned int maxlen) 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3512 { 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3513 struct raid_set *rs = ti->private; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3514 struct mddev *mddev = &rs->md; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3515 struct r5conf *conf = mddev->private; 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3516 int i, max_nr_stripes = conf ? conf->max_nr_stripes : 0; 67143510a7e363 Heinz Mauelshagen 2017-12-02 3517 unsigned long recovery; ^^^^^^^^^^^^^^^^^^^^^^ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3518 unsigned int raid_param_cnt = 1; /* at least 1 for chunksize */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3519 unsigned int sz = 0; 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3520 unsigned int rebuild_writemostly_count = 0; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3521 sector_t progress, resync_max_sectors, resync_mismatches; 53be73a5d75f47 Heinz Mauelshagen 2019-10-01 3522 enum sync_state state; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3523 struct raid_type *rt; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3524 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3525 switch (type) { 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3526 case STATUSTYPE_INFO: 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3527 /* *Should* always succeed */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3528 rt = get_raid_type_by_ll(mddev->new_level, mddev->new_layout); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3529 if (!rt) 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3530 return; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3531 9dbd1aa3a81c61 Heinz Mauelshagen 2016-06-13 3532 DMEMIT("%s %d ", rt->name, mddev->raid_disks); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3533 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3534 /* Access most recent mddev properties for status output */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3535 smp_rmb(); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3536 /* Get sensible max sectors even if raid set not yet started */ 4286325b4b0dc9 Mike Snitzer 2016-06-02 3537 resync_max_sectors = test_bit(RT_FLAG_RS_PRERESUMED, &rs->runtime_flags) ? 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3538 mddev->resync_max_sectors : mddev->dev_sectors; 53be73a5d75f47 Heinz Mauelshagen 2019-10-01 3539 recovery = rs->md.recovery; 53be73a5d75f47 Heinz Mauelshagen 2019-10-01 3540 state = decipher_sync_action(mddev, recovery); 53be73a5d75f47 Heinz Mauelshagen 2019-10-01 3541 progress = rs_get_progress(rs, recovery, state, resync_max_sectors); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3542 resync_mismatches = (mddev->last_sync_action && !strcasecmp(mddev->last_sync_action, "check")) ? 9dbd1aa3a81c61 Heinz Mauelshagen 2016-06-13 3543 atomic64_read(&mddev->resync_mismatches) : 0; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3544 c63ede3b4211e1 Heinz Mauelshagen 2017-01-14 3545 /* HM FIXME: do we want another state char for raid0? It shows 'D'/'A'/'-' now */ c63ede3b4211e1 Heinz Mauelshagen 2017-01-14 3546 for (i = 0; i < rs->raid_disks; i++) 242ea5ad11a03f Heinz Mauelshagen 2017-12-02 3547 DMEMIT(__raid_dev_status(rs, &rs->dev[i].rdev)); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3548 2e727c3ca1beff Jonathan E Brassow 2011-10-31 3549 /* 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3550 * In-sync/Reshape ratio: 2e727c3ca1beff Jonathan E Brassow 2011-10-31 3551 * The in-sync ratio shows the progress of: 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3552 * - Initializing the raid set 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3553 * - Rebuilding a subset of devices of the raid set 2e727c3ca1beff Jonathan E Brassow 2011-10-31 3554 * The user can distinguish between the two by referring 2e727c3ca1beff Jonathan E Brassow 2011-10-31 3555 * to the status characters. 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3556 * 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3557 * The reshape ratio shows the progress of 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3558 * changing the raid layout or the number of 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3559 * disks of a raid set 2e727c3ca1beff Jonathan E Brassow 2011-10-31 3560 */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3561 DMEMIT(" %llu/%llu", (unsigned long long) progress, 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3562 (unsigned long long) resync_max_sectors); 9d09e663d5502c NeilBrown 2011-01-13 3563 be83651f0050ca Jonathan Brassow 2013-04-24 3564 /* 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3565 * v1.5.0+: 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3566 * be83651f0050ca Jonathan Brassow 2013-04-24 3567 * Sync action: 6cf2a73cb2bc42 Mauro Carvalho Chehab 2019-06-18 3568 * See Documentation/admin-guide/device-mapper/dm-raid.rst for be83651f0050ca Jonathan Brassow 2013-04-24 3569 * information on each of these states. be83651f0050ca Jonathan Brassow 2013-04-24 3570 */ 53be73a5d75f47 Heinz Mauelshagen 2019-10-01 3571 DMEMIT(" %s", sync_str(state)); be83651f0050ca Jonathan Brassow 2013-04-24 3572 be83651f0050ca Jonathan Brassow 2013-04-24 3573 /* 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3574 * v1.5.0+: 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3575 * be83651f0050ca Jonathan Brassow 2013-04-24 3576 * resync_mismatches/mismatch_cnt be83651f0050ca Jonathan Brassow 2013-04-24 3577 * This field shows the number of discrepancies found when 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3578 * performing a "check" of the raid set. be83651f0050ca Jonathan Brassow 2013-04-24 3579 */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3580 DMEMIT(" %llu", (unsigned long long) resync_mismatches); 9d09e663d5502c NeilBrown 2011-01-13 3581 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3582 /* 9b6e54232992a2 Mike Snitzer 2016-06-02 3583 * v1.9.0+: 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3584 * 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3585 * data_offset (needed for out of space reshaping) 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3586 * This field shows the data offset into the data 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3587 * image LV where the first stripes data starts. 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3588 * 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3589 * We keep data_offset equal on all raid disks of the set, 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3590 * so retrieving it from the first raid disk is sufficient. 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3591 */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3592 DMEMIT(" %llu", (unsigned long long) rs->dev[0].rdev.data_offset); 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3593 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3594 /* 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3595 * v1.10.0+: 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3596 */ 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3597 DMEMIT(" %s", test_bit(__CTR_FLAG_JOURNAL_DEV, &rs->ctr_flags) ? 242ea5ad11a03f Heinz Mauelshagen 2017-12-02 3598 __raid_dev_status(rs, &rs->journal_dev.rdev) : "-"); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3599 break; 9d09e663d5502c NeilBrown 2011-01-13 3600 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3601 case STATUSTYPE_TABLE: 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3602 /* Report the table line string you would use to construct this raid set */ 9d09e663d5502c NeilBrown 2011-01-13 3603 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3604 /* 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3605 * Count any rebuild or writemostly argument pairs and subtract the 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3606 * hweight count being added below of any rebuild and writemostly ctr flags. 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3607 */ 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3608 for (i = 0; i < rs->raid_disks; i++) { 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3609 rebuild_writemostly_count += (test_bit(i, (void *) rs->rebuild_disks) ? 2 : 0) + 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3610 (test_bit(WriteMostly, &rs->dev[i].rdev.flags) ? 2 : 0); 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3611 } 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3612 rebuild_writemostly_count -= (test_bit(__CTR_FLAG_REBUILD, &rs->ctr_flags) ? 2 : 0) + 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3613 (test_bit(__CTR_FLAG_WRITE_MOSTLY, &rs->ctr_flags) ? 2 : 0); 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3614 /* Calculate raid parameter count based on ^ rebuild/writemostly argument counts and ctr flags set. */ 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3615 raid_param_cnt += rebuild_writemostly_count + 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3616 hweight32(rs->ctr_flags & CTR_FLAG_OPTIONS_NO_ARGS) + 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3617 hweight32(rs->ctr_flags & CTR_FLAG_OPTIONS_ONE_ARG) * 2; 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3618 /* Emit table line */ 4464e36e06470e Heinz Mauelshagen 2017-03-18 3619 /* This has to be in the documented order for userspace! */ 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3620 DMEMIT("%s %u %u", rs->raid_type->name, raid_param_cnt, mddev->new_chunk_sectors); 4286325b4b0dc9 Mike Snitzer 2016-06-02 3621 if (test_bit(__CTR_FLAG_SYNC, &rs->ctr_flags)) 3fa6cf38211619 Mike Snitzer 2016-06-02 3622 DMEMIT(" %s", dm_raid_arg_name_by_flag(CTR_FLAG_SYNC)); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3623 if (test_bit(__CTR_FLAG_NOSYNC, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3624 DMEMIT(" %s", dm_raid_arg_name_by_flag(CTR_FLAG_NOSYNC)); 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3625 if (test_bit(__CTR_FLAG_REBUILD, &rs->ctr_flags)) 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3626 for (i = 0; i < rs->raid_disks; i++) 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3627 if (test_bit(i, (void *) rs->rebuild_disks)) 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3628 DMEMIT(" %s %u", dm_raid_arg_name_by_flag(CTR_FLAG_REBUILD), i); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3629 if (test_bit(__CTR_FLAG_DAEMON_SLEEP, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3630 DMEMIT(" %s %lu", dm_raid_arg_name_by_flag(CTR_FLAG_DAEMON_SLEEP), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3631 mddev->bitmap_info.daemon_sleep); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3632 if (test_bit(__CTR_FLAG_MIN_RECOVERY_RATE, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3633 DMEMIT(" %s %d", dm_raid_arg_name_by_flag(CTR_FLAG_MIN_RECOVERY_RATE), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3634 mddev->sync_speed_min); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3635 if (test_bit(__CTR_FLAG_MAX_RECOVERY_RATE, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3636 DMEMIT(" %s %d", dm_raid_arg_name_by_flag(CTR_FLAG_MAX_RECOVERY_RATE), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3637 mddev->sync_speed_max); 43f3952a51f819 Heinz Mauelshagen 2019-12-19 3638 if (test_bit(__CTR_FLAG_WRITE_MOSTLY, &rs->ctr_flags)) 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3639 for (i = 0; i < rs->raid_disks; i++) 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3640 if (test_bit(WriteMostly, &rs->dev[i].rdev.flags)) 3fa6cf38211619 Mike Snitzer 2016-06-02 3641 DMEMIT(" %s %d", dm_raid_arg_name_by_flag(CTR_FLAG_WRITE_MOSTLY), 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3642 rs->dev[i].rdev.raid_disk); 4286325b4b0dc9 Mike Snitzer 2016-06-02 3643 if (test_bit(__CTR_FLAG_MAX_WRITE_BEHIND, &rs->ctr_flags)) 3fa6cf38211619 Mike Snitzer 2016-06-02 3644 DMEMIT(" %s %lu", dm_raid_arg_name_by_flag(CTR_FLAG_MAX_WRITE_BEHIND), 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3645 mddev->bitmap_info.max_write_behind); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3646 if (test_bit(__CTR_FLAG_STRIPE_CACHE, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3647 DMEMIT(" %s %d", dm_raid_arg_name_by_flag(CTR_FLAG_STRIPE_CACHE), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3648 max_nr_stripes); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3649 if (test_bit(__CTR_FLAG_REGION_SIZE, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3650 DMEMIT(" %s %llu", dm_raid_arg_name_by_flag(CTR_FLAG_REGION_SIZE), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3651 (unsigned long long) to_sector(mddev->bitmap_info.chunksize)); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3652 if (test_bit(__CTR_FLAG_RAID10_COPIES, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3653 DMEMIT(" %s %d", dm_raid_arg_name_by_flag(CTR_FLAG_RAID10_COPIES), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3654 raid10_md_layout_to_copies(mddev->layout)); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3655 if (test_bit(__CTR_FLAG_RAID10_FORMAT, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3656 DMEMIT(" %s %s", dm_raid_arg_name_by_flag(CTR_FLAG_RAID10_FORMAT), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3657 raid10_md_layout_to_format(mddev->layout)); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3658 if (test_bit(__CTR_FLAG_DELTA_DISKS, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3659 DMEMIT(" %s %d", dm_raid_arg_name_by_flag(CTR_FLAG_DELTA_DISKS), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3660 max(rs->delta_disks, mddev->delta_disks)); 4464e36e06470e Heinz Mauelshagen 2017-03-18 3661 if (test_bit(__CTR_FLAG_DATA_OFFSET, &rs->ctr_flags)) 4464e36e06470e Heinz Mauelshagen 2017-03-18 3662 DMEMIT(" %s %llu", dm_raid_arg_name_by_flag(CTR_FLAG_DATA_OFFSET), 4464e36e06470e Heinz Mauelshagen 2017-03-18 3663 (unsigned long long) rs->data_offset); 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3664 if (test_bit(__CTR_FLAG_JOURNAL_DEV, &rs->ctr_flags)) 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3665 DMEMIT(" %s %s", dm_raid_arg_name_by_flag(CTR_FLAG_JOURNAL_DEV), 63c32ed4afc2af Heinz Mauelshagen 2016-11-30 3666 __get_dev_name(rs->journal_dev.dev)); 6e53636fe81465 Heinz Mauelshagen 2017-03-22 3667 if (test_bit(__CTR_FLAG_JOURNAL_MODE, &rs->ctr_flags)) 6e53636fe81465 Heinz Mauelshagen 2017-03-22 3668 DMEMIT(" %s %s", dm_raid_arg_name_by_flag(CTR_FLAG_JOURNAL_MODE), 6e53636fe81465 Heinz Mauelshagen 2017-03-22 3669 md_journal_mode_to_dm_raid(rs->journal_dev.mode)); 3a1c1ef2fd6208 Heinz Mauelshagen 2016-05-19 3670 DMEMIT(" %d", rs->raid_disks); 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3671 for (i = 0; i < rs->raid_disks; i++) 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3672 DMEMIT(" %s %s", __get_dev_name(rs->dev[i].meta_dev), 7a7c330fc26652 Heinz Mauelshagen 2016-06-30 3673 __get_dev_name(rs->dev[i].data_dev)); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3674 break; fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3675 fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3676 case STATUSTYPE_IMA: fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3677 rt = get_raid_type_by_ll(mddev->new_level, mddev->new_layout); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3678 if (!rt) fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3679 return; fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3680 fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3681 DMEMIT_TARGET_NAME_VERSION(ti->type); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3682 DMEMIT(",raid_type=%s,raid_disks=%d", rt->name, mddev->raid_disks); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3683 fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3684 /* Access most recent mddev properties for status output */ fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3685 smp_rmb(); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 @3686 state = decipher_sync_action(mddev, recovery); ^^^^^^^^ Uninitialized fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3687 DMEMIT(",raid_state=%s", sync_str(state)); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3688 fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3689 for (i = 0; i < rs->raid_disks; i++) { fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3690 DMEMIT(",raid_device_%d_status=", i); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3691 DMEMIT(__raid_dev_status(rs, &rs->dev[i].rdev)); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3692 } fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3693 fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3694 if (rt_is_raid456(rt)) { fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3695 DMEMIT(",journal_dev_mode="); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3696 switch (rs->journal_dev.mode) { fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3697 case R5C_JOURNAL_MODE_WRITE_THROUGH: fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3698 DMEMIT("%s", fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3699 _raid456_journal_mode[R5C_JOURNAL_MODE_WRITE_THROUGH].param); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3700 break; fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3701 case R5C_JOURNAL_MODE_WRITE_BACK: fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3702 DMEMIT("%s", fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3703 _raid456_journal_mode[R5C_JOURNAL_MODE_WRITE_BACK].param); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3704 break; fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3705 default: fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3706 DMEMIT("invalid"); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3707 break; fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3708 } fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3709 } fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3710 DMEMIT(";"); fdac9de80c2e66 Tushar Sugandhi 2021-07-12 3711 break; 9d09e663d5502c NeilBrown 2011-01-13 3712 } 9d09e663d5502c NeilBrown 2011-01-13 3713 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx