out_unregister:
        device_unregister(&ubi->dev);
 out:
-       ubi_err("failed to initialize sysfs for %s", ubi->ubi_name);
+       ubi_err("failed to initialize sysfs for %s, error %d",
+               ubi->ubi_name, err);
        return err;
 }
 
 
        err = cdev_add(&ubi->cdev, dev, 1);
        if (err) {
-               ubi_err("cannot add character device %s", ubi->ubi_name);
+               ubi_err("cannot add character device");
                goto out_unreg;
        }
 
        for (i = 0; i < ubi->vtbl_slots; i++)
                if (ubi->volumes[i]) {
                        err = ubi_add_volume(ubi, i);
-                       if (err)
+                       if (err) {
+                               ubi_err("cannot add volume %d", i);
                                goto out_volumes;
+                       }
                }
 
        return 0;
        cdev_del(&ubi->cdev);
 out_unreg:
        unregister_chrdev_region(ubi->cdev.dev, ubi->vtbl_slots + 1);
+       ubi_err("cannot initialize UBI %s, error %d", ubi->ubi_name, err);
        return err;
 }
 
 
        /* Make sure minimal I/O unit is power of 2 */
        if (!is_power_of_2(ubi->min_io_size)) {
-               ubi_err("bad min. I/O unit");
+               ubi_err("min. I/O unit (%d) is not power of 2",
+                       ubi->min_io_size);
                return -EINVAL;
        }
 
 
 
        err = ubi_more_update_data(ubi, vol->vol_id, buf, count);
        if (err < 0) {
-               ubi_err("cannot write %zd bytes of update data", count);
+               ubi_err("cannot write %zd bytes of update data, error %d",
+                       count, err);
                return err;
        }
 
 
        dev = MKDEV(MAJOR(ubi->cdev.dev), vol_id + 1);
        err = cdev_add(&vol->cdev, dev, 1);
        if (err) {
-               ubi_err("cannot add character device for volume %d", vol_id);
+               ubi_err("cannot add character device");
                goto out_mapping;
        }
 
        vol->dev.class = ubi_class;
        sprintf(&vol->dev.bus_id[0], "%s_%d", ubi->ubi_name, vol->vol_id);
        err = device_register(&vol->dev);
-       if (err)
+       if (err) {
+               ubi_err("cannot register device");
                goto out_gluebi;
+       }
 
        err = volume_sysfs_init(ubi, vol);
        if (err)
 out_unlock:
        spin_unlock(&ubi->volumes_lock);
        kfree(vol);
+       ubi_err("cannot create volume %d, error %d", vol_id, err);
        return err;
 
        /*
        ubi->volumes[vol_id] = NULL;
        spin_unlock(&ubi->volumes_lock);
        volume_sysfs_close(vol);
+       ubi_err("cannot create volume %d, error %d", vol_id, err);
        return err;
 }
 
        dev = MKDEV(MAJOR(ubi->cdev.dev), vol->vol_id + 1);
        err = cdev_add(&vol->cdev, dev, 1);
        if (err) {
-               ubi_err("cannot add character device for volume %d", vol_id);
+               ubi_err("cannot add character device for volume %d, error %d",
+                       vol_id, err);
                return err;
        }