From d21db956dc24b5e31cb3fbb02d0635700eb3b6df Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Sat, 20 Mar 2004 16:37:56 -0800 Subject: [PATCH] [PATCH] Fix error value for opening block devices From: Ulrich Drepper Opening a non-existing block device currently yields an ENXIO error. Doing the same for char devices produces the correct error ENODEV. --- fs/block_dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index a07e66d7809bf..894f2dc000206 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -550,7 +550,7 @@ static int do_open(struct block_device *bdev, struct file *file) { struct module *owner = NULL; struct gendisk *disk; - int ret = -ENXIO; + int ret = -ENODEV; int part; file->f_mapping = bdev->bd_inode->i_mapping; @@ -563,6 +563,7 @@ static int do_open(struct block_device *bdev, struct file *file) } owner = disk->fops->owner; + ret = -ENXIO; down(&bdev->bd_sem); if (!bdev->bd_openers) { bdev->bd_disk = disk; -- 2.53.0