diff options
| author | Mateusz Guzik <mjguzik@gmail.com> | 2025-09-09 09:54:58 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-09-15 14:28:37 +0200 |
| commit | af67f4c1cd0730810521ef4bc194c21ac3683d97 (patch) | |
| tree | ec4de056a7459f064d08614843f6cb3dad1e18a6 /fs/inode.c | |
| parent | 796667c9dc94ef9431d4ac620021527b273080e1 (diff) | |
| download | random-af67f4c1cd0730810521ef4bc194c21ac3683d97.tar.gz | |
fs: use the switch statement in init_special_inode()
Similar to may_open().
No functional changes.
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/inode.c')
| -rw-r--r-- | fs/inode.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/fs/inode.c b/fs/inode.c index cc0f717a140d3e..7b81d4a101b8c7 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -2518,21 +2518,28 @@ void __init inode_init(void) void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev) { inode->i_mode = mode; - if (S_ISCHR(mode)) { + switch (inode->i_mode & S_IFMT) { + case S_IFCHR: inode->i_fop = &def_chr_fops; inode->i_rdev = rdev; - } else if (S_ISBLK(mode)) { + break; + case S_IFBLK: if (IS_ENABLED(CONFIG_BLOCK)) inode->i_fop = &def_blk_fops; inode->i_rdev = rdev; - } else if (S_ISFIFO(mode)) + break; + case S_IFIFO: inode->i_fop = &pipefifo_fops; - else if (S_ISSOCK(mode)) - ; /* leave it no_open_fops */ - else + break; + case S_IFSOCK: + /* leave it no_open_fops */ + break; + default: printk(KERN_DEBUG "init_special_inode: bogus i_mode (%o) for" " inode %s:%lu\n", mode, inode->i_sb->s_id, inode->i_ino); + break; + } } EXPORT_SYMBOL(init_special_inode); |
