Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754488AbbESHfG (ORCPT ); Tue, 19 May 2015 03:35:06 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:34356 "EHLO mail-wi0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754254AbbESHe7 (ORCPT ); Tue, 19 May 2015 03:34:59 -0400 Message-ID: <555AE7A0.9040505@plexistor.com> Date: Tue, 19 May 2015 10:34:56 +0300 From: Boaz Harrosh User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Brian Norris , Jens Axboe CC: linux-kernel@vger.kernel.org, Christoph Hellwig Subject: Re: [RFC] block: remove never-modified global variable References: <1431990532-7999-1-git-send-email-computersforpeace@gmail.com> <555AE3F0.5010109@plexistor.com> In-Reply-To: <555AE3F0.5010109@plexistor.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2508 Lines: 90 On 05/19/2015 10:19 AM, Boaz Harrosh wrote: <> > But specially now that you are unconditionally printing it. It is better > to just combine the two statements. See suggested patch below: > Actually we can even do better: diff --git a/block/partitions/check.c b/block/partitions/check.c index 513c601..9bea23d 100644 --- a/block/partitions/check.c +++ b/block/partitions/check.c @@ -160,35 +160,31 @@ check_partition(struct gendisk *hd, struct block_device *bdev) i = res = err = 0; while (!res && check_part[i]) { memset(state->parts, 0, state->limit * sizeof(state->parts[0])); res = check_part[i++](state); if (res < 0) { /* We have hit an I/O error which we don't report now. * But record it, and let the others do their job. */ err = res; res = 0; } } boaz> When we exit the loop res can only be (res >= 0) if (res > 0) { printk(KERN_INFO "%s", state->pp_buf); free_page((unsigned long)state->pp_buf); return state; boaz> When bigger we exit here } if (state->access_beyond_eod) err = -ENOSPC; boaz> So by this stage res can only be == 0. So we should just do: if (err) /* The partition is unrecognized. So report I/O errors if there were any */ - res = err; - if (res) { - strlcat(state->pp_buf, - " unable to read partition table\n", PAGE_SIZE); - printk(KERN_INFO "%s", state->pp_buf); - } + printk(KERN_INFO "%s unable to read partition table\n", + state->pp_buf); free_page((unsigned long)state->pp_buf); free_partitions(state); return ERR_PTR(res); } ---- Here is a proper diff: ---- diff --git a/block/partitions/check.c b/block/partitions/check.c index 513c601..9bea23d 100644 --- a/block/partitions/check.c +++ b/block/partitions/check.c @@ -181,12 +181,8 @@ check_partition(struct gendisk *hd, struct block_device *bdev) err = -ENOSPC; if (err) /* The partition is unrecognized. So report I/O errors if there were any */ - res = err; - if (res) { - strlcat(state->pp_buf, - " unable to read partition table\n", PAGE_SIZE); - printk(KERN_INFO "%s", state->pp_buf); - } + printk(KERN_INFO "%s unable to read partition table\n", + state->pp_buf); free_page((unsigned long)state->pp_buf); free_partitions(state); Thanks Boaz -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/