Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2834668lqp; Mon, 25 Mar 2024 10:28:43 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVke00svTeeTrr2rbOa4FMrlzAmgJUDd9LEW8whiOJ7X091oWLvj4XqYq9Qg091W39J4yDfTIhP+a1ggfHRSBxYpGbmRy1AzJjA4Odegw== X-Google-Smtp-Source: AGHT+IFZU5g1Q27/XIdnjhzGtZimYvhywVfmL4HTf5MzoVv9o2fM/9bToYIWqmtAqrJvDbcGZu17 X-Received: by 2002:a05:6a20:244d:b0:1a3:c3fd:8e04 with SMTP id t13-20020a056a20244d00b001a3c3fd8e04mr6084833pzc.14.1711387723425; Mon, 25 Mar 2024 10:28:43 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711387723; cv=pass; d=google.com; s=arc-20160816; b=mRi7lQfo7Oq/2WmBZSDPKtY15+kjjSeJyoVNndgw5yvItxnerBMq/xFqFEr/X5Hy31 SHkFU3mudc4nSxzmVmyvV1sJQTgl+jPASvo3RZ0v1MoZa6ZkDcUT65Dd3/nFYOR7CD+k 6DoMBJjZWJfVqUu4CoVC8QX+gOthZvNNCgtIm7rkZ1qa00FYQI6f+ddbaPnG1Veae14n 1Fg6k6aC0IF4fvyVriXC1xNaLF1VuoWXv+vdP6RXKt7CZM52AdR/dV30Vj93fFTYqw4F CbOVW0mRC4O1mpHFNyVnhSsOXIkN6rY1WPk2MeXI/CacBKwfnbDiAMFqc18x7nVhNoQ3 TKWA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=+5Pe9GVXVwxZzSpSsIvwg3FStmuOFfFebPRoALQnWTw=; fh=X1/oBJvTGJUQ0YtRp03u+3tPfRw/dXXALWynfOSlfQQ=; b=twGNMBh2smZZnv4j3LZxexZ/lKIuxZ+BbZpjm1SXRl7EhhADFyg9JlP99RzZsXJZB3 XFHuCCwHHgyXPtlwtY0avykWnWT1GGkEXK7sBViJm08suz3gur9baDY6e5kzQrRvEBtm aV5uCfv+3kh8yq9CFe3TQgF2+cv0tYQqbDaJq3x2tzJJ4vN0jq32T75WvguCRx0jEraY MMhgMpP7nbLIjlKwdGt72IIEqQSrwjJBN0qZbHa2b+A4+v1F3cUrj+iwOXJXQX34z+Eo o3BVdEdld29dbQyFKriM3uXwojwgwbW+FG6ahKzfzUXC+BovH16nfkEEY5sWuRmW0nIW KsvA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GBjHiojb; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-117361-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-117361-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id i25-20020a632219000000b005d81ba6649esi7985942pgi.891.2024.03.25.10.28.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 10:28:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-117361-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GBjHiojb; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-117361-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-117361-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 502CFB448B9 for ; Mon, 25 Mar 2024 16:58:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DCEAA6BFD4; Mon, 25 Mar 2024 15:27:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GBjHiojb" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 146546BB29 for ; Mon, 25 Mar 2024 15:27:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711380457; cv=none; b=lUpXseidjNqvlGz1OpwfMiCmn89EpwTaHkmIsfc7o9EycYpCUplY8X3sQWtYZZWcyZE5fFAaBXxBcfXvhgy2pDkT4tdzDljIW4fHYqT+xk8qE6plO/iklqQzQuYvgvBi4tYJ7l68AXowJmRlvHib/wSdldPeHiYSYgSooDAWpcQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711380457; c=relaxed/simple; bh=bYZG5pNg1OWqiulIpBARahqIyHHQkI5zrD80VoIQK0Q=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=UJjOJykVH730gUgB9PccpQlSNZLZ3HMODYFmzHvCHByJM7cFDp62UcLExpvR6GzWilfAVwi0vJQ8Ahr71sL+R3p04BNatEdxLRaijx90y3E8oayD62kb2d7KboFZ7bs01f8oHlbw7juXqgs3fLFTJjtpVOIWTYgKYeinmSLteDw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GBjHiojb; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id E30A5C433C7; Mon, 25 Mar 2024 15:27:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711380456; bh=bYZG5pNg1OWqiulIpBARahqIyHHQkI5zrD80VoIQK0Q=; h=From:To:Cc:Subject:Date:From; b=GBjHiojbSc3MWX4fAZuZ2TnKpEkMthvhxaoCec4169pTA63MnK8Wl6PIBiPALq0t9 ziS1E8AxNvudgpkOGpY7VIO+OHKo3lWjqjVt/q1nH7906H8RzWD0F1Pk+zUtaxSznw Me180qDYEg1eSICiOC261/dfJGqmGpEM2gdScfa+69N2QGDFT9oWqYepausBiUDo0s 3a72LRom7rt5dDMYFMOjSSWX+yXdi0w4tZB/eKkZCmjb0EiKYHQ4mawf9XmkeuEJkv yUuHVXIy8X3JAjBvia+glNKr2QGk4eUlt1DWBVaQ/jXszZ+MdnQ5zUihwTdkuGErsI VnbLu+QYGXVOw== From: Chao Yu To: jaegeuk@kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Chao Yu Subject: [PATCH 1/2] f2fs: introduce map_is_mergeable() for cleanup Date: Mon, 25 Mar 2024 23:27:25 +0800 Message-Id: <20240325152726.797423-1-chao@kernel.org> X-Mailer: git-send-email 2.40.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit No logic changes. Signed-off-by: Chao Yu --- fs/f2fs/data.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 5ef1874b572a..9c000ca4f808 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1507,6 +1507,23 @@ static bool f2fs_map_blocks_cached(struct inode *inode, return true; } +static bool map_is_mergeable(struct f2fs_sb_info *sbi, + struct f2fs_map_blocks *map, + block_t blkaddr, int flag, int bidx, + int ofs) +{ + if (map->m_multidev_dio && map->m_bdev != FDEV(bidx).bdev) + return false; + if (map->m_pblk != NEW_ADDR && + blkaddr == (map->m_pblk + ofs)) + return true; + if (map->m_pblk == NEW_ADDR && blkaddr == NEW_ADDR) + return true; + if (flag == F2FS_GET_BLOCK_PRE_DIO) + return true; + return false; +} + /* * f2fs_map_blocks() tries to find or build mapping relationship which * maps continuous logical blocks to physical blocks, and return such @@ -1653,12 +1670,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map, int flag) if (map->m_multidev_dio) map->m_bdev = FDEV(bidx).bdev; - } else if ((map->m_pblk != NEW_ADDR && - blkaddr == (map->m_pblk + ofs)) || - (map->m_pblk == NEW_ADDR && blkaddr == NEW_ADDR) || - flag == F2FS_GET_BLOCK_PRE_DIO) { - if (map->m_multidev_dio && map->m_bdev != FDEV(bidx).bdev) - goto sync_out; + } else if (map_is_mergeable(sbi, map, blkaddr, flag, bidx, ofs)) { ofs++; map->m_len++; } else { -- 2.40.1