On Wed, Jun 07, 2023 at 11:54:02PM +0200, David Disseldorp wrote: > The fsg_lun_is_open() test can be eliminated and the code merged with > the preceding conditional, because the LUN won't be open if > cfg->filename wasn't set. Similarly, the error_lun label will never be > reached with an open lun (non-null filp) so remove the unnecessary > fsg_lun_close() call. > > Signed-off-by: David Disseldorp <ddiss@xxxxxxx> > --- > Changes since v1: > - reword commit message, following Alan Stern's suggestions > > drivers/usb/gadget/function/f_mass_storage.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c > index 3a30feb47073f..da07e45ae6df5 100644 > --- a/drivers/usb/gadget/function/f_mass_storage.c > +++ b/drivers/usb/gadget/function/f_mass_storage.c > @@ -2857,7 +2857,7 @@ int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg, > const char **name_pfx) > { > struct fsg_lun *lun; > - char *pathbuf, *p; > + char *pathbuf = NULL, *p = "(no medium)"; > int rc = -ENOMEM; > > if (id >= ARRAY_SIZE(common->luns)) > @@ -2907,12 +2907,9 @@ int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg, > rc = fsg_lun_open(lun, cfg->filename); > if (rc) > goto error_lun; > - } > > - pathbuf = kmalloc(PATH_MAX, GFP_KERNEL); > - p = "(no medium)"; > - if (fsg_lun_is_open(lun)) { > p = "(error)"; > + pathbuf = kmalloc(PATH_MAX, GFP_KERNEL); > if (pathbuf) { > p = file_path(lun->filp, pathbuf, PATH_MAX); > if (IS_ERR(p)) > @@ -2931,7 +2928,6 @@ int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg, > error_lun: > if (device_is_registered(&lun->dev)) > device_unregister(&lun->dev); > - fsg_lun_close(lun); > common->luns[id] = NULL; > error_sysfs: > kfree(lun); Okay, now I see what's going on. Thanks for making this change. Reviewed-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> Alan Stern