linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / scsi / scsi_proc.c
index 55200e4..07be62b 100644 (file)
@@ -266,6 +266,8 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf,
                lun = simple_strtoul(p + 1, &p, 0);
 
                err = scsi_add_single_device(host, channel, id, lun);
+               if (err >= 0)
+                       err = length;
 
        /*
         * Usage: echo "scsi remove-single-device 0 1 2 3" >/proc/scsi/scsi
@@ -282,13 +284,6 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf,
                err = scsi_remove_single_device(host, channel, id, lun);
        }
 
-       /*
-        * convert success returns so that we return the 
-        * number of bytes consumed.
-        */
-       if (!err)
-               err = length;
-
  out:
        free_page((unsigned long)buffer);
        return err;