From: Andrew Morton Fix this: fs/block_dev.c: In function 'bd_claim_by_disk': fs/block_dev.c:970: warning: 'found' may be used uninitialized in this function and given that free_bd_holder() now needs free(NULL)-is-legal behaviour, we can simplify bd_release_from_kobject(). Cc: Bjorn Steinbrink Cc: Johannes Weiner Signed-off-by: Andrew Morton --- fs/block_dev.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff -puN fs/block_dev.c~bd_claim_by_disk-fix-warning fs/block_dev.c --- a/fs/block_dev.c~bd_claim_by_disk-fix-warning +++ a/fs/block_dev.c @@ -975,20 +975,20 @@ static int bd_claim_by_kobject(struct bl err = bd_claim(bdev, holder); if (err) - goto out; + goto fail; found = find_bd_holder(bdev, bo); if (found) - goto out; + goto fail; err = add_bd_holder(bdev, bo); if (err) bd_release(bdev); - -out: - if (err || found) - free_bd_holder(bo); + else + bo = NULL; +fail: mutex_unlock(&bdev->bd_mutex); + free_bd_holder(bo); return err; } @@ -1003,15 +1003,12 @@ out: static void bd_release_from_kobject(struct block_device *bdev, struct kobject *kobj) { - struct bd_holder *bo; - if (!kobj) return; mutex_lock(&bdev->bd_mutex); bd_release(bdev); - if ((bo = del_bd_holder(bdev, kobj))) - free_bd_holder(bo); + free_bd_holder(del_bd_holder(bdev, kobj)); mutex_unlock(&bdev->bd_mutex); } _