]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/mtd/ubi/cdev.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6
[karo-tx-linux.git] / drivers / mtd / ubi / cdev.c
index 8087b0462771db7d4efbe55053f74e14eb37cae4..f237ddbb271307f8252c3582506b1f32b4c13f98 100644 (file)
@@ -113,7 +113,8 @@ static int vol_cdev_open(struct inode *inode, struct file *file)
        else
                mode = UBI_READONLY;
 
-       dbg_gen("open volume %d, mode %d", vol_id, mode);
+       dbg_gen("open device %d, volume %d, mode %d",
+               ubi_num, vol_id, mode);
 
        desc = ubi_open_volume(ubi_num, vol_id, mode);
        if (IS_ERR(desc))
@@ -128,7 +129,8 @@ static int vol_cdev_release(struct inode *inode, struct file *file)
        struct ubi_volume_desc *desc = file->private_data;
        struct ubi_volume *vol = desc->vol;
 
-       dbg_gen("release volume %d, mode %d", vol->vol_id, desc->mode);
+       dbg_gen("release device %d, volume %d, mode %d",
+               vol->ubi->ubi_num, vol->vol_id, desc->mode);
 
        if (vol->updating) {
                ubi_warn("update of volume %d not finished, volume is damaged",
@@ -393,7 +395,7 @@ static ssize_t vol_cdev_write(struct file *file, const char __user *buf,
                        vol->corrupted = 1;
                }
                vol->checked = 1;
-               ubi_gluebi_updated(vol);
+               ubi_volume_notify(ubi, vol, UBI_VOLUME_UPDATED);
                revoke_exclusive(desc, UBI_READWRITE);
        }
 
@@ -558,7 +560,7 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
                break;
        }
 
-       /* Set volume property command*/
+       /* Set volume property command */
        case UBI_IOCSETPROP:
        {
                struct ubi_set_prop_req req;
@@ -571,9 +573,9 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
                }
                switch (req.property) {
                case UBI_PROP_DIRECT_WRITE:
-                       mutex_lock(&ubi->volumes_mutex);
+                       mutex_lock(&ubi->device_mutex);
                        desc->vol->direct_writes = !!req.value;
-                       mutex_unlock(&ubi->volumes_mutex);
+                       mutex_unlock(&ubi->device_mutex);
                        break;
                default:
                        err = -EINVAL;
@@ -810,7 +812,9 @@ static int rename_volumes(struct ubi_device *ubi,
                        re->desc->vol->vol_id, re->desc->vol->name);
        }
 
+       mutex_lock(&ubi->device_mutex);
        err = ubi_rename_volumes(ubi, &rename_list);
+       mutex_unlock(&ubi->device_mutex);
 
 out_free:
        list_for_each_entry_safe(re, re1, &rename_list, list) {
@@ -854,9 +858,9 @@ static long ubi_cdev_ioctl(struct file *file, unsigned int cmd,
                if (err)
                        break;
 
-               mutex_lock(&ubi->volumes_mutex);
+               mutex_lock(&ubi->device_mutex);
                err = ubi_create_volume(ubi, &req);
-               mutex_unlock(&ubi->volumes_mutex);
+               mutex_unlock(&ubi->device_mutex);
                if (err)
                        break;
 
@@ -885,9 +889,9 @@ static long ubi_cdev_ioctl(struct file *file, unsigned int cmd,
                        break;
                }
 
-               mutex_lock(&ubi->volumes_mutex);
+               mutex_lock(&ubi->device_mutex);
                err = ubi_remove_volume(desc, 0);
-               mutex_unlock(&ubi->volumes_mutex);
+               mutex_unlock(&ubi->device_mutex);
 
                /*
                 * The volume is deleted (unless an error occurred), and the
@@ -924,9 +928,9 @@ static long ubi_cdev_ioctl(struct file *file, unsigned int cmd,
                pebs = div_u64(req.bytes + desc->vol->usable_leb_size - 1,
                               desc->vol->usable_leb_size);
 
-               mutex_lock(&ubi->volumes_mutex);
+               mutex_lock(&ubi->device_mutex);
                err = ubi_resize_volume(desc, pebs);
-               mutex_unlock(&ubi->volumes_mutex);
+               mutex_unlock(&ubi->device_mutex);
                ubi_close_volume(desc);
                break;
        }
@@ -950,9 +954,7 @@ static long ubi_cdev_ioctl(struct file *file, unsigned int cmd,
                        break;
                }
 
-               mutex_lock(&ubi->volumes_mutex);
                err = rename_volumes(ubi, req);
-               mutex_unlock(&ubi->volumes_mutex);
                kfree(req);
                break;
        }