From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6215DC4320E for ; Thu, 12 Aug 2021 17:44:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 48F61610A5 for ; Thu, 12 Aug 2021 17:44:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234364AbhHLRos (ORCPT ); Thu, 12 Aug 2021 13:44:48 -0400 Received: from outgoing-auth-1.mit.edu ([18.9.28.11]:36063 "EHLO outgoing.mit.edu" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232025AbhHLRor (ORCPT ); Thu, 12 Aug 2021 13:44:47 -0400 Received: from cwcc.thunk.org (pool-72-74-133-215.bstnma.fios.verizon.net [72.74.133.215]) (authenticated bits=0) (User authenticated as tytso@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 17CHiGR1016019 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Aug 2021 13:44:17 -0400 Received: by cwcc.thunk.org (Postfix, from userid 15806) id BB0D415C37C1; Thu, 12 Aug 2021 13:44:16 -0400 (EDT) Date: Thu, 12 Aug 2021 13:44:16 -0400 From: "Theodore Ts'o" To: Wang Jianchao Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, adilger.kernel@dilger.ca Subject: Re: [PATCH V3 2/5] ext4: add new helper interface ext4_try_to_trim_range() Message-ID: References: <20210724074124.25731-1-jianchao.wan9@gmail.com> <20210724074124.25731-3-jianchao.wan9@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210724074124.25731-3-jianchao.wan9@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jul 24, 2021 at 03:41:21PM +0800, Wang Jianchao wrote: > From: Wang Jianchao > > There is no functional change in this patch but just split the > codes, which serachs free block and does trim, into a new function > ext4_try_to_trim_range. This is preparing for the following async > backgroup discard. > > Reviewed-by: Andreas Dilger > Signed-off-by: Wang Jianchao > --- > fs/ext4/mballoc.c | 102 ++++++++++++++++++++++++++-------------------- > 1 file changed, 57 insertions(+), 45 deletions(-) > > diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c > index 018d5d3c6eeb..e3844152a643 100644 > --- a/fs/ext4/mballoc.c > +++ b/fs/ext4/mballoc.c > @@ -6218,6 +6218,54 @@ __acquires(bitlock) > return ret; > } > > +static int ext4_try_to_trim_range(struct super_block *sb, > + struct ext4_buddy *e4b, ext4_grpblk_t start, > + ext4_grpblk_t max, ext4_grpblk_t minblocks) > +{ > + ext4_grpblk_t next, count, free_count; > + void *bitmap; > + int ret = 0; > + > + bitmap = e4b->bd_bitmap; > + start = (e4b->bd_info->bb_first_free > start) ? > + e4b->bd_info->bb_first_free : start; > + count = 0; > + free_count = 0; > + > + while (start <= max) { > + start = mb_find_next_zero_bit(bitmap, max + 1, start); > + if (start > max) > + break; > + next = mb_find_next_bit(bitmap, max + 1, start); > + > + if ((next - start) >= minblocks) { > + ret = ext4_trim_extent(sb, start, next - start, e4b); > + if (ret && ret != -EOPNOTSUPP) > + break; > + ret = 0; > + count += next - start; > + } "ret" is only used inside the if statement, so this might be better as: > + if ((next - start) >= minblocks) { > + int ret = ext4_trim_extent(sb, start, next - start, e4b); > + > + if (ret && ret != -EOPNOTSUPP) > + break; > + count += next - start; > + } ... and then drop the "int ret = 0" above. Otherwise, looks good. - Ted