diff options
author | Christoph Hellwig <hch@lst.de> | 2023-05-08 17:44:05 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-05-20 04:48:53 +0300 |
commit | bda2795a630b2f6c417675bfbf4d90ef7503dfc7 (patch) | |
tree | 43c2281158fd9d0a10179eeeee4fd9f33e91d415 /fs/inode.c | |
parent | 3e49c1e4a6152b6ad758a28ecce8fb470f46f6ed (diff) | |
download | linux-bda2795a630b2f6c417675bfbf4d90ef7503dfc7.tar.xz |
fs: remove the special !CONFIG_BLOCK def_blk_fops
def_blk_fops always returns -ENODEV, which dosn't match the return value
of a non-existing block device with CONFIG_BLOCK, which is -ENXIO.
Just remove the extra implementation and fall back to the default
no_open_fops that always returns -ENXIO.
Fixes: 9361401eb761 ("[PATCH] BLOCK: Make it possible to disable the block layer [try #6]")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20230508144405.41792-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/inode.c b/fs/inode.c index 577799b7855f..4d6a1544e95b 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -2264,7 +2264,8 @@ void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev) inode->i_fop = &def_chr_fops; inode->i_rdev = rdev; } else if (S_ISBLK(mode)) { - inode->i_fop = &def_blk_fops; + if (IS_ENABLED(CONFIG_BLOCK)) + inode->i_fop = &def_blk_fops; inode->i_rdev = rdev; } else if (S_ISFIFO(mode)) inode->i_fop = &pipefifo_fops; |