Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a6dbf2b authored by Philipp Reisner's avatar Philipp Reisner
Browse files

drbd: Fix for a race between IO and a detach operation [Bugz 262]



In D_DISKLESS we do not hand out any new references to ldev (local_cnt)
therefore waiting until all previously handed out refereces got returned
is sufficient before actually freeing mdev->ldev.

Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
parent 0798219f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1298,6 +1298,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os,
				dev_err(DEV, "Sending state in drbd_io_error() failed\n");
		}

		wait_event(mdev->misc_wait, !atomic_read(&mdev->local_cnt));
		lc_destroy(mdev->resync);
		mdev->resync = NULL;
		lc_destroy(mdev->act_log);