On Tue, Sep 05, 2017 at 01:30:04AM +0800, Coly Li wrote:
>
> When you mentioned "whole chunk of code", do you mean the following
> block of code ?
>
>
> 1960 if (IS_ERR(bdev)) {
> ========= start of whole chunk of code ============
> 1961 if (bdev == ERR_PTR(-EBUSY)) {
> 1962 bdev = lookup_bdev(strim(path));
> 1963 mutex_lock(&bch_register_lock);
> 1964 if (!IS_ERR(bdev) && bch_is_open(bdev))
> 1965 err = "device already registered";
> 1966 else
> 1967 err = "device busy";
> 1968 mutex_unlock(&bch_register_lock);
> 1969 if (!IS_ERR(bdev))
> 1970 bdput(bdev);
> 1971 if (attr == &ksysfs_register_quiet)
> 1972 goto out;
> 1973 }
> ========= end of whole chunk of code ============
> 1974 goto err;
> 1975 }
>
> I don't mind to remove it, just double check I don't misunderstand what
> you meant.
Yes, that's the problematic block.