From nobody Sat Feb 7 23:23:00 2026 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F69D2C1E3B; Tue, 29 Apr 2025 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927424; cv=none; b=t+V3oaZs5EwKOFPwQNuXNzDiJJRW0f93wQYmtARCts7zpwjNjOH3ld7i0YwwBM/HgGJga2joaCyiFOlYVgWNrhynXlfBiximlLLjarph9zN32M5PUzJm6dFTjPKxqwwAPNcewzQTmK0/7lYHagsDHA56HX62Xs8Yj4OGLyu7cfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927424; c=relaxed/simple; bh=uKkWq78XfYV8C1wGjeLxUClR6JZktKdqmRzCLRPiniM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fs2IN8JPiCk974YjXMFS4TwueRCdqoQo6jMIx7XdQgdaH/6BBObob1VD/GHQSRTD8rJB5qseif1tmyW7En6OSq2nA1fszb39lAUX46Jom+eXAo485a9lWIj+Vl7afVCS0TKE/h7req4AOijvETVHBr4BI0f3AHX8TWkPJSuaE/c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=l46bT0bH; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l46bT0bH" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-7399a2dc13fso8347668b3a.2; Tue, 29 Apr 2025 04:50:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927422; x=1746532222; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=rWrdBEdzmL3R/kfX7rqlGT9fsre+XXLU7YQDNncr/vk=; b=l46bT0bHkv0JBZn2e9RwrDbyrhAoUsCrNSsEcoc16UvDS3dwyc1EXNUEq8CeuM745H QrSeW6X9T7p2om6YqjTHIZjNAWB5aSU2XOeFF03AhdW5IpU+uvH8N0xfsNW1cxbh4O0A upAIZaz3X24IJaktUKqF4t0zmL2esmx5WNwyu0JuRhDD672Ojzqa29TDHuiJVUmGRwR9 aef7U7FuNZ0eZwawJc/ZrMUBJ8T+ZAPy3qsdaASe0jBsNpPa519SOd1Cq5bXMo1GWaXa 4/8lNHQWUrcbyUuU4RicV2+6G81wGRiW3zStBzKBMH0YGqK3pgZmfmcQD8G0TjexYMUL J1LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927422; x=1746532222; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=rWrdBEdzmL3R/kfX7rqlGT9fsre+XXLU7YQDNncr/vk=; b=WBmFvaRETe58pkQMjmvJe8KQHAMbMjPM17H1uLZVmpCU0JWRpNhQZ5YGR4IU/a3tXw B5by+YTDo1Rko6g+JB0x5xe2Q2Vg4wgTucnq+h3lCKDYLrkVeOeXB3IZhKP2WdDJsT6j NPWRWeHFGzkv7fPXFsDy3sYQ+6nPfdsneB63GgBC1W5XDC0KX7xGoz6k2uP3AjAiIXq/ cGE9zs0r+beHoUFU9Cv+Olc2/W/RutfK9vVhD3CeF0VF+Wn/bzg2/fs4gZMwfGD7ag9e gDq7a1WHyqASpA5tW+iU97F4Yo7Bt1A445wXMwU7aP+05K0sq8PCspsVuiL6n7tuOZmh ulJQ== X-Forwarded-Encrypted: i=1; AJvYcCUZayXrQhnx1EHbgHzCRj/EFQ0brZTAD+n13BngvBz+Gl8Uziz73n+U2aWo/V3F9S5yIuVDwBiCgTAN1Ypg@vger.kernel.org, AJvYcCVoRPvhqh1379tL49Hbd5+Sbe0d9pzMIodBs8E0NZK9rflDTwjp70CaCOc0MAw8Fb+oNRDLsymuPlQusmo0@vger.kernel.org X-Gm-Message-State: AOJu0YwhdJrQSlaUuVTR5T9zld5hyCjVyB7Qahk4dAGLyql463LZW0km V3IH+SrQ8Cw/hZUMKsrsm1mGAU5XuSLdpXMEUjbIFGqa3q6xcuLy X-Gm-Gg: ASbGncsEEr4dvX60a+sDKKF5rD8yoEhcZjRgxdgkDb5gyE/aLG6rBbOPfHH8Not5bRB VuLkGZhfq82VZJZaEh+337BImxMuN80cPdGKdn1/CAktzeWcydEeK7S8zF7SEwX+d6YkE9LEQyU 38utsZxunj6ioz8ijVuFBX+c4H1ngk35bgvMOxHsCoS6dAu4m4gqjKf/d1yLGy0XBnyBEORVjh3 ktog271kacnnrCTRpaBSCAbmfQsIVx+17bAs9RMYOf+y4+rgK7khqHmzHDP3+y4R9U8f1CMiz73 Q/Yd+0oGsEcwirjMB3BNhv4E5NY4GPUNuN/SxPMQD2CdEBcILZ9Xm+WkiewuWuQaKaVO42g= X-Google-Smtp-Source: AGHT+IE/utjdT7UzJxrdlrhtOtlOMqX4ScwR+z3Gkz6IueKwrIHT/ooBVXODi9qD8WVpFTeDHyYaSA== X-Received: by 2002:a05:6a00:14c6:b0:736:2a73:6756 with SMTP id d2e1a72fcca58-73ff73eed7fmr16992178b3a.21.1745927422335; Tue, 29 Apr 2025 04:50:22 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.18 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:21 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song , Miklos Szeredi , Joanne Koong , Josef Bacik , linux-fsdevel@vger.kernel.org Subject: [PATCH v2 1/6] fuse: drop usage of folio_index Date: Tue, 29 Apr 2025 19:49:44 +0800 Message-ID: <20250429114949.41124-2-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kairui Song folio_index is only needed for mixed usage of page cache and swap cache, for pure page cache usage, the caller can just use folio->index instead. It can't be a swap cache folio here. Swap mapping may only call into fs through `swap_rw` but fuse does not use that method for SWAP. Signed-off-by: Kairui Song Cc: Miklos Szeredi Cc: Joanne Koong Cc: Josef Bacik Cc: linux-fsdevel@vger.kernel.org Reviewed-by: Matthew Wilcox (Oracle) --- fs/fuse/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 754378dd9f71..6f19a4daa559 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -487,7 +487,7 @@ static inline bool fuse_folio_is_writeback(struct inode= *inode, struct folio *folio) { pgoff_t last =3D folio_next_index(folio) - 1; - return fuse_range_is_writeback(inode, folio_index(folio), last); + return fuse_range_is_writeback(inode, folio->index, last); } =20 static void fuse_wait_on_folio_writeback(struct inode *inode, @@ -2349,7 +2349,7 @@ static bool fuse_writepage_need_send(struct fuse_conn= *fc, struct folio *folio, return true; =20 /* Discontinuity */ - if (data->orig_folios[ap->num_folios - 1]->index + 1 !=3D folio_index(fol= io)) + if (data->orig_folios[ap->num_folios - 1]->index + 1 !=3D folio->index) return true; =20 /* Need to grow the pages array? If so, did the expansion fail? */ --=20 2.49.0 From nobody Sat Feb 7 23:23:00 2026 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98AFD2D1F63; Tue, 29 Apr 2025 11:50:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927429; cv=none; b=ZUDkZegK6ZVjg6NbWWEhcSySXEzu8p6na42SCpvhsH6fpayamG3zVVsbTIq+fDZG6euxrlWcdmqmA09LdUb4hB/dmVfk1qsyeBFVGelGQwuJDsittjfH+VKb49B/hcnamvAKr/FBbxNDdfAZ+9aXvSO/18wNBK0elEJjlmYtb4I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927429; c=relaxed/simple; bh=bjClv6BryTyDpGkWdfsiI+95q6D8k7MY583X7jPAQJk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ppG3fu1fv+iUKzGIoRCRXi8wZHNXkr2+ai11gB9M/ZJLV68gCY1u+47CQEDJIJ10vwdvNhW64GgCJif6g/FAcy7ZBdMURQ9LhVl3eaR+CuI3buubCxSnj4LamDIeq4QsyJ4Z5cg/XQZoJcrpgyscI2UB07UengiWdEnVjCX2RZI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=S7ok08LE; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="S7ok08LE" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-736a72220edso5843642b3a.3; Tue, 29 Apr 2025 04:50:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927427; x=1746532227; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=tq3nEj4DUSPSU3dXBHWbYOiByd1+bRHGbfykzSesdrc=; b=S7ok08LE4iJdi1CuDPQfT/F30XCLMLEO6NkEyeHaE0XC+RISQE9lZ4T3vOX0TPwCxF +sNOXeGNAzRLjEVhP3WMj0qvXFSStyl1uOXExpXqngcekrzV2FMLPRzwd+RPafVDo862 g0AvBWIN8kGnbg6yAZ0aneD+hqthXoxb/2qPuUBXCK9TGruTs9AFPh+zKQbv1l4gUG7M O1eMlquhpGwpAM2zFujEBiIRGVynQ5iCQCKx8PMQnk5iRI3DUv6CzgLNIKsTkYgL0i8C Qh6UFznzr7qNRt4Kgvd8E2RJBzw4rF5gPUWNyhoJCSZ4O+Ib22OYcaIJQuv2OS732YR2 zB1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927427; x=1746532227; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=tq3nEj4DUSPSU3dXBHWbYOiByd1+bRHGbfykzSesdrc=; b=EGVaYYUNAq3dCAkvPwao3F8GGNX0zkFSUgRgKT/QJvFakUyMc2XgR789cR+jQySY7S TaALhX2zMDPuN7CyCRmY5IWandptxJZRLzvl7SBSwICXhqFE4zd/1WIKfR5oftP53erw K3PdYMk+T5EFhXg1QO8QcNlzLtPb/0Sbq1/Z6Qohp1CG/Lw1Au/3Nm332+vdmJQ5OopW 6AVoqZYaUnWyrAXnWDqOXUEQclDgb8T/SeAMU9oKQQJbBJ/RYBfzXebS8jY59V9Z96ZM z2d9lYCGNagWllIGJA0+K9U0J7TiNZd/yveJpCZijgkV3IeO6ClMWJJ7GZK3F1NGIGwp eqZQ== X-Forwarded-Encrypted: i=1; AJvYcCXFVEMz0FYG6mIVLuIi7+rRTvonVe45wGC3v0E7TBtANQSRk7XBX+LhdDOmAxxKHZ/4YzW1/4gJ6Dc4PFq8@vger.kernel.org, AJvYcCXdRUtgti/K8BCWG91jwpUXk0nzYDernf66JqkMWMt4PYiroHt21Xgn+ccIkyZcA8NtqW/EPH4kej3Pog==@vger.kernel.org X-Gm-Message-State: AOJu0YyD04p8Dfi7cqKWg5LCvCLoZvw3WcTL8Aw0EMc+Jc1ZCgaYTF9E 23lmgwb0T2PvfkfpQXB1xdjAJ0TqNivRcr5Mfmaf6k0P+OJEphSPKeyPtdr3 X-Gm-Gg: ASbGnctx2RjuNkf/v6VBsVPNmXb0oWljqjTkYBllMqvcqt8EOfB8X0iH/8eP8oqwpZ/ d7v67LnARWuMs56lppsOSiYrKyseeuO1RaGygqcmkW5zoz9gBkSiOxCIB0v6HOjks5275p1rtal p+XPRefkbLv8fBtHxVElzVL0rKEzRDt8v59COOmQOEozq50Wle9RRU8dFZcZWzknr1Q2Le/RdFk EpaJxClsja48sm6NNzH6ZJsHe46/VhI2ZBfwhubj2YjKYucz32l2pW0BBpZ4kHFubDOFaBG51Wx eU8i1XcNZ/2KFFSHOG9Ps4DcWo0pmm6wc/Ur5kkNFL6wzh0QVaDijhKK2K3OEX9mtwLgsO4= X-Google-Smtp-Source: AGHT+IFceGviU6cyFKzyG4aWjdQDKx3Cfc2HEqFWBXzPaKs+4WEXEA1l8P+G5QoBnkrWzjUrg/mxQA== X-Received: by 2002:a05:6a21:3a44:b0:1f5:6e71:e55 with SMTP id adf61e73a8af0-2095907d1bamr3893991637.6.1745927426869; Tue, 29 Apr 2025 04:50:26 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.22 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:26 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song , Chris Mason , Josef Bacik , David Sterba , linux-btrfs@vger.kernel.org, Qu Wenruo Subject: [PATCH v2 2/6] btrfs: drop usage of folio_index Date: Tue, 29 Apr 2025 19:49:45 +0800 Message-ID: <20250429114949.41124-3-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kairui Song folio_index is only needed for mixed usage of page cache and swap cache, for pure page cache usage, the caller can just use folio->index instead. It can't be a swap cache folio here. Swap mapping may only call into fs through `swap_rw` but btrfs does not use that method for swap. Signed-off-by: Kairui Song Cc: Chris Mason (maintainer:BTRFS FILE SYSTEM) Cc: Josef Bacik (maintainer:BTRFS FILE SYSTEM) Cc: David Sterba (maintainer:BTRFS FILE SYSTEM) Cc: linux-btrfs@vger.kernel.org (open list:BTRFS FILE SYSTEM) Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: Qu Wenruo --- fs/btrfs/extent_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 197f5e51c474..e08b50504d13 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -3509,7 +3509,7 @@ static void btree_clear_folio_dirty_tag(struct folio = *folio) xa_lock_irq(&folio->mapping->i_pages); if (!folio_test_dirty(folio)) __xa_clear_mark(&folio->mapping->i_pages, - folio_index(folio), PAGECACHE_TAG_DIRTY); + folio->index, PAGECACHE_TAG_DIRTY); xa_unlock_irq(&folio->mapping->i_pages); } =20 --=20 2.49.0 From nobody Sat Feb 7 23:23:00 2026 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2B322D29BD for ; Tue, 29 Apr 2025 11:50:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927433; cv=none; b=Yq+DS+LBieJA1UIHKEEBtvIpXaBOVazrri282H+4TkCyac0RDLx7HHXElalp222o/An8qX5PPb6XfC81Ii9lC4Z1WlLiRvMHFmik40Pys5KfIka46rwHu1DM/ia7Z/9ZTwQMul0qFZYGo4ngDynhap08rxiCsK8pbvJUrdJZzOI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927433; c=relaxed/simple; bh=2+zHp3o6v4QSVzp94ClonbDqg/k5+dUzGUoCLjRAKLo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U2GPzxvTFLA4PRksPTS+gXoH1uNuBIenYHQxjZcrZHA75+DrIkSBBD7AiR0r/0ad0GWi/tNr5KrGZsgLkY9niVxeN+/a+3KZx1+ztWkD+9MncmunecEd39IXyGxIDjwf5h4dTcOjcZh2AbCzzH8xV27TguKWtBMrrp9B2NG/Puk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZQrd+iS1; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZQrd+iS1" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-7376dd56f8fso7908305b3a.2 for ; Tue, 29 Apr 2025 04:50:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927431; x=1746532231; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=NRi4DVQ4l2yFg1fX4IS9tDs6tW+LC63jcXq9t1eYUbg=; b=ZQrd+iS1J5t23AbFzS8Xlfov6H4FzlkVx1eGnc88VIurgc+AzEd2Q6rMPgAtpVbqvt 5uN4UH50xGcOwT5NNJU5lzcgBHwAjPCy0e8PgS/rgKCcwJ6zctJhuYV6xy1E47RTBvT9 htapmzDXrB6IFEx3snBcd+uDw2Iu0XKhLUwCkI5S9AhzxYddZmcPxWpcD77cOEuMYBo7 5dRHP0pvWXQ9174UKBbWRmTO0IclJM6JUzHqVesR1uDtFuEXpjWim+xL4kWc8Fk1OatT oHXnfJml6vYG4/lntYyiosXm+5AgIisJzAflsYPbWDS6czzBReGdVuaRfxabGdLFeAcz ag/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927431; x=1746532231; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NRi4DVQ4l2yFg1fX4IS9tDs6tW+LC63jcXq9t1eYUbg=; b=TJdhwbN7oJLfMPzWZE4vKfTNk5l+0+M+A5d/5WIwhEY3tLOR7FwVu0x9Za3Oa+i3Lv 5botkNonF+0x+dT88pCz2W4MGrIiBFJfpsKDBdJDOaUMQ1QaQbFwKYjsbFPpaEzBolgh 5owrVdo/vLw9k82SO4dAfe3he5T9mIJ6jni3ou/GmBY5JFwY/Zsdmym13q+snAwF8ZC+ iHKkfKA1aXADUq66KqcKdRE8ZbsSXRkGEVfVQlDMp4bZK5CBIxi2HGvdPxMIXpHslFH9 t75SEd+OPpz6usLPgKaVvBzB0YvlvWPzPyxpFOszGaEGQyPuyPPiK8W0sAlYJp8kyC6t m/7A== X-Forwarded-Encrypted: i=1; AJvYcCVYQ/uZOkgH3Q1rlBCuxd1UfxR5O52QFUo0EdMEZrW57hAChBhbnD7fNMdpUDfqxG2Sp5yb2If9hdm3qF4=@vger.kernel.org X-Gm-Message-State: AOJu0YxyZ4qZuWfnzo7RwQsf0xeHjM7v84z4syC+i26g/bplQvw5aP+A qg1nQr6iNZsWvsikfbXH2SbZjc28kJ1agY3CIx6aCOb23neuJwRR X-Gm-Gg: ASbGncuWMGSA9bMN9Na7S/VNhXnurMvFgFWwHPppaCBucouM+/fVTOFM2CEx0H8nYuH 8WARfmnta7RfcafgaM8AoWqUr+6rg8bSbRakyUlzhxL96f2b0ToSYkuRKGi4B4RzwzITGNiDgeS SAyXAkmTna01lQwYGlRoll13Aa6FSwzNzdWSuJpOJwbez+GsxvZgOSuUy/NKVYAotmi1sfBY+N6 XjNs8QHHTbMRP8NKj3PUvSyEBQZq4QxWJxWynAPif8tMmeE6OKd4nh2MG6tzgW5+yzFxOdATRU1 cKNcuVCjozuX/cBm5ls42xf3Lq78RD+fZ2XMrVDPlP4zwcbIr7DjWpUT/y2a4FwQzV70HqM= X-Google-Smtp-Source: AGHT+IEoriRK2NyH//YcoOQqQiNaSwS5WKzp7Q2fF6Hs41CP4tZDUS769rp7JmgItvGnje7zbfgCvg== X-Received: by 2002:a05:6a21:4a4b:b0:1f5:59e5:8ada with SMTP id adf61e73a8af0-20958f841c3mr3725562637.4.1745927431033; Tue, 29 Apr 2025 04:50:31 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:30 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net Subject: [PATCH v2 3/6] f2fs: drop usage of folio_index Date: Tue, 29 Apr 2025 19:49:46 +0800 Message-ID: <20250429114949.41124-4-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kairui Song folio_index is only needed for mixed usage of page cache and swap cache, for pure page cache usage, the caller can just use folio->index instead. It can't be a swap cache folio here. Swap mapping may only call into fs through `swap_rw` but f2fs does not use that method for swap. Signed-off-by: Kairui Song Cc: Jaegeuk Kim (maintainer:F2FS FILE SYSTEM) Cc: Chao Yu (maintainer:F2FS FILE SYSTEM) Cc: linux-f2fs-devel@lists.sourceforge.net (open list:F2FS FILE SYSTEM) Reviewed-by: Matthew Wilcox (Oracle) --- fs/f2fs/data.c | 4 ++-- fs/f2fs/inline.c | 4 ++-- fs/f2fs/super.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 54f89f0ee69b..5745b97ca1f0 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -2077,7 +2077,7 @@ static int f2fs_read_single_page(struct inode *inode,= struct folio *folio, sector_t last_block; sector_t last_block_in_file; sector_t block_nr; - pgoff_t index =3D folio_index(folio); + pgoff_t index =3D folio->index; int ret =3D 0; =20 block_in_file =3D (sector_t)index; @@ -2392,7 +2392,7 @@ static int f2fs_mpage_readpages(struct inode *inode, } =20 #ifdef CONFIG_F2FS_FS_COMPRESSION - index =3D folio_index(folio); + index =3D folio->index; =20 if (!f2fs_compressed_file(inode)) goto read_single_page; diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index ad92e9008781..aaaec3206538 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c @@ -86,7 +86,7 @@ void f2fs_do_read_inline_data(struct folio *folio, struct= page *ipage) if (folio_test_uptodate(folio)) return; =20 - f2fs_bug_on(F2FS_I_SB(inode), folio_index(folio)); + f2fs_bug_on(F2FS_I_SB(inode), folio->index); =20 folio_zero_segment(folio, MAX_INLINE_DATA(inode), folio_size(folio)); =20 @@ -130,7 +130,7 @@ int f2fs_read_inline_data(struct inode *inode, struct f= olio *folio) return -EAGAIN; } =20 - if (folio_index(folio)) + if (folio->index) folio_zero_segment(folio, 0, folio_size(folio)); else f2fs_do_read_inline_data(folio, ipage); diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index f087b2b71c89..eac1dcb44637 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -3432,7 +3432,7 @@ static int __f2fs_commit_super(struct f2fs_sb_info *s= bi, struct folio *folio, bio =3D bio_alloc(sbi->sb->s_bdev, 1, opf, GFP_NOFS); =20 /* it doesn't need to set crypto context for superblock update */ - bio->bi_iter.bi_sector =3D SECTOR_FROM_BLOCK(folio_index(folio)); + bio->bi_iter.bi_sector =3D SECTOR_FROM_BLOCK(folio->index); =20 if (!bio_add_folio(bio, folio, folio_size(folio), 0)) f2fs_bug_on(sbi, 1); --=20 2.49.0 From nobody Sat Feb 7 23:23:00 2026 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DACE2D29D7 for ; Tue, 29 Apr 2025 11:50:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927437; cv=none; b=jaW1je4WtKOMr+WJTt2Oj1DVx6if2OIWr6yxJ6LCthHpaQbzdt6QTMMwbqy3YS0ExZhBRFicKqc1YtWiCvAvDf322NFGKAUz7smFr1nSKOIR4u94gmkwg39lfcHvhU54NrvBWh7Y5ik3Pc6mQVxKgAnbNiKyRQoUbCc6CThDZMM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927437; c=relaxed/simple; bh=DVWZ7jM5skF8VIGzNHi/bgGgMg59s/fzzLxz1VGfhkk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R4IAyBhZxdU/hhWBv2BRUDXg/3q3EF/4NJ8AQVpqs5BXIFjjw9zqQtUnA5CdARQinDbF6B80XWRnY1gplJPx1yfQuu4U3PUyh0W+YoTf9AeBTSnx03hzom3odZUNoSorXKiPyX9cGTbiZtVi46+n1YZCaHfB98sXzq5FtXEj7kM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=eV25OSA6; arc=none smtp.client-ip=209.85.210.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eV25OSA6" Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-7370a2d1981so4698404b3a.2 for ; Tue, 29 Apr 2025 04:50:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927435; x=1746532235; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=Dgq83EGL/QD5wjuy65QG87e6Pc1gzfmOWc21Ho8xkpg=; b=eV25OSA64DByd7nhrY/67Q6JVFm387aJQ9P4XmKVyoUv+KTxhyL3MZ50JFnJHaNlzs Iu/YKd7LshCC+Zxb6GBY8XDgheetT6Ly5M8e3krflhA08JUAr6BYJzjPf1j95K9DYPZj ZoIR17lWADJ8Ptv7i2mh2rmsIsRYHMss30Fw5hA0OIJZ6EhxTROHX/TxsAmflzU3jvlL 5J8Zf/8zIpWMyP+TtgFrj4VC2l7AP8tjWnmpZCSmUtp9Fl4GZxhfTx7C6pEKAScw4ixS AFomvPRrn8LRr5mgjKgXyggUFzyVbRh+CmmFU7KRRM9NbdHrvCF/C0LS8NhhbO15Mhfr Y1NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927435; x=1746532235; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Dgq83EGL/QD5wjuy65QG87e6Pc1gzfmOWc21Ho8xkpg=; b=qdToimoFT+cgeefMwb4Ld6WeRDMfUPD9DOH41rkGImlbH00sZ2Pn/cEdhMuBcFyMZX +qJK9w4im7TVYxa9As4xHldN6gZrwAdoi2khGhfqPDKr+N6W6pYJaY30CwqwAnQNJoyG jkNJcDPDvnsa0uPiHtBwj8itqCXK0pU3KG+bSMyqBP0Lu1f8TcfjgD0LSTwaRZyZKIru AKDyyrCyOVlq6iXyUljvYM2ijbAurCUU3TfN6/xE1/nbJGh1nZzvwU+MJ3GL5Ce98ji/ f00Nf+z6QEsFREMEjEpTfoco9E5W8bkHIwvQLDwj4Kwor0OcleJX2lu6AWneXzh/ngmW 2SBQ== X-Forwarded-Encrypted: i=1; AJvYcCUU9BiB6drBpGG/flCbbDYYQdgBfGma0gCAaR967Vi6nkoAOM4tIeqf+r3Y4hAC4SlzkS4EiIoom8v7qvk=@vger.kernel.org X-Gm-Message-State: AOJu0YxqbmZk7iN5LMS8xAGWhsiMTKIjTgOeyv9J9KyamMlsJeGE5FKL VE+DJPRXVObkiwCQ+1WSBZj8aCPHy7HW01s/w7aA9vd4Ph8zPWHu X-Gm-Gg: ASbGncuPRc1sJiKabiTi+bJKR5yAejfQIKXjFK4F4C6pZFxiGRW3fJtSekd7TABUn4v /GXMpYdQ5sAGDaUMBL+uDyjk+nJw2BZ+UQdM67cbUwnvlSDyhiDBX5vWIvMOHmmYUdDe6Lwsmcw CJ+YR0Gsx64afP+GwTqhCZvOnZZBOhnasVeVqAm32KOQIZfZxvAfmGTaUZmyK7jVImcUvresH6O ntdyJ/Mzc/zYrLOhSeE4TLBHRD5lgD3XyMLbUsijKA/LdEhuZZYLfhJsJn2cAM9rc7Rxbx6xcwx 76cm0ONrgS1t2MC5dWEn1isZKJ3LySOnxsLZD7Ih0GVcaiftfs18BaU8f0ukkr3evZWHRoA= X-Google-Smtp-Source: AGHT+IHGZhZY/3nMBx8I+Rv77oPScvGIRbeEGosfvczsqDw+cy+3eOjBSzpIR0MnqGfEbpansUl/vQ== X-Received: by 2002:a05:6a00:3a12:b0:73e:2dc8:94f3 with SMTP id d2e1a72fcca58-73ff725247amr15262051b3a.1.1745927434739; Tue, 29 Apr 2025 04:50:34 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:34 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH v2 4/6] filemap: do not use folio_contains for swap cache folios Date: Tue, 29 Apr 2025 19:49:47 +0800 Message-ID: <20250429114949.41124-5-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kairui Song Currently, none of the folio_contains callers should encounter swap cache folios. For fs/ callers, swap cache folios are never part of their workflow. For filemap and truncate, folio_contains is only used for sanity checks to verify the folio index matches the expected lookup / invalidation target. The swap cache does not utilize filemap or truncate helpers in ways that would trigger these checks, as it mostly implements its own cache management. Shmem won't trigger these sanity checks either unless thing went wrong, as it would directly trigger a BUG because swap cache index are unrelated and almost never matches shmem index. Shmem have to handle mixed values of folios, shadows, and swap entries, so it has its own way of handling the mapping. While some filemap helpers works for swap cache space, the swap cache is different from the page cache in many ways. So this particular helper will unlikely to work in a helpful way for swap cache folios. So make it explicit here that folio_contains should not be used for swap cache folios. This helps to avoid misuse, make swap cache less exposed and remove the folio_index usage here. Signed-off-by: Kairui Song Acked-by: David Hildenbrand --- include/linux/pagemap.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index af25fb640463..1dc3416a9c0d 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -935,14 +935,14 @@ static inline struct page *folio_file_page(struct fol= io *folio, pgoff_t index) * @folio: The folio. * @index: The page index within the file. * - * Context: The caller should have the page locked in order to prevent - * (eg) shmem from moving the page between the page cache and swap cache - * and changing its index in the middle of the operation. + * Context: The caller should have the folio locked and ensure + * (e.g.) shmem did not move this folio to swap cache. * Return: true or false. */ static inline bool folio_contains(struct folio *folio, pgoff_t index) { - return index - folio_index(folio) < folio_nr_pages(folio); + VM_BUG_ON_FOLIO(folio_test_swapcache(folio), folio); + return index - folio->index < folio_nr_pages(folio); } =20 unsigned filemap_get_folios(struct address_space *mapping, pgoff_t *start, --=20 2.49.0 From nobody Sat Feb 7 23:23:00 2026 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EDC82D320D for ; Tue, 29 Apr 2025 11:50:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927440; cv=none; b=d4Fn3YS/SYhK+ZMzEsLpga1MjDvq3ZTRfpSkOHeGcir+HsD8qXOBts7s/x+e9n9DKulhbeOe2vEM8dz9yjt7gzcbyG9gRj+ZRadqTCr9H3RykA5BRYMbmTdcmaq1swfCp6MLTDERsm1PImkJljh8LXd3MzyLXvok83gB5YOyaw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927440; c=relaxed/simple; bh=CyuOl5dUOpPE3FgxRFFEujoSPjD+a5dfayQwGeEpAAc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EzvlZfSQ3ZvauFJjJFdWN+y8CiUOVtC2rRoUCTZHZHDZZTjP9G5j8Ec2xkdU2jpJkYk/Rt1nSTp8IpxKZgcc0NBHYhrVXFDiMKx8RroA/w1J2HIabThLcplsDVk6diRw5fpeBV9yE54vgmYOaQ3+Lx0sOnOXJUPY/DSkrBRTtwE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XWja6KF2; arc=none smtp.client-ip=209.85.215.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XWja6KF2" Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-b07d607dc83so5145076a12.1 for ; Tue, 29 Apr 2025 04:50:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927438; x=1746532238; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=Gj9JA1kBvneMSULxD4kUsNOIWEoG1iJn7hfWXbxwfws=; b=XWja6KF2MmhTjbMAteSJyqwhFPF7QrEZFE5h+Bh3kasbXsMoH6Lb2V9kBxSP5109vn BwFAe+ic2rzMgwd2hjF6jio20BUMKFD7SJeACUfWNo7fc+jFZKjKpRDAZne0S5Ji1hop 0RDuQnOLqmzDx++VCMNmo6aIzvGDk7eSV5AFlBKNo41Jh3TvwdDh8UFNo1UfdRycYRDl 5kd9CGSiDl3vu6p5JWcIugk6gyrSP59EkZ0xJdG91FNMls1v1jnRNrBc0W2X8uqGaJAs RGjtZo7RGVkvnH8reKjKsizmssm44VJT4+nleIJ7oedE1rA9B6DE78U5AsiUx7K8kvHc fVaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927438; x=1746532238; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Gj9JA1kBvneMSULxD4kUsNOIWEoG1iJn7hfWXbxwfws=; b=WeZWYNG8bkLZ+jyro6XKkwyaa8sE+qVLpUF6UxyhyvIZFLbL52yYNbEqixkzlIX7w7 k9ZWgeV28MdOa4CBxkYlXM42SSuf9i+nwynU20GcoLgGfmbTgFE97ZqcPNSs9/93MyQt pI6ZnXQnBMbr26xfG5HB1I+XdGwigiCBuX9BaEqVHkt0sMPIwgf4dPhzw/HSskaANWO2 d0nwuS18p3UPAp3ls95snZ51a3rOrnnvM0vQZb0sSxLzpzwc/627OoGVSL4WhLU5FVyZ xA8NYx9dTcIr65+AJ959pejxECYBnIS9HC+Opf2VSQCuc6x3uyan9LYWYy0RsrE8t5No 5YAg== X-Forwarded-Encrypted: i=1; AJvYcCU57C68kkz5g7Bmz2fzsSVNbphQi7pCsmlWIm6rR6E5VLDlU4q/5DVPCg7DlREorv1yeEOZnyEfVk7xx+s=@vger.kernel.org X-Gm-Message-State: AOJu0YxVmMxwMlSte8nZWb08saQkKQpSH6Ih9OFEe0CJvkpxuXT8IXNF vhi1BZyZqrA1um98qJzwSsKDrG+FbeMfrvNESptP/GiMKsPjFUHw X-Gm-Gg: ASbGncvs/XdNy7TPNOAIq4CbMlZgRohI/iGB61UL+Q1ioLIDLE48oxIN79+ODrt4vcx Bmit7QMctIYvxBuuXZQ92eBhuez2ww2q/qge9lMQ4V1fmkAgmU8sjtIGi1LxXixdsc/hyg6M9Ko Sc5A1nuXsSg6GfnpKsN84I22fvqhvezw43tcyCKn2dylgjzpipbSKS+uXIA5refJvwv1zilonpE fFm3EEbnN2Og8kEnpcTNfvhI177M/5qQW+zAa8L/dHtvNTYSRO5MCtIRl2+UgVUOiP2BDKuCHDE VDIwKWtAwbSQwg1rdOHPckYAG1Y7FMn/WUgJZ10jCS1xSyCvjx6EEUThRuYEyVc1ly6AQ2s= X-Google-Smtp-Source: AGHT+IHj9qGPv/p54I4MS1ZWEdAc90KEjY3jnt+sV2pdAdAUoixcCXG6v2JruSOG9j4TkciJNOBmZw== X-Received: by 2002:a05:6a21:1789:b0:1f5:5b2a:f641 with SMTP id adf61e73a8af0-2093e123c5cmr4842650637.28.1745927438475; Tue, 29 Apr 2025 04:50:38 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.35 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:37 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH v2 5/6] mm: move folio_index to mm/swap.h and remove no longer needed helper Date: Tue, 29 Apr 2025 19:49:48 +0800 Message-ID: <20250429114949.41124-6-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kairui Song There are no remaining users of folio_index() outside the mm subsystem. Move it to mm/swap.h to co-locate it with swap_cache_index(), eliminating a forward declaration, and a function call overhead. Also remove the helper that was used to fix circular header dependency issue. Signed-off-by: Kairui Song --- include/linux/pagemap.h | 20 -------------------- mm/memfd.c | 1 + mm/migrate.c | 1 + mm/swap.h | 23 +++++++++++++++++++++++ mm/swapfile.c | 6 ------ 5 files changed, 25 insertions(+), 26 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 1dc3416a9c0d..47b5746d5a65 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -884,26 +884,6 @@ static inline struct page *grab_cache_page_nowait(stru= ct address_space *mapping, mapping_gfp_mask(mapping)); } =20 -extern pgoff_t __folio_swap_cache_index(struct folio *folio); - -/** - * folio_index - File index of a folio. - * @folio: The folio. - * - * For a folio which is either in the page cache or the swap cache, - * return its index within the address_space it belongs to. If you know - * the page is definitely in the page cache, you can look at the folio's - * index directly. - * - * Return: The index (offset in units of pages) of a folio in its file. - */ -static inline pgoff_t folio_index(struct folio *folio) -{ - if (unlikely(folio_test_swapcache(folio))) - return __folio_swap_cache_index(folio); - return folio->index; -} - /** * folio_next_index - Get the index of the next folio. * @folio: The current folio. diff --git a/mm/memfd.c b/mm/memfd.c index c64df1343059..ab367e61553d 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -20,6 +20,7 @@ #include #include #include +#include "swap.h" =20 /* * We need a tag: a new tag would expand every xa_node by 8 bytes, diff --git a/mm/migrate.c b/mm/migrate.c index f3ee6d8d5e2e..662e5dc44b33 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -50,6 +50,7 @@ #include =20 #include "internal.h" +#include "swap.h" =20 bool isolate_movable_page(struct page *page, isolate_mode_t mode) { diff --git a/mm/swap.h b/mm/swap.h index 6f4a3f927edb..91439d0ce50b 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -50,6 +50,24 @@ static inline pgoff_t swap_cache_index(swp_entry_t entry) return swp_offset(entry) & SWAP_ADDRESS_SPACE_MASK; } =20 +/** + * folio_index - File index of a folio. + * @folio: The folio. + * + * For a folio which is either in the page cache or the swap cache, + * return its index within the address_space it belongs to. If you know + * the folio is definitely in the page cache, you can look at the folio's + * index directly. + * + * Return: The index (offset in units of pages) of a folio in its file. + */ +static inline pgoff_t folio_index(struct folio *folio) +{ + if (unlikely(folio_test_swapcache(folio))) + return swap_cache_index(folio->swap); + return folio->index; +} + void show_swap_cache_info(void); void *get_shadow_from_swap_cache(swp_entry_t entry); int add_to_swap_cache(struct folio *folio, swp_entry_t entry, @@ -125,6 +143,11 @@ static inline pgoff_t swap_cache_index(swp_entry_t ent= ry) return 0; } =20 +static inline pgoff_t folio_index(struct folio *folio) +{ + return folio->index; +} + static inline void show_swap_cache_info(void) { } diff --git a/mm/swapfile.c b/mm/swapfile.c index e727021b8e2c..bf6c98009909 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3662,12 +3662,6 @@ struct address_space *swapcache_mapping(struct folio= *folio) } EXPORT_SYMBOL_GPL(swapcache_mapping); =20 -pgoff_t __folio_swap_cache_index(struct folio *folio) -{ - return swap_cache_index(folio->swap); -} -EXPORT_SYMBOL_GPL(__folio_swap_cache_index); - /* * add_swap_count_continuation - called when a swap count is duplicated * beyond SWAP_MAP_MAX, it allocates a new page and links that to the entr= y's --=20 2.49.0 From nobody Sat Feb 7 23:23:00 2026 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 006A12D322B for ; Tue, 29 Apr 2025 11:50:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927444; cv=none; b=MhxZm4CshcNjViLkuoBi12waBRHjsxqfpXVHOYHqXa1ImLI5sHLonjPLGTwaSsGb7ps1hWybXIFk7ljKmZGIFBDYgqw3sYfPNUnsXfoTL8U7j/onItK3jjnBo2nxU/2Lg3R8QauUEKXzglWaMZ+MO232aVETGqm0n6t4wsi1Iz4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745927444; c=relaxed/simple; bh=5wF15lZztxkwYWXqpSOs68VJh58ZU35XJoKkkZFV3vo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y24RWWH1RWQ9I2Iw4Vko5n8FfAHJ7tgJ++RqxqI7K5cShrefteBR8HZQ4sUhZg6nODDYT3d2Xe6FTG+GsyXuHuiJqic6BE9dwm8QG/2kaxsbuk3h/VNrDOCbMXYNPrqxyo98/tJM5j84SpSNnHGF6TEimtTu5Wq8jUYcEiDFyEM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ices3CX3; arc=none smtp.client-ip=209.85.215.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ices3CX3" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-b0b2ce7cc81so5813302a12.3 for ; Tue, 29 Apr 2025 04:50:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927442; x=1746532242; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=1iyyLf3WUxORZOnWOPX6x4ocgIFr1IijLbgh6GePFQ0=; b=ices3CX3PsghaoA706x6iR+VJIHrpHLcF9Y73lcqnSocTOtwFARiws86Duq/j/xrDx fyV5Aqp2IhLo2GBssPw6Q0YegV0bpWghs49KXIBcHC/BFBI6Bb4LWwSaI2sUMxTCNPk1 bROMs4pCRi891fEeFmlSU/L0MbITEE2BNZxWJ8F2dQTbipBzZ5DwyWeWXA/V7u8BiNrv qWvFIYR35aimySFMddV3Ut+3Ee7Q8ftYTuxuDC5PprqWGn6DREvNmARoxH+99uj41rBR VSOFOkqxzlZsVhkcFN6lv3+mOtOPcIBDhzCTazfMJvGbYVfHbePylESWsX+M1MNoo1GK bWYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927442; x=1746532242; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1iyyLf3WUxORZOnWOPX6x4ocgIFr1IijLbgh6GePFQ0=; b=gLAbD2QPjvkR/jlu1XbAA92yDtp6zv/QrYwfHK4LwdmuaPCkxNcgP2YhbRIf2WMSxn 3IR8VnCmwFmlsCwsuhTpF10GVtxLifxRVUo94Nyd7K6s/geBqtZIN9sor/joe1eMjNOa P91fI58y0nOfYVGloCwtPxmtPAN+dj7FaUHGLAUBj30iLa3uAD6o+6nA5FpDoVte0Bxl 88hZq3Dz2j1XxvprgcahxJzqYVfMgAz0Jwwh23MhIrwiJPxOktdGMZ/MUUMakDdgnzGS cRXzNqMvQscSRMPFLH6pVAm1T9GxHdMElE5E4VJdCJB2DyHbLRyUQK/a/HZ2EOTkJhV0 VurQ== X-Forwarded-Encrypted: i=1; AJvYcCXSm6/srveVxqT7ZXqXXJVFVozqLc/ud6PnwkMNxjYKvIQrq9Z4X7lYHuxyp8Olr8Yh7JaK+eT5heuASLE=@vger.kernel.org X-Gm-Message-State: AOJu0YybYzoj+4jz6aphCcn8jFG7791aP4GKcU3QYltTK7n/fHwKbPH/ /6PpLVTw1oy7JBgAtYaMThIGFCHxcxrrp8o2rsmQxhB5cQ2mti/G X-Gm-Gg: ASbGncutQqVSpSXc6T1WrSBNgeSgFHyEzZaaJqf21M1dewQHoU2/FWBzXBCQ/lzLjTe qs4qiHjDjuVl3rDe6GHZaOGlx8T49Hsyqfbn5OMCTR+N1MhVFub1hC8NiJuMkSJNjPNrnZLR/kq Edr6OCijqVuZI9zGnm7kLb9nrRE6ia8HVCA0v+ya7ka0AEqZdY0Ai8hOBw5Grl7dJLJeXR+ZftO ngYoRDvIo5L3QmCAQNRhSFDsEosdGidz8PZLFWMsV03Ud7iF0RwmvR6xt+aTEq8icnui7ILKh/Y gsC5ekeVv671+uVuCDtDrSdIcLhJUxRwYTNmPLcGdgymcmi+CVnLCBVcSiexwc9T6KuHMn0= X-Google-Smtp-Source: AGHT+IHGZrBDHK1WbkvwgRv01O0LY6RBxT8KjFbk+mC347HBJHKGCCEDSTjXjALIl+WfaCFQil4KFg== X-Received: by 2002:a05:6a20:cd93:b0:1f5:8d91:293a with SMTP id adf61e73a8af0-2093e528fa6mr4122901637.41.1745927442169; Tue, 29 Apr 2025 04:50:42 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:41 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH v2 6/6] mm, swap: remove no longer used swap mapping helper Date: Tue, 29 Apr 2025 19:49:49 +0800 Message-ID: <20250429114949.41124-7-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kairui Song This helper existed to fix the circular header dependency issue but it is no longer used since commit 0d40cfe63a2f ("fs: remove folio_file_mapping()"), remove it. Signed-off-by: Kairui Song Reviewed-by: Matthew Wilcox (Oracle) Acked-by: David Hildenbrand --- include/linux/pagemap.h | 1 - mm/swapfile.c | 9 --------- 2 files changed, 10 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 47b5746d5a65..a071cdc8f902 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -533,7 +533,6 @@ static inline void filemap_nr_thps_dec(struct address_s= pace *mapping) } =20 struct address_space *folio_mapping(struct folio *); -struct address_space *swapcache_mapping(struct folio *); =20 /** * folio_flush_mapping - Find the file mapping this folio belongs to. diff --git a/mm/swapfile.c b/mm/swapfile.c index bf6c98009909..1a36e1f4f198 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3653,15 +3653,6 @@ struct swap_info_struct *swp_swap_info(swp_entry_t e= ntry) return swap_type_to_swap_info(swp_type(entry)); } =20 -/* - * out-of-line methods to avoid include hell. - */ -struct address_space *swapcache_mapping(struct folio *folio) -{ - return swp_swap_info(folio->swap)->swap_file->f_mapping; -} -EXPORT_SYMBOL_GPL(swapcache_mapping); - /* * add_swap_count_continuation - called when a swap count is duplicated * beyond SWAP_MAP_MAX, it allocates a new page and links that to the entr= y's --=20 2.49.0