On Mon, 2022-02-28 at 11:06 +0800, Meng Tang wrote:
Return the result from file->f_op->open() directly instead of taking this in another redundant variable.
[]
diff --git a/sound/sound_core.c b/sound/sound_core.c
[]
@@ -582,13 +582,12 @@ static int soundcore_open(struct inode *inode, struct file *file) * We rely upon the fact that we can't be unloaded while the * subdriver is there. */
int err = 0;
replace_fops(file, new_fops);
if (file->f_op->open)
err = file->f_op->open(inode,file);
return file->f_op->open(inode, file);
return err;
} return -ENODEV;return 0;
}
Perhaps clearer would be to make the typical return the last statement, return early and reduce the indentation too.
i.e.:
--- sound/sound_core.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/sound/sound_core.c b/sound/sound_core.c index 90d118cd91641..9f2cd6d91a034 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -581,22 +581,20 @@ static int soundcore_open(struct inode *inode, struct file *file) new_fops = fops_get(s->unit_fops); } spin_unlock(&sound_loader_lock); - if (new_fops) { - /* - * We rely upon the fact that we can't be unloaded while the - * subdriver is there. - */ - int err = 0; - replace_fops(file, new_fops); + if (!new_fops) + return -ENODEV;
- if (file->f_op->open) - err = file->f_op->open(inode,file); + /* + * We rely upon the fact that we can't be unloaded while the + * subdriver is there. + */ + replace_fops(file, new_fops);
- return err; - } - return -ENODEV; -} + if (!file->f_op->open) + return -ENODEV;
+ return file->f_op->open(inode,file); +} MODULE_ALIAS_CHARDEV_MAJOR(SOUND_MAJOR);
static void cleanup_oss_soundcore(void)