Merge branch 'uprobes/core' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg...
[linux-2.6-microblaze.git] / drivers / char / misc.c
index 2f685f6..ffa97d2 100644 (file)
@@ -114,7 +114,7 @@ static int misc_open(struct inode * inode, struct file * file)
        int minor = iminor(inode);
        struct miscdevice *c;
        int err = -ENODEV;
-       const struct file_operations *old_fops, *new_fops = NULL;
+       const struct file_operations *new_fops = NULL;
 
        mutex_lock(&misc_mtx);
        
@@ -141,17 +141,11 @@ static int misc_open(struct inode * inode, struct file * file)
        }
 
        err = 0;
-       old_fops = file->f_op;
-       file->f_op = new_fops;
+       replace_fops(file, new_fops);
        if (file->f_op->open) {
                file->private_data = c;
-               err=file->f_op->open(inode,file);
-               if (err) {
-                       fops_put(file->f_op);
-                       file->f_op = fops_get(old_fops);
-               }
+               err = file->f_op->open(inode,file);
        }
-       fops_put(old_fops);
 fail:
        mutex_unlock(&misc_mtx);
        return err;