[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 19/20] bcache: remove a superflous lookup_bdev all



On 11/18/20 4:47 PM, Christoph Hellwig wrote:
> Don't bother to call lookup_bdev for just a slightly different error
> message without any functional change.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>ist

Hi Christoph,

NACK. This removing error message is frequently triggered and observed,
and distinct a busy device and an already registered device is important
(the first one is critical error and second one is not).

Remove such error message will be a functional regression.

Coly Li

> ---
>  drivers/md/bcache/super.c | 44 +--------------------------------------
>  1 file changed, 1 insertion(+), 43 deletions(-)
> 
> diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
> index e5db2cdd114112..5c531ed7785280 100644
> --- a/drivers/md/bcache/super.c
> +++ b/drivers/md/bcache/super.c
> @@ -2380,40 +2380,6 @@ kobj_attribute_write(register,         
> register_bcache);
>  kobj_attribute_write(register_quiet, register_bcache);
>  kobj_attribute_write(pendings_cleanup,       bch_pending_bdevs_cleanup);
>  
> -static bool bch_is_open_backing(struct block_device *bdev)
> -{
> -     struct cache_set *c, *tc;
> -     struct cached_dev *dc, *t;
> -
> -     list_for_each_entry_safe(c, tc, &bch_cache_sets, list)
> -             list_for_each_entry_safe(dc, t, &c->cached_devs, list)
> -                     if (dc->bdev == bdev)
> -                             return true;
> -     list_for_each_entry_safe(dc, t, &uncached_devices, list)
> -             if (dc->bdev == bdev)
> -                     return true;
> -     return false;
> -}
> -
> -static bool bch_is_open_cache(struct block_device *bdev)
> -{
> -     struct cache_set *c, *tc;
> -
> -     list_for_each_entry_safe(c, tc, &bch_cache_sets, list) {
> -             struct cache *ca = c->cache;
> -
> -             if (ca->bdev == bdev)
> -                     return true;
> -     }
> -
> -     return false;
> -}
> -
> -static bool bch_is_open(struct block_device *bdev)
> -{
> -     return bch_is_open_cache(bdev) || bch_is_open_backing(bdev);
> -}
> -
>  struct async_reg_args {
>       struct delayed_work reg_work;
>       char *path;
> @@ -2535,15 +2501,7 @@ static ssize_t register_bcache(struct kobject *k, 
> struct kobj_attribute *attr,
>                                 sb);
>       if (IS_ERR(bdev)) {
>               if (bdev == ERR_PTR(-EBUSY)) {
> -                     bdev = lookup_bdev(strim(path));
> -                     mutex_lock(&bch_register_lock);
> -                     if (!IS_ERR(bdev) && bch_is_open(bdev))
> -                             err = "device already registered";
> -                     else
> -                             err = "device busy";
> -                     mutex_unlock(&bch_register_lock);
> -                     if (!IS_ERR(bdev))
> -                             bdput(bdev);
> +                     err = "device busy";
>                       if (attr == &ksysfs_register_quiet)
>                               goto done;
>               }
> 






 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.