Merge tag 'dax-misc-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm...
[linux-2.6-microblaze.git] / drivers / media / media-devnode.c
index 29409f4..b66dc9d 100644 (file)
@@ -197,10 +197,11 @@ static int media_release(struct inode *inode, struct file *filp)
        if (mdev->fops->release)
                mdev->fops->release(filp);
 
+       filp->private_data = NULL;
+
        /* decrease the refcount unconditionally since the release()
           return value is ignored. */
        put_device(&mdev->dev);
-       filp->private_data = NULL;
        return 0;
 }
 
@@ -267,8 +268,11 @@ int __must_check media_devnode_register(struct media_devnode *mdev,
        return 0;
 
 error:
+       mutex_lock(&media_devnode_lock);
        cdev_del(&mdev->cdev);
        clear_bit(mdev->minor, media_devnode_nums);
+       mutex_unlock(&media_devnode_lock);
+
        return ret;
 }