[Drbd-dev] Possible synchronization problems in 8.0.6
Graham, Simon
Simon.Graham at stratus.com
Mon Nov 26 00:17:27 CET 2007
> this is not true.
>
> STATIC void drbd_global_lock(void)
> {
> drbd_dev *mdev;
> int i;
>
> local_irq_disable();
> for (i=0; i < minor_count; i++) {
> if(!(mdev = minor_to_mdev(i))) continue;
> spin_lock(&mdev->req_lock);
> }
> }
>
> this disables irq,
> then aquires _all_ reqest locks of all (allocated) devices _in order_.
>
Hah! It would help if I read the code properly wouldn't it... OK, so
this isn't the cause of my problems...
Well, that's possibly better then -- maybe my problems are purely caused
by not kicking the resync timer and by the re-ordering of netlink
broadcasts because the after_state_change is not always handled in a
worker..
I will look at changing all after-state-changes to be scheduled and
backing out Phil's fix for kicking the resync timer.
Thanks,
/simgr
More information about the drbd-dev
mailing list