do_lock_ioctl. Make locking return a less confusing error code
on failure. Make locking fail if process already has lock (alternative
would be to make locking recursive, but I don't see a reason to bother).
return -EINVAL;
s=dev->subdevices+arg;
+ comedi_spin_lock_irqsave(&big_comedi_lock, flags);
if(s->busy)
+ {
+ comedi_spin_unlock_irqrestore(&big_comedi_lock, flags);
return -EBUSY;
-
- comedi_spin_lock_irqsave(&big_comedi_lock, flags);
-
- if(s->lock && s->lock!=file){
- ret=-EACCES;
+ }
+ if(s->lock){
+ ret=-EBUSY;
}else{
s->lock=file;
}
-
comedi_spin_unlock_irqrestore(&big_comedi_lock, flags);
if(ret<0)
if(s->busy){
ret = -EBUSY;
}else{
- if(s->lock && s->lock!=d){
- ret = -EACCES;
+ if(s->lock){
+ ret = -EBUSY;
}else{
s->lock = d;
}