On Wed, Sep 13, 2023 at 08:10:04AM -0300, Christoph Hellwig wrote: > Creating new a new super_block vs freeing the old one for single instance > file systems is serialized by the wait for SB_DEAD. > > Remove the superfluous sb_mutex. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- You might mention that this is essentially a reversion of commit d18dcfe9860e ("USB: gadgetfs: Fix race between mounting and unmounting"). Alan Stern > drivers/usb/gadget/legacy/inode.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c > index ce9e31f3d26bcc..a203266bc0dc82 100644 > --- a/drivers/usb/gadget/legacy/inode.c > +++ b/drivers/usb/gadget/legacy/inode.c > @@ -229,7 +229,6 @@ static void put_ep (struct ep_data *data) > */ > > static const char *CHIP; > -static DEFINE_MUTEX(sb_mutex); /* Serialize superblock operations */ > > /*----------------------------------------------------------------------*/ > > @@ -2012,8 +2011,6 @@ gadgetfs_fill_super (struct super_block *sb, struct fs_context *fc) > struct dev_data *dev; > int rc; > > - mutex_lock(&sb_mutex); > - > if (the_device) { > rc = -ESRCH; > goto Done; > @@ -2069,7 +2066,6 @@ gadgetfs_fill_super (struct super_block *sb, struct fs_context *fc) > rc = -ENOMEM; > > Done: > - mutex_unlock(&sb_mutex); > return rc; > } > > @@ -2092,7 +2088,6 @@ static int gadgetfs_init_fs_context(struct fs_context *fc) > static void > gadgetfs_kill_sb (struct super_block *sb) > { > - mutex_lock(&sb_mutex); > kill_litter_super (sb); > if (the_device) { > put_dev (the_device); > @@ -2100,7 +2095,6 @@ gadgetfs_kill_sb (struct super_block *sb) > } > kfree(CHIP); > CHIP = NULL; > - mutex_unlock(&sb_mutex); > } > > /*----------------------------------------------------------------------*/ > -- > 2.39.2 >