aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2011-03-28 08:48:01 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2012-11-08 10:44:58 -0500
commit438c8374ae3e87f44d945a2ac2901e3b14aec1a8 (patch)
treeb71e4602b575ae5b6291caa57e4894cd617d11cb
parent778bcf2e290fc9f13735c32640cdafb34794ebd1 (diff)
drbd: Do not segfault if a sync dependency reaches a diskless device
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
-rw-r--r--drivers/block/drbd/drbd_worker.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index cbbc5c7cbef4..c3d1f5f5853a 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -1319,6 +1319,8 @@ static int _drbd_may_sync_now(struct drbd_conf *mdev)
1319 struct drbd_conf *odev = mdev; 1319 struct drbd_conf *odev = mdev;
1320 1320
1321 while (1) { 1321 while (1) {
1322 if (!odev->ldev)
1323 return 1;
1322 if (odev->ldev->dc.resync_after == -1) 1324 if (odev->ldev->dc.resync_after == -1)
1323 return 1; 1325 return 1;
1324 odev = minor_to_mdev(odev->ldev->dc.resync_after); 1326 odev = minor_to_mdev(odev->ldev->dc.resync_after);