On 2017/9/5 下午2:43, Christoph Hellwig wrote: > 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. > Hi Christoph, I tested the code, and my patch which removes the above code. The result is, I feel the above chunk of code is useful. When I tried to register a device and it was already registered. Without the above code, I only saw "failed to open device", didn't realize it was because this device is registered already. After adding the above code back, I knew where the problem was. The above chunk of code improves user experience and provides more detailed diagnose information, it is useful. Then I suggest to keep the code here and pick up Jan's patch. Thanks. -- Coly Li -- To unsubscribe from this list: send the line "unsubscribe linux-bcache" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html