2023-09-13 16:17:45

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH 10/19] USB: gadget/legacy: remove sb_mutex

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 <[email protected]>
> ---

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
>


2023-09-26 09:24:57

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 10/19] USB: gadget/legacy: remove sb_mutex

On Wed, Sep 13, 2023 at 12:10:56PM -0400, Alan Stern wrote:
> 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 <[email protected]>
> > ---
>
> You might mention that this is essentially a reversion of commit
> d18dcfe9860e ("USB: gadgetfs: Fix race between mounting and
> unmounting").

The difference we have now is that sb creation waits for the
old one to go way, but I'll add a notice on all that.