Fedora Core 2.6.12-1.1390_FC4 kernel
[linux-2.6.git] / drivers / message / i2o / i2o_core.c
index b631a62..66fa24b 100644 (file)
@@ -831,12 +831,14 @@ static int i2o_issue_claim(u32 cmd, struct i2o_controller *c, int tid, u32 type)
  
 int i2o_claim_device(struct i2o_device *d, struct i2o_handler *h)
 {
+       int ret = 0;
+
        down(&i2o_configuration_lock);
        if (d->owner) {
                printk(KERN_INFO "Device claim called, but dev already owned by %s!",
                       h->name);
-               up(&i2o_configuration_lock);
-               return -EBUSY;
+               ret = -EBUSY;
+               goto out;
        }
        d->owner=h;
 
@@ -844,10 +846,11 @@ int i2o_claim_device(struct i2o_device *d, struct i2o_handler *h)
                           I2O_CLAIM_PRIMARY))
        {
                d->owner = NULL;
-               return -EBUSY;
+               ret = -EBUSY;
        }
+out:
        up(&i2o_configuration_lock);
-       return 0;
+       return ret;
 }
 
 /**