[PATCH] splice: potential !page dereference
[safe/jmp/linux-2.6] / fs / block_dev.c
index 3f36df7..af88c43 100644 (file)
@@ -723,11 +723,11 @@ static int bd_claim_by_kobject(struct block_device *bdev, void *holder,
        if (!bo)
                return -ENOMEM;
 
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        res = bd_claim(bdev, holder);
        if (res || !add_bd_holder(bdev, bo))
                free_bd_holder(bo);
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
 
        return res;
 }
@@ -748,11 +748,11 @@ static void bd_release_from_kobject(struct block_device *bdev,
        if (!kobj)
                return;
 
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        bd_release(bdev);
        if ((bo = del_bd_holder(bdev, kobj)))
                free_bd_holder(bo);
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
 }
 
 /**
@@ -1087,7 +1087,7 @@ struct address_space_operations def_blk_aops = {
        .direct_IO      = blkdev_direct_IO,
 };
 
-struct file_operations def_blk_fops = {
+const struct file_operations def_blk_fops = {
        .open           = blkdev_open,
        .release        = blkdev_close,
        .llseek         = block_llseek,