Re: [PATCH 01/19] bcache: Fix leak of bdev reference
From: Coly Li <hidden>
Date: 2017-09-06 05:25:10
Also in:
linux-bcache
On 2017/9/5 下午2:43, Christoph Hellwig wrote:
On Tue, Sep 05, 2017 at 01:30:04AM +0800, Coly Li wrote:quoted
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