aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2010-11-05 04:55:18 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-03-10 05:18:59 -0500
commit9bd28d3c90c80c7ec46085de281b38f67331da41 (patch)
tree92bfb9ec78eaea619888811903ccc2512521c6de /drivers
parent439d595379f87ec95249da21122eb085866f8ba9 (diff)
drbd: factor out drbd_rs_controller_reset
Preparation patch to be able to use the auto-throttling resync controller for online-verify requests as well. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/drbd/drbd_int.h1
-rw-r--r--drivers/block/drbd/drbd_worker.c19
2 files changed, 13 insertions, 7 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index 7131bf2af6ae..85207b275e41 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -1499,6 +1499,7 @@ extern int drbd_resync_finished(struct drbd_conf *mdev);
1499extern int drbd_md_sync_page_io(struct drbd_conf *mdev, 1499extern int drbd_md_sync_page_io(struct drbd_conf *mdev,
1500 struct drbd_backing_dev *bdev, sector_t sector, int rw); 1500 struct drbd_backing_dev *bdev, sector_t sector, int rw);
1501extern void drbd_ov_oos_found(struct drbd_conf*, sector_t, int); 1501extern void drbd_ov_oos_found(struct drbd_conf*, sector_t, int);
1502extern void drbd_rs_controller_reset(struct drbd_conf *mdev);
1502 1503
1503static inline void ov_oos_print(struct drbd_conf *mdev) 1504static inline void ov_oos_print(struct drbd_conf *mdev)
1504{ 1505{
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index a050eb0d93ba..971e9b3b13ba 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -1439,6 +1439,17 @@ int drbd_alter_sa(struct drbd_conf *mdev, int na)
1439 return retcode; 1439 return retcode;
1440} 1440}
1441 1441
1442void drbd_rs_controller_reset(struct drbd_conf *mdev)
1443{
1444 atomic_set(&mdev->rs_sect_in, 0);
1445 atomic_set(&mdev->rs_sect_ev, 0);
1446 mdev->rs_in_flight = 0;
1447 mdev->rs_planed = 0;
1448 spin_lock(&mdev->peer_seq_lock);
1449 fifo_set(&mdev->rs_plan_s, 0);
1450 spin_unlock(&mdev->peer_seq_lock);
1451}
1452
1442/** 1453/**
1443 * drbd_start_resync() - Start the resync process 1454 * drbd_start_resync() - Start the resync process
1444 * @mdev: DRBD device. 1455 * @mdev: DRBD device.
@@ -1556,13 +1567,7 @@ void drbd_start_resync(struct drbd_conf *mdev, enum drbd_conns side)
1556 drbd_resync_finished(mdev); 1567 drbd_resync_finished(mdev);
1557 } 1568 }
1558 1569
1559 atomic_set(&mdev->rs_sect_in, 0); 1570 drbd_rs_controller_reset(mdev);
1560 atomic_set(&mdev->rs_sect_ev, 0);
1561 mdev->rs_in_flight = 0;
1562 mdev->rs_planed = 0;
1563 spin_lock(&mdev->peer_seq_lock);
1564 fifo_set(&mdev->rs_plan_s, 0);
1565 spin_unlock(&mdev->peer_seq_lock);
1566 /* ns.conn may already be != mdev->state.conn, 1571 /* ns.conn may already be != mdev->state.conn,
1567 * we may have been paused in between, or become paused until 1572 * we may have been paused in between, or become paused until
1568 * the timer triggers. 1573 * the timer triggers.