diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2011-03-28 08:48:01 -0400 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2012-11-08 10:44:58 -0500 |
commit | 438c8374ae3e87f44d945a2ac2901e3b14aec1a8 (patch) | |
tree | b71e4602b575ae5b6291caa57e4894cd617d11cb | |
parent | 778bcf2e290fc9f13735c32640cdafb34794ebd1 (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.c | 2 |
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); |