projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branches 'release' and 'stats' into release
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
md
/
raid1.c
diff --git
a/drivers/md/raid1.c
b/drivers/md/raid1.c
index 85478d6a9c1af645dfdfdb824aa1b6c7286e9daf..5c7fef091cec800da3f3cb482f7e97f574cb43c6 100644
(file)
--- a/
drivers/md/raid1.c
+++ b/
drivers/md/raid1.c
@@
-549,8
+549,7
@@
static void unplug_slaves(mddev_t *mddev)
atomic_inc(&rdev->nr_pending);
rcu_read_unlock();
atomic_inc(&rdev->nr_pending);
rcu_read_unlock();
- if (r_queue->unplug_fn)
- r_queue->unplug_fn(r_queue);
+ blk_unplug(r_queue);
rdev_dec_pending(rdev, mddev);
rcu_read_lock();
rdev_dec_pending(rdev, mddev);
rcu_read_lock();
@@
-1685,6
+1684,7
@@
static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i
if (!go_faster && conf->nr_waiting)
msleep_interruptible(1000);
if (!go_faster && conf->nr_waiting)
msleep_interruptible(1000);
+ bitmap_cond_end_sync(mddev->bitmap, sector_nr);
raise_barrier(conf);
conf->next_resync = sector_nr;
raise_barrier(conf);
conf->next_resync = sector_nr;
@@
-1767,6
+1767,8
@@
static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i
return rv;
}
return rv;
}
+ if (max_sector > mddev->resync_max)
+ max_sector = mddev->resync_max; /* Don't do IO beyond here */
nr_sectors = 0;
sync_blocks = 0;
do {
nr_sectors = 0;
sync_blocks = 0;
do {
@@
-1885,7
+1887,7
@@
static int run(mddev_t *mddev)
if (!conf->r1bio_pool)
goto out_no_mem;
if (!conf->r1bio_pool)
goto out_no_mem;
-
ITERATE_RDEV(mddev, rdev, tmp
) {
+
rdev_for_each(rdev, tmp, mddev
) {
disk_idx = rdev->raid_disk;
if (disk_idx >= mddev->raid_disks
|| disk_idx < 0)
disk_idx = rdev->raid_disk;
if (disk_idx >= mddev->raid_disks
|| disk_idx < 0)