diff options
author | NeilBrown <neilb@suse.de> | 2011-07-27 21:39:23 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-07-27 21:39:23 -0400 |
commit | 1294b9c973251a5e68b62c9b40dd914517bda675 (patch) | |
tree | 45547cfff8997a3a633490341f8166dc6d00e962 /drivers | |
parent | b84db560ead5417b5594349512baf8837959df4f (diff) |
md/raid10: simplify/reindent some loops.
When a loop ends with a large if, it can be neater to change the
if to invert the condition and just 'continue'.
Then the body of the if can be indented to a lower level.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/md/raid10.c | 127 |
1 files changed, 65 insertions, 62 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index fe6692e62215..c489b5c6ed6d 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -1533,80 +1533,83 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio) | |||
1533 | sl--; | 1533 | sl--; |
1534 | d = r10_bio->devs[sl].devnum; | 1534 | d = r10_bio->devs[sl].devnum; |
1535 | rdev = rcu_dereference(conf->mirrors[d].rdev); | 1535 | rdev = rcu_dereference(conf->mirrors[d].rdev); |
1536 | if (rdev && | 1536 | if (!rdev || |
1537 | test_bit(In_sync, &rdev->flags)) { | 1537 | !test_bit(In_sync, &rdev->flags)) |
1538 | atomic_inc(&rdev->nr_pending); | 1538 | continue; |
1539 | rcu_read_unlock(); | 1539 | |
1540 | if (sync_page_io(rdev, | 1540 | atomic_inc(&rdev->nr_pending); |
1541 | r10_bio->devs[sl].addr + | 1541 | rcu_read_unlock(); |
1542 | sect, | 1542 | if (sync_page_io(rdev, |
1543 | s<<9, conf->tmppage, WRITE, false) | 1543 | r10_bio->devs[sl].addr + |
1544 | == 0) { | 1544 | sect, |
1545 | /* Well, this device is dead */ | 1545 | s<<9, conf->tmppage, WRITE, false) |
1546 | printk(KERN_NOTICE | 1546 | == 0) { |
1547 | "md/raid10:%s: read correction " | 1547 | /* Well, this device is dead */ |
1548 | "write failed" | 1548 | printk(KERN_NOTICE |
1549 | " (%d sectors at %llu on %s)\n", | 1549 | "md/raid10:%s: read correction " |
1550 | mdname(mddev), s, | 1550 | "write failed" |
1551 | (unsigned long long)( | 1551 | " (%d sectors at %llu on %s)\n", |
1552 | sect + rdev->data_offset), | 1552 | mdname(mddev), s, |
1553 | bdevname(rdev->bdev, b)); | 1553 | (unsigned long long)( |
1554 | printk(KERN_NOTICE "md/raid10:%s: %s: failing " | 1554 | sect + rdev->data_offset), |
1555 | "drive\n", | 1555 | bdevname(rdev->bdev, b)); |
1556 | mdname(mddev), | 1556 | printk(KERN_NOTICE "md/raid10:%s: %s: failing " |
1557 | bdevname(rdev->bdev, b)); | 1557 | "drive\n", |
1558 | md_error(mddev, rdev); | 1558 | mdname(mddev), |
1559 | } | 1559 | bdevname(rdev->bdev, b)); |
1560 | rdev_dec_pending(rdev, mddev); | 1560 | md_error(mddev, rdev); |
1561 | rcu_read_lock(); | ||
1562 | } | 1561 | } |
1562 | rdev_dec_pending(rdev, mddev); | ||
1563 | rcu_read_lock(); | ||
1563 | } | 1564 | } |
1564 | sl = start; | 1565 | sl = start; |
1565 | while (sl != r10_bio->read_slot) { | 1566 | while (sl != r10_bio->read_slot) { |
1567 | char b[BDEVNAME_SIZE]; | ||
1566 | 1568 | ||
1567 | if (sl==0) | 1569 | if (sl==0) |
1568 | sl = conf->copies; | 1570 | sl = conf->copies; |
1569 | sl--; | 1571 | sl--; |
1570 | d = r10_bio->devs[sl].devnum; | 1572 | d = r10_bio->devs[sl].devnum; |
1571 | rdev = rcu_dereference(conf->mirrors[d].rdev); | 1573 | rdev = rcu_dereference(conf->mirrors[d].rdev); |
1572 | if (rdev && | 1574 | if (!rdev || |
1573 | test_bit(In_sync, &rdev->flags)) { | 1575 | !test_bit(In_sync, &rdev->flags)) |
1574 | char b[BDEVNAME_SIZE]; | 1576 | continue; |
1575 | atomic_inc(&rdev->nr_pending); | ||
1576 | rcu_read_unlock(); | ||
1577 | if (sync_page_io(rdev, | ||
1578 | r10_bio->devs[sl].addr + | ||
1579 | sect, | ||
1580 | s<<9, conf->tmppage, | ||
1581 | READ, false) == 0) { | ||
1582 | /* Well, this device is dead */ | ||
1583 | printk(KERN_NOTICE | ||
1584 | "md/raid10:%s: unable to read back " | ||
1585 | "corrected sectors" | ||
1586 | " (%d sectors at %llu on %s)\n", | ||
1587 | mdname(mddev), s, | ||
1588 | (unsigned long long)( | ||
1589 | sect + rdev->data_offset), | ||
1590 | bdevname(rdev->bdev, b)); | ||
1591 | printk(KERN_NOTICE "md/raid10:%s: %s: failing drive\n", | ||
1592 | mdname(mddev), | ||
1593 | bdevname(rdev->bdev, b)); | ||
1594 | |||
1595 | md_error(mddev, rdev); | ||
1596 | } else { | ||
1597 | printk(KERN_INFO | ||
1598 | "md/raid10:%s: read error corrected" | ||
1599 | " (%d sectors at %llu on %s)\n", | ||
1600 | mdname(mddev), s, | ||
1601 | (unsigned long long)( | ||
1602 | sect + rdev->data_offset), | ||
1603 | bdevname(rdev->bdev, b)); | ||
1604 | atomic_add(s, &rdev->corrected_errors); | ||
1605 | } | ||
1606 | 1577 | ||
1607 | rdev_dec_pending(rdev, mddev); | 1578 | atomic_inc(&rdev->nr_pending); |
1608 | rcu_read_lock(); | 1579 | rcu_read_unlock(); |
1580 | if (sync_page_io(rdev, | ||
1581 | r10_bio->devs[sl].addr + | ||
1582 | sect, | ||
1583 | s<<9, conf->tmppage, | ||
1584 | READ, false) == 0) { | ||
1585 | /* Well, this device is dead */ | ||
1586 | printk(KERN_NOTICE | ||
1587 | "md/raid10:%s: unable to read back " | ||
1588 | "corrected sectors" | ||
1589 | " (%d sectors at %llu on %s)\n", | ||
1590 | mdname(mddev), s, | ||
1591 | (unsigned long long)( | ||
1592 | sect + rdev->data_offset), | ||
1593 | bdevname(rdev->bdev, b)); | ||
1594 | printk(KERN_NOTICE "md/raid10:%s: %s: failing " | ||
1595 | "drive\n", | ||
1596 | mdname(mddev), | ||
1597 | bdevname(rdev->bdev, b)); | ||
1598 | |||
1599 | md_error(mddev, rdev); | ||
1600 | } else { | ||
1601 | printk(KERN_INFO | ||
1602 | "md/raid10:%s: read error corrected" | ||
1603 | " (%d sectors at %llu on %s)\n", | ||
1604 | mdname(mddev), s, | ||
1605 | (unsigned long long)( | ||
1606 | sect + rdev->data_offset), | ||
1607 | bdevname(rdev->bdev, b)); | ||
1608 | atomic_add(s, &rdev->corrected_errors); | ||
1609 | } | 1609 | } |
1610 | |||
1611 | rdev_dec_pending(rdev, mddev); | ||
1612 | rcu_read_lock(); | ||
1610 | } | 1613 | } |
1611 | rcu_read_unlock(); | 1614 | rcu_read_unlock(); |
1612 | 1615 | ||