]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - fs/block_dev.c
mx53: CPU HW idle state set to WAIT_CLOCKED
[linux-imx.git] / fs / block_dev.c
index 99d6af8117473b661a64a5f05e58a024570d4fe0..4c54c86e0289f970bc0566e0e865b7cda9b959ce 100644 (file)
@@ -681,8 +681,8 @@ retry:
        if (!bd_may_claim(bdev, whole, holder))
                return -EBUSY;
 
-       /* if someone else is claiming, wait for it to finish */
-       if (whole->bd_claiming && whole->bd_claiming != holder) {
+       /* if claiming is already in progress, wait for it to finish */
+       if (whole->bd_claiming) {
                wait_queue_head_t *wq = bit_waitqueue(&whole->bd_claiming, 0);
                DEFINE_WAIT(wait);
 
@@ -1339,10 +1339,12 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
        /*
         * hooks: /n/, see "layering violations".
         */
-       ret = devcgroup_inode_permission(bdev->bd_inode, perm);
-       if (ret != 0) {
-               bdput(bdev);
-               return ret;
+       if (!for_part) {
+               ret = devcgroup_inode_permission(bdev->bd_inode, perm);
+               if (ret != 0) {
+                       bdput(bdev);
+                       return ret;
+               }
        }
 
        lock_kernel();