[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