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>
This commit is contained in:
+13
-6
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user