From nobody Sat Sep 26 09:23:33 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (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 C72014AA036 for ; Wed, 2 Sep 2026 16:11:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365505; cv=none; b=M2b9lF6va4RR41220ZpArmlpLTnDfg6iAZS1VD9Hr9RZjqbPgZnJAjqSd72QZryhvhIFtmF+1Nuxpl/pb97wSew1mh8lvGV4EVmB5mN8t4gVAu8ZDC+wMzDu2nM8ZtqNLjiUWk6Cg62cQ52br6//Y9axEOELoUq1lQdCEo1IPuc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365505; c=relaxed/simple; bh=/ldrC0e6PknKOFmMc9BRmqENxGnXnBUTqXCF4n5xBxk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SADMnZzzFTaNW+YzMRGV7xJz/dYEsPztWWh9V6PdRz/TVYUUoOEqN7DvaPjth69ebqLjyImK/K5AjyC2n7sFgJSFZIPwobPef0zzU59KRpQbyKIF7dFmI/j3s0hUDZ32oMk7n7PfBPUnVtqNSm1+ZyYUFWo3KqrypyTkqYxHWkM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=Y59TB2Oq; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=1B7gU2wQ; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="Y59TB2Oq"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="1B7gU2wQ" Received: from pps.filterd (m0167071.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPcFA1571427 for ; Wed, 2 Sep 2026 12:11:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=iwv8 qT5yhbctNPqdGs2vYRHtBWgOy3PUEMBHx4XKUy8=; b=Y59TB2OqLkyCBNfzv/9Y Frx/eW7hWNSwklJsQcWxk8FjIRs+LG+AMCBSuqdSytZzXT5G8nYDMyi99Pwa4Z+a s9K6NzET74QAWUoptFT3PYla8XvGyIOg4Cwg82zxpPrGgb7WO6MhvwcMdrnI4hOM TveTCvTfc0zsU7zTkguSbyQYFhmnWCbRof9EiNGBBNHxNinUi7zxgMiMGvlOlW1i ahKTjnh08ADkXsOwoZyvZP1X7zr+Xi1ps0jSYCcqTi662bnjh6zsoxWHGbOK0vis C/8jYdUU6FcheMBSK2O1VVllN8ccz7sDkTkcOZ8D0o0MJyD1rqBNtAD62/SM0eLK jw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gepdj0e82-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:40 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-52fb2a46cb5so33003141cf.3 for ; Wed, 02 Sep 2026 09:11:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365500; x=1788970300; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iwv8qT5yhbctNPqdGs2vYRHtBWgOy3PUEMBHx4XKUy8=; b=1B7gU2wQLfb7i6ei0jz9g5k1XICzTx+VjqjiGrYs31gvjNPOKXOfY2QwRtSQEVpn98 Y36o6d/EZrL4k2eoxGd2FvMlmcFK2mjWpUu7aPX/2nPvX93AWwwUwAs9BC6CDgPON5j0 rPY7VXLWmWQkT3t68jeiJQMXUawrgd/jVUro8r2BQuCYBDSJ2Y3xe2N2VN7w6LIgdrbR 8d5So756muuOwneNz1qNf+v8/V/FxuYP+RwOWI1h4uszcSE/GrRmWshzn5wu7dcS2koe hI5Hvtr5X34sj0DcwEazxeM5NeALdr/EY748E6WCOzVC4sVBzuCnAmPY9Zg58uM1Xkkg G15w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365500; x=1788970300; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=iwv8qT5yhbctNPqdGs2vYRHtBWgOy3PUEMBHx4XKUy8=; b=R/IOlQQcBUacHllZSASYQ4kHqtY6m2jdA9b1G68nbGLTE3S1fRS8RmgfKeYDNINhEP UFPbbjJBnyC8JjRwUZmq4QuAjru0RW3XJfhEGFH6ZPPJuZBjifq2hgDsF8gv9JCf5jkG B02lRCU2JFEASWR8XRE5/fNVi5TTGD+8/zl3QQzYACxRP43NftzPbD2/MFqbMGeQEJpd iUsv/sbH2YoTPVtSm+Cw+YMfoDTe3hjspZ99KLNN1kNNmL789/nV2gF5Ba18GBUnMSU7 3MeIPDNn1fzqJK/h0UfHvdYUKc8InpQ3iIrRJjDubt5+mTkMjGn3S7dcqDu/oW0afXDM FXrA== X-Forwarded-Encrypted: i=1; AHgh+RqzQPJ3fsz0MbkOWDC9RvmawXAbVfiakWZ6UX1Ql8LJ/XsQPKxsIll3iAwa1EBrt2TufSGmHdwOQfRNhEg=@vger.kernel.org X-Gm-Message-State: AFuF++mpJv7lIUzbpdBdDHfIXyrPgrlw/XiiOPKUVeQileX3aHR8LCCy iYIg2yRT4PE6jkwobVQYqLVRqmi32SCGHj59x6WBSf/Rj/XrnrQzBNEGTTbmG/yoy3lfk9D2MoD sbrQcf4MYYfP1fq8E3iks3K0ilys0MVus2nGIitL/T7H/zN27ueLnXoXPem9p2A== X-Gm-Gg: AR+sD132mAqYAq3diG2IDYNBffqr6vgOInBvGLlLq2wXjsRdQRKOInwmWA3vvkZ8SZU HVk7nuPs2+2fR3XWbPcmwau3z2Ll1D1jFEVe1UPt5wjvIf9khd7MlVKZ47CEZObJRGKSRURtdpc SYp3+4daBlS3gvbUTzAYf6Wt+k0liQJAMlqGITja3/XM02H+q7/yJDGCQRKDL4Z6UETlxNLBmHo 5OYqEoyLOhUkisEYzRI1DoX5iqVePKpL4ZPHAYHxLaRj1s38x7OCNEWCtvg0p4ZSZ6o/AIz+NPx TQgxosytKQGFJ+i12sPZZ93ZakhlH+kpgt60O37mfli9+3Ga+K2Yk7CvBMxGC4lGZJ+DLaQ97VP bizRuOTA3TWqpU4MwWzoHUr72YU0hifOFryrt6Q2zELissNKhPvAyYg== X-Received: by 2002:ac8:5949:0:b0:52f:b729:8b3e with SMTP id d75a77b69052e-53036d4f2a5mr64642631cf.36.1788365499756; Wed, 02 Sep 2026 09:11:39 -0700 (PDT) X-Received: by 2002:ac8:5949:0:b0:52f:b729:8b3e with SMTP id d75a77b69052e-53036d4f2a5mr64641451cf.36.1788365499053; Wed, 02 Sep 2026 09:11:39 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:38 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:25 -0400 Subject: [PATCH v5 01/10] ceph: fix error handling when the OSD client is stopping in ceph_submit_write() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-1-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sashiko , Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=3742; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=/ldrC0e6PknKOFmMc9BRmqENxGnXnBUTqXCF4n5xBxk=; b=ZRRp+zYKSg5cZZ9WsqKtGmfMb7YlOIULJAO8lcGjJzzTMjEHMVfrDjA+BV0A3q6s8T8Wbdbxd euXimuC/ES/CTD1yrYIH5KPt0PPM5lDbqe02vBhJjGSwfOD28hPUO5X X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXznKjxQipP4C0 yaaRiv/HEYwLmacrDWhxGJzHaVWCXs9rBhmgW1dvyz3xeG9ksCQUQ3qL1KzxlBYP+6st2kXJVm2 RvxDjyWASbDIXWzdIRpMEMwUnY0vJ8KA40NxkqzZC1LDGNvmvE9R X-Proofpoint-GUID: L90nkl0SNNwnWtLY8h1TaGd0qgt88W7H X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXwP09wP4Rf19c kHuZzIk7zlBTmk5/C6avJPAPvN+xUzEvnBpkzsDXMysNghtpPdjJKYDLzpzz/jJVIz4HcJ1s/13 Ti4GmQGD1VAigWYJwI+kvYPzfsWrBHTqoBt/eTTOfPzl2GgFSsOg8yMvbHVdVlPd8pt66dNqV4O pqSnS4W+VFMsWV3GybkzUynL6wgBaUT0SY/ERqDlKBflEhtF6dYJu0h4Y9jPIbrj0ZTGSiO0tL9 5QZkSOZqU1NAH7cbSkLa+q/EHQIcbVR4ZO/pzDdwaky88V+LXSqdHgnbI72onkYWqVNbiPDxwZX t0RwAlRqK+HGp7d5UX0Nzob4r8v9wDLYOFf7Rx9G4hU2ors3kcyx8Zhek9J84UZBTOqkhzl5UDP Q22D/t7RcFrhQvZMTybx0/mZbbsbcLwDUZcgOCzJm70E5H41pB+7/u7ceUYzQVEv+pbdE88aa1D SSrX67jl7Y8/OM+W0Gw== X-Authority-Analysis: v=2.4 cv=XLUAjwhE c=1 sm=1 tr=0 ts=6a984abc cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=79PYxaXUQd1wl-QFWJnA:22 a=c92rfblmAAAA:8 a=VwQbUJbxAAAA:8 a=W980AcPXFMIW1GselFUA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-ORIG-GUID: L90nkl0SNNwnWtLY8h1TaGd0qgt88W7H X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 impostorscore=10 suspectscore=0 lowpriorityscore=10 adultscore=0 bulkscore=10 malwarescore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 When ceph_inc_osd_stopping_blocker() fails, ceph_submit_write() redirties and unlocks the folios remaining in ceph_wbc->fbatch. However, none of those folios are locked at this point: locked folios were moved to ceph_wbc->pages[] and removed from the fbatch by ceph_process_folio_batch(). Unlocking them triggers VM_BUG_ON_FOLIO(!folio_test_locked(folio)) in folio_unlock(), or unlocks a folio locked by another task. This error path also returns -EIO without fully cleaning up the folios in ceph_wbc->pages[]: their references are never dropped, fscrypt bounce pages are never freed, the writeback congestion count is never decremented, and the pages array is leaked. ceph_wbc->locked_pages is also left non-zero, so ceph_writepages_start() loops back around and hits BUG_ON(ceph_wbc.locked_pages). Leave the fbatch folios alone, as ceph_writepages_start() drops their references when releasing the batch, and unwind ceph_wbc->pages[] the same way writepages_finish() would have. Abort writeback in ceph_writepages_start() instead of continuing, matching the handling of ceph_inc_osd_stopping_blocker() failure on entry, as the OSD client is being torn down and further writeback cannot make progress. An LLM was used to verify that the cleanup was comprehensive, and suggested aborting the writeback instead of continuing. Fixes: 1551ec61dc55 ("ceph: introduce ceph_submit_write() method") Reported-by: Sashiko Link: https://sashiko.dev/#/patchset/20260804-remove-wait-on-page-writeback= -v2-0-81f0ab065284%40columbia.edu?part=3D5 Assisted-by: Claude:fable-5 Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index f8844390f88d..28fb76ded32c 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1491,28 +1491,32 @@ int ceph_submit_write(struct address_space *mapping, BUG_ON(len < ceph_fscrypt_page_offset(page) + thp_size(page) - offset); =20 if (!ceph_inc_osd_stopping_blocker(fsc->mdsc)) { - for (i =3D 0; i < folio_batch_count(&ceph_wbc->fbatch); i++) { - struct folio *folio =3D ceph_wbc->fbatch.folios[i]; - - if (!folio) - continue; - - page =3D &folio->page; - redirty_page_for_writepage(wbc, page); - unlock_page(page); - } - for (i =3D 0; i < ceph_wbc->locked_pages; i++) { - page =3D ceph_fscrypt_pagecache_page(ceph_wbc->pages[i]); + page =3D ceph_wbc->pages[i]; + if (fscrypt_is_bounce_page(page)) { + page =3D fscrypt_pagecache_page(page); + fscrypt_free_bounce_page(ceph_wbc->pages[i]); + } =20 - if (!page) - continue; + if (atomic_long_dec_return(&fsc->writeback_count) < + CONGESTION_OFF_THRESH(fsc->mount_options->congestion_kb)) + fsc->write_congested =3D false; =20 ceph_undo_wrbuffer_claim(inode, page_folio(page)); redirty_page_for_writepage(wbc, page); unlock_page(page); + put_page(page); } =20 + if (ceph_wbc->from_pool) { + mempool_free(ceph_wbc->pages, ceph_wb_pagevec_pool); + ceph_wbc->from_pool =3D false; + } else { + kfree(ceph_wbc->pages); + } + ceph_wbc->pages =3D NULL; + ceph_wbc->locked_pages =3D 0; + ceph_osdc_put_request(req); return -EIO; } @@ -1745,8 +1749,11 @@ static int ceph_writepages_start(struct address_spac= e *mapping, } =20 rc =3D ceph_submit_write(mapping, wbc, &ceph_wbc); - if (rc) - goto release_folios; + if (rc) { + /* the OSD client is being torn down, don't retry */ + folio_batch_release(&ceph_wbc.fbatch); + goto dec_osd_stopping_blocker; + } =20 ceph_wbc.locked_pages =3D 0; ceph_wbc.strip_unit_end =3D 0; --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 4F85C4A9D60 for ; Wed, 2 Sep 2026 16:11:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365506; cv=none; b=N3XM2/XGx7xv2RNymp7wjtT//b/5GO/P95UUAc1nb6SjUrJFmVSNCEc00UHnLu094qvAxrJzxDzXLUN0bgNGp3gPwM0xhNlwCeKCxDnXmRNxp0lml8aVBHoiXOboKtO+kW1XGIIkXAMNlTMyr811vQlj9I24vemY7nWZ0eTFcMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365506; c=relaxed/simple; bh=S0n7wSE4O7NeGG1xcqPB5bhXLNuF0iPswl0J4cPzvhk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LNideiTIsFytrPxBm9zBxYXkzgrVrCZxi3SK2QxOwx54uyLK6NuuQYM8CmLlUVjIzjS+8CTuta8Nr640cWP4hn8Xb5DwTHwOkctNVOsC8zJ+R5lVYIh2OEblLetRiGp+L3zj+8scpMvL6IeIlmXQqNVWexfgvPheb8t08TbvQOA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=dItTNQmc; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=ZT2Xl5ab; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="dItTNQmc"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="ZT2Xl5ab" Received: from pps.filterd (m0499198.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPl1B901352 for ; Wed, 2 Sep 2026 12:11:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=QdZ5 SvrzcjsBNQ4Uyt58JDsaQtMYKfICZKuorWvHvLE=; b=dItTNQmc2SQOQxfaZir8 4Y/JKNnMIeMNId1ZUpTjM4QCEx+AHdO7pUjOLWCWFipRoBqEmszwtv/O65XmI0ZB I43hcMDmXpcborETx6wmQZ4EThO6qXDFcC9Bp1lxjBxGhyh0CiiihIFZqaqHAmY1 vTqHRAI4S0Q88EtBnknnZ8h3nUiHyFFRkiFFUtvzGbejk9/YXXyrBqXDOvYRkUcx f3rRoQWfMwt6S4XJq1KJ1/SITPsDVycUq1ZplDCtymHqfP5ehv1eA6pJiqGp+5Nu 008NehibreJIeJCRy8S1JXEcpDbQN98fvshRypUWzubiOAd9eXnpyVtfo7HzmjCC uw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gegv7tysg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:41 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52d33c89a29so32024701cf.1 for ; Wed, 02 Sep 2026 09:11:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365501; x=1788970301; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=QdZ5SvrzcjsBNQ4Uyt58JDsaQtMYKfICZKuorWvHvLE=; b=ZT2Xl5abcpJ+M0qIWnXrXr0xCoBJC1s/7H5DfZdOXKwfoud8LMYPSahSKOAvGwkJat 4Elp95cyVO8+8lAnebKTq2q6XOwJLwrGq7+mE3QSkIjLfYwExACX0teKba+E5X3/nXYj aPg0DK6UUMowLH3zUVXpW3VwkqwEDKWOTx7Ysv/ZOcY/1mmh5RxGrc/XLvTW/stgk2Ei 6eNf82tatQRYsGmhGepOtBXU7d45CwuBvYkZinVBdZGzDaWUKKl+RoXMhjy5zL8ammRW AaiaJOurs+PvHhNYJJJPvTkJJg44UIkH3DrAcBjBiWBkEm4oe/DIpxoT6MhPUj/qZL3l N/mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365501; x=1788970301; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=QdZ5SvrzcjsBNQ4Uyt58JDsaQtMYKfICZKuorWvHvLE=; b=fH/TKe8IhF2C9h/nLz3tGAL9lM15oBo5YcZtGwoypFgJsrycvggk7kIv60Go3lVwUj 7k3TYu3zRrdGba3jtxmn1sRRGe03aqGObIN9AonhkWHKWSZ+DWEYXL+dUPrBOVUJ51+E 8Z1v1mBr7Ffl9KXoth/UDNDa56PsT9/V+Vt/0al0IPZtDi0NAgBpgCXxp1UPwioZUja3 aRU0kYUVXbl+Am/EsBtAwtHcZRdEKgHOdTCEVD3T3ZUu3okT4mBv+FWbeRQ/v4nH/veP p2wPJHm1cF6LMIdkGrnJWw3sk66FgjyyTF5DRvBkY4yAed3dSN3mQi6FA/Dq2GpeJFbm HEMA== X-Forwarded-Encrypted: i=1; AKwUvBxepSoF15cOhr3Sf9EPaHdzApphx/+AswQMF0dO3gLua09DWsGMpfXxS8jiiYP46QQHkDBZ0n+w3cbwg6Q=@vger.kernel.org X-Gm-Message-State: AFuF++lNG1y00W2ftbT+Pqw60YLijT6Lk3Hsd0ZOgjlx0KCNWuZUNhFr Hl/JDTcPNtpWqJPor4hpmnhjz0ylaulnVUkLZNPciUiCKaw8RbkXQXwPxOL+tEhk530KLxo0jyr mNEsnTC98mXOdgFkVynfrQBwWjYJ0YEgMyXyXpbefiXdS1R/b0JKKqCQr9Mhx5A== X-Gm-Gg: AYBFou3RQeD4C1p0ZIiVHp653u7tgNWDJBMwTCCQI7Fw+FZ6gAljUHNTO72PD78P/0D dwFX5In2eq8XlDumMBvuhzOxPY2/IvcrE6e793QfNPAAcMFG9nu0KPBO+Itn83BCsAOcqjptTNl 5K86FRD/Td3jLp+QiMGXzsNMxkQ5rIlGdtNXnsNR+6E2gpniSsXNtgdWiGknef5qkufzHMA7aQS Ym+GOfo1gaakdu9xo6u15kYz9moUA/pM823wLE8ldTzhtIKsKCCsqSaGN9TDp4GGgO/5S/skvae c4N9e/W0GwR5OA1TME9WmFrOXw1dr9owRyJm1uRH4sRQd0P0yFBDg6g/LmEvWRx8xZ+KsrDoZN4 ONRIEk2HkY3IF3Wchcr8yJ5Ccykzh2CDcerRe2VC4+L2bljXJz7eqgg== X-Received: by 2002:a05:6214:5a0e:b0:910:345b:476f with SMTP id 6a1803df08f44-910345b4f96mr1930386d6.36.1788365500485; Wed, 02 Sep 2026 09:11:40 -0700 (PDT) X-Received: by 2002:a05:6214:5a0e:b0:910:345b:476f with SMTP id 6a1803df08f44-910345b4f96mr1929826d6.36.1788365499940; Wed, 02 Sep 2026 09:11:39 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:39 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:26 -0400 Subject: [PATCH v5 02/10] ceph: wait for pending fscache write in write_folio_nounlock() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-2-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sashiko , Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=2448; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=S0n7wSE4O7NeGG1xcqPB5bhXLNuF0iPswl0J4cPzvhk=; b=cwK7yefdr3CryJYluvGMl9Sw6LnEoVPUHW3gDfpm0zTLAdcffKz4q2aPnImne6kPffRNrV8rL aY4bfdekI5/D8IdkVXp82uclZJ8hIiNC7rjAth6TyX00Wugj+gs60Z1 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-ORIG-GUID: _bSBaRUH_1unVHZ5zBQiOFlOW63xptlL X-Proofpoint-GUID: _bSBaRUH_1unVHZ5zBQiOFlOW63xptlL X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXzTDjnjU7i6Yd S8D7wAXdhiWGFoFn/l4fkICtk3L2OrDcq0FLcvhiXH39dOSfGflULHbks22Vb4EzjOzEUbEXUFt zEa9uHUS1ll/eqgO+nU7gUXBA7GHjwJQw/gSpsKcISe0cbiU3Iud X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX9eJ6ccETlMvw JS+IsyVbMdHePX9p+1kmkJYlLLquVC2j0UC7wUXBJ5lxOzbDnGJDr9sIcNI1bC+IZPIFEbgtPug dc/Si30C7/8g3w12GsuGR+8TqC1QG0sBxA1GQMNnQRlupOhoVVPAynbIpoqs2lUW44dQLKxxBgb pXIUwjXqbwrboR5hXZDw7UtX25fS5p9NB/RZSS13ARJaYUDESA5bwoEy1h/cBn+V2ox9+F+t102 64TpGqrC2+6BUKPtVYu74FGn+j40YiGLIAUYJ6NWPtRPVcRJKfjbN/Xwee40BX/NmQOs8Grb4QL 5pwccrZB0D2aXlwKJT4K9iCtODNfkqqjPrVB2hqjEIwPhJPmYof0eLZb+tBrFM1XSZfH7vlc/A7 DnmyWSazJVRdcPQicptfO6aSFynbNNM7/2XStqyJx9T/Ruwt3GLoFgK5qJlnMAmhk189p9lkMkb 10PpZeoKEiCNbVHmSRA== X-Authority-Analysis: v=2.4 cv=JcCMa0KV c=1 sm=1 tr=0 ts=6a984abd cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=c92rfblmAAAA:8 a=VwQbUJbxAAAA:8 a=zYp62tllrndxtlEyWVMA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=10 spamscore=0 suspectscore=0 adultscore=0 bulkscore=10 malwarescore=0 clxscore=1015 phishscore=0 lowpriorityscore=10 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 write_folio_nounlock() marks the folio with PG_private_2 via ceph_set_page_fscache() and starts an async write to the cache via ceph_fscache_write_to_cache(). PG_private_2 is only cleared once that write completes. If the OSD write fails, the error paths return without waiting for the cache write. On retry, ceph_find_incompatible() would wait for writeback, but not for PG_private_2, before calling write_folio_nounlock() again, which would trip the VM_BUG_ON_FOLIO() in folio_start_private_2(). Wait for any pending cache write before starting writeback on the folio. Do so before bumping the writeback congestion count and allocating the possibly mempool-backed OSD request, so that a thread sleeping on the cache I/O does not hold either while it waits. Add ceph_folio_wait_fscache(), a wrapper for folio_wait_private_2(), and use it. Fixes: 1702e7973410 ("ceph: add fscache writeback support") Reported-by: Sashiko Link: https://sashiko.dev/#/patchset/20260804-remove-wait-on-page-writeback= -v2-0-81f0ab065284%40columbia.edu?part=3D7 Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 28fb76ded32c..5452e73ae11b 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -564,6 +564,11 @@ static void ceph_set_page_fscache(struct page *page) folio_start_private_2(page_folio(page)); /* [DEPRECATED] */ } =20 +static void ceph_folio_wait_fscache(struct folio *folio) +{ + folio_wait_private_2(folio); /* [DEPRECATED] */ +} + static void ceph_fscache_write_terminated(void *priv, ssize_t error) { struct inode *inode =3D priv; @@ -585,6 +590,10 @@ static inline void ceph_set_page_fscache(struct page *= page) { } =20 +static inline void ceph_folio_wait_fscache(struct folio *folio) +{ +} + static inline void ceph_fscache_write_to_cache(struct inode *inode, u64 of= f, u64 len, bool caching) { } @@ -788,6 +797,9 @@ static int write_folio_nounlock(struct folio *folio, ceph_vinop(inode), folio, folio->index, page_off, wlen, snapc, snapc->seq); =20 + /* wait for a cache write left pending by a previously failed attempt */ + ceph_folio_wait_fscache(folio); + if (atomic_long_inc_return(&fsc->writeback_count) > CONGESTION_ON_THRESH(fsc->mount_options->congestion_kb)) fsc->write_congested =3D true; --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (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 8E6FB3DDDD9 for ; Wed, 2 Sep 2026 16:11:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365508; cv=none; b=tNw6SMy0X0Fh5AduPZrvXV0IIh6rzhyZYNqx6H+a7auaDOe3aAU/efkpEnp7OSqIOIog0uOx0PcP6stFtOsZLLv5dygYvPHXN2IKuyaE/EFtbeaHaL0IPeK4n+qT+vYAKkHJdNCcPUwB9/eWKSxsygao3mwe0VfHUA0a9MYXnwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365508; c=relaxed/simple; bh=DvGJjxDjvkeBc3Pgy04HlKwc6JzK4G0xkf22NnVZUUs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iG/c94i+Aak9gjkg0GJt50dRPXNjSpq9Bi+YtsFhI3W7jVyQNeZmjkgyG0E3kM0ix3FXqGWVWGC+u6SEwrTXcWF79wuS9oqTnddSp/zZumuRlx6kuu0uVavVp9UN06h0GVQ8rG1khER+8pQUQJnor9L10H2sgqq/cYbFXYoU6bk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=osIVpJdY; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=d0er/jc6; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="osIVpJdY"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="d0er/jc6" Received: from pps.filterd (m0167072.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPere104437 for ; Wed, 2 Sep 2026 12:11:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=/p5I yxMhiyN+xECiFbmQYjs/BfmH8yfl9vXNENMvPmI=; b=osIVpJdY7TSOJgL5uTid qDapcPx3LmfPlnsnaeuMuhpPefBVkpoYDShjN49kB8e6RPRKA90XQYbXnz9BoEwP Aj7s+nar/tU2FG5kQTAH05k8EFKHO41t66JcTbelpJkFZ9tKOABZ/mwGEy+IYFqy XY3CC0CshYfBB8n+aP4yGjZLTTcrhZiPfXqXOrCe7xxdvqIFX+R3fXqjrKN6gJWF LKUwaYF9zVGNCa5mFyCoRHMqSYveBVp5dVjqOpXLC4XJ9hmVrB+vFWU+Uxk5HIk2 MExlaR9iBeGbVTSn1yy4OS39YriYoS7YAb7LSzzoqriJEL+eZ6+Zkahh1VpTj/yB Lg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4gefkbk67s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:42 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-53018848232so4722851cf.0 for ; Wed, 02 Sep 2026 09:11:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365501; x=1788970301; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/p5IyxMhiyN+xECiFbmQYjs/BfmH8yfl9vXNENMvPmI=; b=d0er/jc6pkv8KVAbSYPhWymiw0sEcXzykrHGuSmOHB0I4a5xNsZKajFwX+7nIXu8Xn 4B8yQviUjm2NOxt1lYHfP3vjulJQSayrtpVAswW4h6YubnJRlmiH/7zBs4id5S2sgnWk /9MlfJip6omgV5nVudnCSsZBjRmRLgulX6oudJ9wDWBoun7SHk0bpQvwT0xGHoJo4SY4 aLdWFTy+JFw8wARrd9Qbyn/uX7X4xlW7be/8rWSJdw2ADj/5T+mDPYFicaIMjhudL4UF Ti/jHWX35bBB3yO7yqoOZE82DCPeq3s/Ycw6rPluE6L24VsAA8PvIJ0Z74sNkbujCWUO R9FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365501; x=1788970301; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/p5IyxMhiyN+xECiFbmQYjs/BfmH8yfl9vXNENMvPmI=; b=MwdtHiAqxiZRBnKPi3LZdb3kF7rcRbM2TosJgh/9offd+XzyD3tHhLmNaDEdNQCzpz jlCkj2j76sFzD07LSOUMixQo0+aVSiybF7i4RPx/dwODxbPWZRhzjZM3yUbv6yFZs9EN 7nE/nQpmOz82U4vHFYdpXeBzEknEpTP+6j8PzP4LKNrz1EuXrYJpN43HlHpxB66kaFZa sElsDDFcuZiVxB0/jJmb3ASL8ctA+kdzvmm8HnfHD6vG5JBzQ2z8M3PhRIswsoy2jg93 QdMi+O4rSrJJeTpT3HKk3lyHx2aOQs6zSfVwGJPj6Qg9GAFVuo0Rd6rcDKAm6TExXPui EVxA== X-Forwarded-Encrypted: i=1; AHgh+Rp3ZmVB9Ib1E9X6m1z1apGwJdW1t2ABa4u9iHBWg+0Xxzvzd5l2/3u3oqlWyB344keyi4LJnVSX0UuP330=@vger.kernel.org X-Gm-Message-State: AFuF++nrJqf/zS1Cu3bOZnFc9bHc+AciHfK96sKBQCVIxvgvlZSqJHjr WTunlM/5wltGUIRh8wb56z0UCGGJQ5GZy8Ms76pVWH3X7awPGd6qOWA7xtngaQBeJL2oyqbNAJK +UANEXZ7APAbLGLlYKwxXji3JoaFer541C5LLlKkG1aMNa6gtGx7fJLpL59SGcw== X-Gm-Gg: AR+sD128/u7BB1WLvxDV3dG14msdr3SqdhOcmFnGH3JOMRGrTtK+/VuwJ2MddEkSs73 TcJUrcDo6NFEjoQ8fYJRDr9ADOC0W0cWdk0bH91fN7f3NcMifzbD5xRwxC7zf/2qdyB1wTQoZs3 oCAe3vu0W+A/2JL9DMZoIGFJ4Hyzmg3UKCUR/PZqi9hZ8IcDmw17GhJ/tuk9bvw9L2TZc2MjBUz HYwla3UG+RhSWrSAHIJWKvUp1UbZwByNU/Q7tr6/ZzWzhbcmcXL64eMxmSj5wkSv8eO6dIUHxHe CPetFFFAWhcCvKhMucKRLB0iBBP+3nvX2o1l2bkYKJBHzA5QXvaO1cLr1PSCb/BAp8BH7AOb1em KDgkRfEZ2sz2CIbnvFXQASKMWvz49qqt5Wn3vv7zhqrryqwBkE3O3RQ== X-Received: by 2002:a05:622a:2d2:b0:52f:bd64:c147 with SMTP id d75a77b69052e-53036b90e86mr59636331cf.8.1788365501320; Wed, 02 Sep 2026 09:11:41 -0700 (PDT) X-Received: by 2002:a05:622a:2d2:b0:52f:bd64:c147 with SMTP id d75a77b69052e-53036b90e86mr59635491cf.8.1788365500817; Wed, 02 Sep 2026 09:11:40 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:40 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:27 -0400 Subject: [PATCH v5 03/10] ceph: add ceph_folio_snap_context() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-3-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=2021; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=DvGJjxDjvkeBc3Pgy04HlKwc6JzK4G0xkf22NnVZUUs=; b=YHFkn3aeu/zB2unSDs4R+gKwkgS/GLUjgJlDh8UQiLxktU0qaRlg4TlbyZIriHKTjERxntSWs 6j3gwCcidlZCq72wPNJ0ZKsXx3LWhN0DbW0DHbXWLcgbtEffoYM1QTC X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: _P8BhofFbDzwO07LKgeaEgh3_X7YYBB6 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX8Lsag3oKC5CC CWR2L56UwU/E26rkXjzC6RUe0GfJjpoQqDxXPEAqNlLQDoEvWJc43ljPF4T1bZGCelbYBk1IAPl Tf7VkOGCoQLI3pZfzvW2G7prCYxupUxLVohfoSz5vVi2hYUAelme X-Authority-Analysis: v=2.4 cv=aIzAb79m c=1 sm=1 tr=0 ts=6a984abe cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=SsB-OO3BMngHh3ZO9fOt:22 a=JfrnYn6hAAAA:8 a=Ikd4Dj_1AAAA:8 a=bg0B0yAPDd754FioS-UA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXwSGPtlG5sq4c zuRgiL/KkK58mKYr3gAfpoQ4HWIlGUITlvi8auBVQPc3MXDFhovpUfwxUXDZP0ZPAcJTbK3tOCe ZPIyNvatlhwURxqgb8S+GTk5YOfK+SVbMeg8rxojnCWuA0ox82DRER9GwBNNNiwhuTy/KC/6ZB6 XT8+Q415iDZwVVm4mVQ50iQJ9QfWnqlqeLCgrxrUYaf8JMA495VqN9v9Cl0gnWqXlb9DTU7h+22 HWShZEe5Gf6ExP/XvzE6INuy5alvGaGVlgu5PsslpKHxccl1+YmBiXJBkPHYG+L0EjAv4FgdpUJ r/kbmlfX9/jB1DOI23w+ZQCsZyZXG8I4+4GWkKUJRbxgiTOLrlOyeyWM+RM0bfrpLsaefqqAf2G nfuT/ftx6d7IR3ne0UNromvJq1+0PgUMSluWQYY5rEWgw6UveBbXt3ZXJMSDOLbQhzOGSoEglDT p3w/gjy+hn2vd57lQ4w== X-Proofpoint-ORIG-GUID: _P8BhofFbDzwO07LKgeaEgh3_X7YYBB6 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=10 adultscore=0 malwarescore=0 bulkscore=10 clxscore=1015 impostorscore=10 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 Add a folio-based counterpart to page_snap_context() that reads the snap context from folio->private directly. Convert the three writeback paths that passed &folio->page to page_snap_context() to ceph_folio_snap_context(), removing three open-coded folio-to-page conversions. No functional change. Reviewed-by: Matthew Wilcox (Oracle) Acked-by: Zi Yan Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 5452e73ae11b..2fd3d6d0ffa8 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -75,6 +75,12 @@ static inline struct ceph_snap_context *page_snap_contex= t(struct page *page) return NULL; } =20 +static inline +struct ceph_snap_context *ceph_folio_snap_context(const struct folio *foli= o) +{ + return folio->private; +} + /* * Dirty a page. Optimistically adjust accounting, on the assumption * that we won't race with invalidate. If we do, readjust. @@ -763,7 +769,7 @@ static int write_folio_nounlock(struct folio *folio, return -EIO; =20 /* verify this is a writeable snap context */ - snapc =3D page_snap_context(&folio->page); + snapc =3D ceph_folio_snap_context(folio); if (!snapc) { doutc(cl, "%llx.%llx folio %p not dirty?\n", ceph_vinop(inode), folio); @@ -1192,7 +1198,7 @@ int ceph_check_page_before_write(struct address_space= *mapping, } =20 /* only if matching snap context */ - pgsnapc =3D page_snap_context(&folio->page); + pgsnapc =3D ceph_folio_snap_context(folio); if (pgsnapc !=3D ceph_wbc->snapc) { doutc(cl, "folio snapc %p %lld !=3D oldest %p %lld\n", pgsnapc, pgsnapc->seq, @@ -1863,7 +1869,7 @@ ceph_find_incompatible(struct folio *folio) =20 folio_wait_writeback(folio); =20 - snapc =3D page_snap_context(&folio->page); + snapc =3D ceph_folio_snap_context(folio); if (!snapc || snapc =3D=3D ci->i_head_snapc) break; =20 --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 A837B4A99D8 for ; Wed, 2 Sep 2026 16:11:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365509; cv=none; b=uIld/zZsKbTR0MMEzuWc2v6q26R+xbbPLnG2Z1mro6PhLnkXwiBdNb4TkvVKvW6INZHOJ8IFsA4VBNs22CexoxLWv97cfqCgy+ptynP0SBcE/1MB2uWqmr3Pu+4D7AQujo7SLuB6Z3JkI9wMnw9cn8L1FJheE/tpdW/dNx4Uutg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365509; c=relaxed/simple; bh=vXDWSuDQTPW0LOvkYx1OZyCe//zjMEtG+2XJpjkTqZc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IHUdoLtruqPUmmIJiypvw3xlVZtyfv6IWt3wb0W2u7yh0Uw0D7AA9VZb4AIs7NzAFWKJTpdsCYRtbwF9Vx/5dJaZVE08WrZ/1tH4RFwC8yIYaJmBmzUhchJU017sSlSKt9G0IqOKpTXuwkCa2dUCZ2mVTghbUzTKSM1S7Lnl6Pw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=pVLNu8bI; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=DCnpYdb9; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="pVLNu8bI"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="DCnpYdb9" Received: from pps.filterd (m0167073.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPnmx463277 for ; Wed, 2 Sep 2026 12:11:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=R4v8 n5N2hSAXM4UTei/X90YnX/8+tfva0eCUgcdDuBQ=; b=pVLNu8bIgkQ+KmC1gu1w BZi6DxSRL3sJywPZQ8c9IOLqzrE/mgMOXPt2oMvRIAv6EoTgaU8ZZlV/HhNQd5Ua 3ObBlH1kp+Pkd/KS+DmBKyoC5oD3tla0W2bLzGEwdj3GX2R8xUA6n6pXMEo1BOPF x1GLaMV0LRpWGRywG4tPSPcyY2TGPcPMyG86/imG4VCuJMjxtVHEfBGNybdGwno/ LzwPkBD7cQnjJ2hcFFMRDUnQak/5rMBwU+bRGeOgjiJfDoR3HfiM/PAL718/H/TS gUwBNO8GYan7eu+6dFTesqfkOwK/H+h8YhnUWlnA2Nu5pInwbDgDrnINkhpopEa1 uw== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4ge833vy7u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:43 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51a8b0a08d2so18320231cf.0 for ; Wed, 02 Sep 2026 09:11:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365503; x=1788970303; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=R4v8n5N2hSAXM4UTei/X90YnX/8+tfva0eCUgcdDuBQ=; b=DCnpYdb9E/m2z4+54yUbWZjE+qHxwxMf0e3Q66IjsXmp6XCuLpuD4jRvajvmn8hscI S0diPmhUbR5fjZq8QKK8W5H4lC0ZNjDVFoBP+RiETVi3tVJq8of9yV5x0e/uUTedfmmG 08S33EBaADEfzmzOHa+a7/IfphmJxngZpzEdoDp8nmtgFlqXIDShUKV+n7lCl2jfQ78R vekEdVK8e0hufks12hcevK3CAROb8VSca0NF14kJlbej4Mj0TPD0UotACDXeoVu+TiaE ZLmouOOawxhLEnzF4JpwIe7caKUXuAuW+wAW9ZMBvu/kczGF7gnCHziQDIi2uPt08oLq 8ojg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365503; x=1788970303; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=R4v8n5N2hSAXM4UTei/X90YnX/8+tfva0eCUgcdDuBQ=; b=acpCyXSuspVWcnjCrMVwMpf/jr9P2srwWrSd3sguc8Z4xyf5Da+2RRdKm0cOkAt2Az AX4RjBuWcN/Y7bRB6hXesob+6NUL2frbWreGVbN8TwyKln+uv4x8DgCKuCsgNla0u+hu 2asfJw7k/1mbqfwH3ty2rq4bsoO7vvKdDSKFQQPpYtroHi8FbC/Zx58z4OkdqOd1Be3B k4wcRWu0tRjL0tTitL0h8NWGyBARtMoVYo0kag1Q0fiviBJFTP//x32CnFrRvyiZOgcX FYExWQMa0LpiDwFoqHdFBYyL8UGd4ZIuGtoer+W0aHTxAc3PJ4lvA/l5AP8ENIjUFEJn rUAA== X-Forwarded-Encrypted: i=1; AHgh+Rouo0Vn64hZ5wWeH9qmkg5spTbUlUIPw5jfZihhk0Snh2MmYDVjMk1rivlL3Dc0l+nKLwQ4pUz+AZ5bswA=@vger.kernel.org X-Gm-Message-State: AFuF++mn4VBFPua+ff/ORzTP2S7lt6HCKTDrhd/K8ScloEYLMjTzCrfX ALqB5h+iyIpQ6EDAnlwdil1LCTp8kdrhVnTjQUKutpx8kotB4QwU9kmdGyJ9+Y6JkoDOBtNG43E Wj1OHdOorQdjwy2PXuIs3Cha3oQZ1XqBECCj40VI658AxbROIqG7v3rlqvhUlSQ== X-Gm-Gg: AR+sD11+K8imxNT9nHSWKSvTFzZCZYv7e8Gt+vm/SaqJsnF+9gw3+ygRslab99IxFua 75rXuhKcfmYq8v1BXHFgrnfgKQn6gHx8/HHYMmBgiOuu32KSIzLxidMlSZ2lCvx2UuNs/Qa+hAA dHA9TSUiMnSTw6TkhiLWaqxrjAoFgrRnWhqRfO/RIqIcdC4C257xirlxCSqcVidPqobnRlwWAs6 g1BAkGxNzCZp+qkECeYBtbL1HzzBQcv1yHWp6M98tXxqbNYebz+eD/LgKAUfc59qC00rQ4plyqh ajsMluAgD+54LP7lRen/keTr0XgOwOFcmn2O3cXRr8fBhjUtcLy4l2x6PpQR/E3uSvO5HQnbqv9 tYFyTKc7meXwh4nsgCNr0+VYVgjsPP8JHJW7+ucr71gzVjhF62uBTcA== X-Received: by 2002:a05:622a:2292:b0:52f:c0f3:fff8 with SMTP id d75a77b69052e-53036c85c1dmr75336431cf.24.1788365502719; Wed, 02 Sep 2026 09:11:42 -0700 (PDT) X-Received: by 2002:a05:622a:2292:b0:52f:c0f3:fff8 with SMTP id d75a77b69052e-53036c85c1dmr75335451cf.24.1788365502092; Wed, 02 Sep 2026 09:11:42 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:41 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:28 -0400 Subject: [PATCH v5 04/10] ceph: convert ceph_wait_until_current_writes_complete() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-4-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=1518; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=vXDWSuDQTPW0LOvkYx1OZyCe//zjMEtG+2XJpjkTqZc=; b=NG3QtEbbjKEIQ3qsAPvXfUpqHY/T1XZ+awxl0PX6gmy9m1aBj7joXos1cKghD4PnfMxl4Nm/w 4MNeYkL0U9bCns9ZaN62ZcTCmH+7OQxNfp9OGNJHUJtVi4b+hWbEeEF X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: LKjsv283In2gxVf4xXq5rFa4zFRSQDh7 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX5oRJK+z8mmuc C1suOr6dkGyiMsnFSy1SQ5bjtZq4expy8s9wDyC1bLlXayc7KiAzKcYWrG6YtfhNd7gKmoFE1h3 Nforf8qNz2tf0QikkZTlx2Z8h+xvNfxV0TlxazJVbFkb5RaH9Jym X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX4EcATCRB1trb 5HaLptUa5Xv8o8pjoOZLkUixYHxVWnZsE0l/NuUaAaXeR5mY1ZBQpdXhK4Wpbur432gzUWCuEVO SVSN8/CS2ayXYdEO8BB4kpuk3hpIyYp42W/dIuyKAFUrNUdw4aZR7qMK997mEp+nLi0q/WhEPDK gfzwj+ksTILAOwx8Daa7lcrNpQ56W/K/LZS99L3cN9Rx3m70DPrKyIXJ67+OJjrvZfUw8XMJH5I 0+7HTWpsBENPbJm2oe024tWzjI7GWpfYCbdFEx1P9F2aP8CBwGnhvKPBqowuDVUqtdCUqy3GiQ7 Z1HxkOixW32YIVjkPy3aFXvchBNEDqTjnMAREo1G+SVEIoFySH6GQx58CD36k+gv0staTCkxxwu i1kEKtc5JFRfY5HVkToDPvZKVpqqhscJ+6yydwlQv1Yej4kunXErvhNF9b9ljWJnqbf//F4T+Hy losbdOjCVqlM/OJM/6Q== X-Authority-Analysis: v=2.4 cv=ZpPd7d7G c=1 sm=1 tr=0 ts=6a984abf cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=jHxIr1HyPKZ_Q5_91PL3:22 a=JfrnYn6hAAAA:8 a=oBeIbaJldBQvbLH65vwA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-ORIG-GUID: LKjsv283In2gxVf4xXq5rFa4zFRSQDh7 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 suspectscore=0 adultscore=0 clxscore=1015 spamscore=0 phishscore=0 impostorscore=10 priorityscore=1501 bulkscore=10 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 Iterate the writeback batch as folios rather than using &folios[i]->page. Use ceph_folio_snap_context() for the snap context check and folio_wait_writeback() instead of wait_on_page_writeback(). This removes one call to compound_head() and the last caller of wait_on_page_writeback(). No functional change. Reviewed-by: Matthew Wilcox (Oracle) Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 2fd3d6d0ffa8..5e4b9da5970b 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1660,7 +1660,7 @@ void ceph_wait_until_current_writes_complete(struct a= ddress_space *mapping, struct writeback_control *wbc, struct ceph_writeback_ctl *ceph_wbc) { - struct page *page; + struct folio *folio; unsigned i, nr; =20 if (wbc->sync_mode !=3D WB_SYNC_NONE && @@ -1675,10 +1675,10 @@ void ceph_wait_until_current_writes_complete(struct= address_space *mapping, PAGECACHE_TAG_WRITEBACK, &ceph_wbc->fbatch))) { for (i =3D 0; i < nr; i++) { - page =3D &ceph_wbc->fbatch.folios[i]->page; - if (page_snap_context(page) !=3D ceph_wbc->snapc) + folio =3D ceph_wbc->fbatch.folios[i]; + if (ceph_folio_snap_context(folio) !=3D ceph_wbc->snapc) continue; - wait_on_page_writeback(page); + folio_wait_writeback(folio); } =20 folio_batch_release(&ceph_wbc->fbatch); --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 BB2724AA03D for ; Wed, 2 Sep 2026 16:11:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365510; cv=none; b=a8Jx0WfSFJnMfVJ+hG+08EECJt/5sU6lNdqiJxXlsUSkkbSdlackEYxFzNercQt5zCfL/ietQoZTdctUQ2j7s+GSTlwiBn8sktOyj023wzcgCZvoMucbeL3gUm66wADaI/ZakJJmA0KxmRSr2G7/ae1E9oawLg7pm1qlhfujlbI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365510; c=relaxed/simple; bh=6K8So0zhiUop16OU1SZV0hMFVqYlDNvoFdQhENITqfA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FKmO3tMRrGsNdq5ao4HHC0jYSiZfa5GjaK7sIPtCkIOrPgaWDD68ssQdWetRIOR5knasHgSZyaizCDf6V+j0ob+96nFHokLaeJcqJHJ5g1sW2ZFv+78sMO3q99gQkiJLToilidvXY4xEqf6sqTVQEiyPTDfCdfoy0zXB71xFtms= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=VQzM7zYU; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=H3UPO2kb; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="VQzM7zYU"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="H3UPO2kb" Received: from pps.filterd (m0167074.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPXcI449649 for ; Wed, 2 Sep 2026 12:11:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=9+vj 1JvoRB8URu7nTUl8whzOblI6NEX6HUmsLA7DRaU=; b=VQzM7zYUgtlfsq5J/nb3 P7Qnwg7W+edOkq0ZxQqtKRlrHI4POu29oZGnm7ZLTua+wlogYx5xgR0ommtw6eRw GXdodYprFDLCcewEI3AD8r7BLf5QPCQtO0B0pMXc35W4zS6bGzxXsV8zkFwE7vDr 0jHIwhVVGZfBhLV7jvb0so4Azq1zeqxQonsc1FSWlxIdFXBG3OuvPovxLJyE93Nc lYqh+b3VLhAhjgGFlvjymYXF49kjNuY2R11EA50S9P42ZTDQzkd7NxP9HP91rZGt FUI1s6Vk8XG+h3beVoxH5dvAyKOGYcAOm7hg0wq8OSogKMoYxaQiPl6bmCgScXlZ 4w== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gec25kxa8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:44 -0400 (EDT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-90e869793d3so23100866d6.0 for ; Wed, 02 Sep 2026 09:11:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365504; x=1788970304; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9+vj1JvoRB8URu7nTUl8whzOblI6NEX6HUmsLA7DRaU=; b=H3UPO2kbSQxtdet2pIsnLxrfncinzA6yvbT+bJpEVFBLPvJ+5PLc+g1B2qzKi6lKT4 PYHJfJouo8GYbu9uH59zpyja/zYGewyarEZKV8bUCaHe+8Ly3z82kQ5S8hj5/KNsR2a8 IPDEy1JaNe96uk4O2DulDHOxZnQvptWG6fnOOOmQ7joUCBCNCE5c+srrXD1quRilf/nD WXn6ZdxuiagZdXEJoERA2PFD5Ju6MmIR+klqeBMsvd0jTHKXULQEM5KKz2Mtv80E2TSN vllqC+QNgvpyZBA7Oiaunbod4SMIEFUu8kO9WbCTckN60ZNUigPHIzwMVXAHCnAA4gIR LEoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365504; x=1788970304; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=9+vj1JvoRB8URu7nTUl8whzOblI6NEX6HUmsLA7DRaU=; b=TFqDiAeSTTmQSCD7YKcMU2Q2BVvMzuvoVGWqWB3F7eN+y5GSklYLRimF7OnTPaUfsV tNEHJq1Bz82Wg08IONRfVIEOMqfw7TOhI6dtrKQusHdr6sf47FbAVttWmzHDDSfARZax Gz6kAsEIw0j1Mw7uTV1lgO/FNr/wp63UuIrW1lc+OV6NafJSA9K4XeaWxjDc6Y1pb6O1 am8r9iJuPIpmuMa387yioHq40bdpZjAVEUPi0rRMTi4bF2aVkJ5C3DLqSw7DtcRdsMXl 1n+pOzpdrWixz8Qu8rPQwIvWbMqqazcTaiANMrALOtJDs7UgYOHRQSsUS+Zy3mO3Y4dt uwGg== X-Forwarded-Encrypted: i=1; AKwUvBxVJj1whsJZFZ3AzmRsf/dJ7bkN8lSq917kwLbD95JVJSxiChu13NWCVnTZA3jkLNRUol58DQd8x0nPIWg=@vger.kernel.org X-Gm-Message-State: AFuF++kbZq4w1ae0F6R4kcKpXJnRyXZWnMmsYE4P9No1t25R267zq5Sx hYoZlrXMRnBYsB/dPcdNu+j6yahtpnNxz+gb8M+HyTPvEmQ81amt58YLOhlkL+xfyfnXLWvh7ie Mr8QENm2LMywFDhxhG36isKk1qna0AHVm/eVnEvvK3Y3w6Qp9GDa+qAKiP0C0Kg== X-Gm-Gg: AYBFou0312WYUhqtOL7i7SJL7ahGs4CoC1QLewhP3HXedsKivCy07yaacguvXTtbU7A EOlSaNgHG4bFkhwjBB8JfaGap4lj6eSllf2nIQa56E5gEtANiY5FUwQcWmVWl0slAtHAtQFjp/j G69QNtYDuc34qT3oOegVDCcoDks8uDL5k6iBL3Do1s/gGJA7go/+8YrVWSa0lQlifpF0WwVNWj+ GYSTL2vptuB8Juoa+H+ReVSnvG4JGEtGJjfw61W8cg/lWXA20wGjNJiWBpMd3dbeMZZAaC5Ziqz GzgAU79W+eVtVIZDOwuLu9YCCyCZrKW97F0E59ThQeiJIyinaXujlYXd4Ykiuw96HOFGl2qSk3i 9gFQctCciP9yXVRgSc7U6OOgZPmrBXuowwf7EVFn86d+LXkj5a2V/WA== X-Received: by 2002:a05:6214:202c:b0:90d:af11:89fa with SMTP id 6a1803df08f44-90e9f20411bmr93549556d6.2.1788365503798; Wed, 02 Sep 2026 09:11:43 -0700 (PDT) X-Received: by 2002:a05:6214:202c:b0:90d:af11:89fa with SMTP id 6a1803df08f44-90e9f20411bmr93548246d6.2.1788365502907; Wed, 02 Sep 2026 09:11:42 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:42 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:29 -0400 Subject: [PATCH v5 05/10] ceph: convert get_writepages_data_length() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-5-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=4666; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=6K8So0zhiUop16OU1SZV0hMFVqYlDNvoFdQhENITqfA=; b=JKXesfZIXTjBUNRG2Pk1JTEoygoduPU/zW8UFIh8uwhpdqqLpACWjRIm4wT51NRFd/M/FBHGx iWAT9m9xyTkCSBNHk4MINOQRqPMDSCfJDcgbEngShrNqgRcWDydMh1W X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX9a1ygLFKhGQR AXsORh1esXyRZ02/yWwbJafZnCiulcmxizZCYScSDbWSI+4MnuMdlpLUr9DNiPbSE4JrcRW5SwX 0bt7fp3DxsyXqq90caMyZ3YoHWESsrg7VelNg3PIivhlRaaHjz84 X-Proofpoint-GUID: yJVR08GKBTn672oa2lXMQb5oKeoBnJ0V X-Proofpoint-ORIG-GUID: yJVR08GKBTn672oa2lXMQb5oKeoBnJ0V X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXyZ1EGqOIL5kP ZtlTX0oht8rGw4uDxY+av6uGT4cDQ7+rzJ+X2txtBNg2Z/R5LX436JLemFXjzYoyspjv2ULDQDE fumGiANTv+RKWxrysri/QLSI5Qa6JoOTWsW9fc9ngljYLq0bIyrpQmFotb2jCa2K4hJcF7qH93a b9DW4h1nw3cwUPok6WeGmKI/awJSNq89BErIKtZe1FHHBz5dqEqH4aIsO67vhy2ZuaFjuEFETnd MKK4HgVze2gFiJ7bJ9qw5F2cUGpwCLAY57yfpjZYsBgJ/d8LppKduY6qzWeyWxlKwQVyKjtUcoO OQC89RM440ETOSqmyABwZCMK1Z99pUPw8N8QmrCeG1bYempY1vMlmc3TqDPOXH1OIWh3TEXyWMJ uLpXOq37rA+xe/BXNIl9Y3ULowSQlbaWlQBL0vAF2po9mh545GmpDGq9TnM7tn3w2pRHKxVVhBc oYO1XxxOa71m39UTQ+w== X-Authority-Analysis: v=2.4 cv=BpWtB4X5 c=1 sm=1 tr=0 ts=6a984ac0 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=azVShVRs0zEubeQ0wG0L:22 a=4S3DF5rXG3rfafK4-1MA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 adultscore=0 suspectscore=0 impostorscore=10 spamscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=10 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 Introduce ceph_fscrypt_pagecache_folio() and ceph_fscrypt_folio_offset(), folio equivalents of ceph_fscrypt_pagecache_page() and ceph_fscrypt_page_offset(), and use them to convert get_writepages_data_length() to folios. This removes the last caller of page_snap_context(), so remove it as well. This also removes a use of page->private and a call to fscrypt_is_bounce_page(). Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 25 +++++++++---------------- fs/ceph/crypto.h | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 5e4b9da5970b..a72efe96e1f8 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -29,9 +29,9 @@ * * There are a few funny things going on here. * - * The page->private field is used to reference a struct - * ceph_snap_context for _every_ dirty page. This indicates which - * snapshot the page was logically dirtied in, and thus which snap + * The folio->private field is used to reference a struct + * ceph_snap_context for _every_ dirty folio. This indicates which + * snapshot the folio was logically dirtied in, and thus which snap * context needs to be associated with the osd write during writeback. * * Similarly, struct ceph_inode_info maintains a set of counters to @@ -68,13 +68,6 @@ static int ceph_netfs_check_write_begin(struct file *file, loff_t pos, uns= igned int len, struct folio **foliop, void **_fsdata); =20 -static inline struct ceph_snap_context *page_snap_context(struct page *pag= e) -{ - if (PagePrivate(page)) - return (void *)page->private; - return NULL; -} - static inline struct ceph_snap_context *ceph_folio_snap_context(const struct folio *foli= o) { @@ -706,7 +699,7 @@ get_oldest_context(struct inode *inode, struct ceph_wri= teback_ctl *ctl, } =20 static u64 get_writepages_data_length(struct inode *inode, - struct page *page, u64 start) + struct folio *folio, u64 start) { struct ceph_inode_info *ci =3D ceph_inode(inode); struct ceph_snap_context *snapc; @@ -714,7 +707,7 @@ static u64 get_writepages_data_length(struct inode *ino= de, u64 end =3D i_size_read(inode); u64 ret; =20 - snapc =3D page_snap_context(ceph_fscrypt_pagecache_page(page)); + snapc =3D ceph_folio_snap_context(ceph_fscrypt_pagecache_folio(folio)); if (snapc !=3D ci->i_head_snapc) { bool found =3D false; spin_lock(&ci->i_ceph_lock); @@ -729,10 +722,10 @@ static u64 get_writepages_data_length(struct inode *i= node, spin_unlock(&ci->i_ceph_lock); WARN_ON(!found); } - if (end > ceph_fscrypt_page_offset(page) + thp_size(page)) - end =3D ceph_fscrypt_page_offset(page) + thp_size(page); + if (end > ceph_fscrypt_folio_offset(folio) + folio_size(folio)) + end =3D ceph_fscrypt_folio_offset(folio) + folio_size(folio); ret =3D end > start ? end - start : 0; - if (ret && fscrypt_is_bounce_page(page)) + if (ret && fscrypt_is_bounce_folio(folio)) ret =3D round_up(ret, CEPH_FSCRYPT_BLOCK_SIZE); return ret; } @@ -1601,7 +1594,7 @@ int ceph_submit_write(struct address_space *mapping, * data length covers all locked pages */ u64 min_len =3D len + 1 - thp_size(page); len =3D get_writepages_data_length(inode, - ceph_wbc->pages[i - 1], + page_folio(ceph_wbc->pages[i - 1]), offset); len =3D max(len, min_len); } diff --git a/fs/ceph/crypto.h b/fs/ceph/crypto.h index 79cb563fd887..948c8b5dca06 100644 --- a/fs/ceph/crypto.h +++ b/fs/ceph/crypto.h @@ -162,6 +162,11 @@ static inline struct page *ceph_fscrypt_pagecache_page= (struct page *page) return fscrypt_is_bounce_page(page) ? fscrypt_pagecache_page(page) : page; } =20 +static inline struct folio *ceph_fscrypt_pagecache_folio(struct folio *fol= io) +{ + return fscrypt_is_bounce_folio(folio) ? fscrypt_pagecache_folio(folio) : = folio; +} + #else /* CONFIG_FS_ENCRYPTION */ =20 static inline void ceph_fscrypt_set_ops(struct super_block *sb) @@ -262,6 +267,11 @@ static inline struct page *ceph_fscrypt_pagecache_page= (struct page *page) { return page; } + +static inline struct folio *ceph_fscrypt_pagecache_folio(struct folio *fol= io) +{ + return folio; +} #endif /* CONFIG_FS_ENCRYPTION */ =20 static inline loff_t ceph_fscrypt_page_offset(struct page *page) @@ -269,4 +279,9 @@ static inline loff_t ceph_fscrypt_page_offset(struct pa= ge *page) return page_offset(ceph_fscrypt_pagecache_page(page)); } =20 +static inline loff_t ceph_fscrypt_folio_offset(struct folio *folio) +{ + return folio_pos(ceph_fscrypt_pagecache_folio(folio)); +} + #endif /* _CEPH_CRYPTO_H */ --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 9AA564AA1EC for ; Wed, 2 Sep 2026 16:11:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365510; cv=none; b=CfMMpjnjb3mnYLahHwMIhla4GrCMB72baD5Jz80bwMThaeB3kD0p6mlrdfa5d9Cn276/xm6gDYDBoYIsO4YXU4inoAV02SvLsLPgif6pt7FZFqJgTckEdkkCycjsgNFStjCm19m0zB8hC78Ct/yMoRKh1DdHwWk9rS27nWsxal8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365510; c=relaxed/simple; bh=s4aQr7hLLoPlSzWcET7qS2e8T5DJ7nFQ9HlOxIKnBJw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gBoe/WTa0sWYHLYVTnd/ByKX0qHQ2epTPX9w0fvuRaMbjMvVd3BRhOlikfvnYY5LqDE7bllrAu5e/Y2c3ZL6uC/hPBEe5U8eQpG2ykqxo3NB+wdDSXB2ANfFRn6XPn0uCJPxVRTdOAQb+j3tgHHkq7iXLBQhKyQJ8YlbT3Rt2fk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=i5Yf6md5; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=BraDFHpo; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="i5Yf6md5"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="BraDFHpo" Received: from pps.filterd (m0167075.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPgCN303734 for ; Wed, 2 Sep 2026 12:11:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=upg4 sAfRj9dU4KqMgi0idkP7WjgB7CavxCy4wH5wtWI=; b=i5Yf6md5vc6Io5Xqzn14 99UX3j6Nfj8enrb5t0a7KlGACV3paz2npbUjEjA2aU+SoVIkbfddFH7ktsjEHcFl Ef7K0N5oFAZBQfIagHg2FyAkah9OGztQht/LwKf/p5mk5Y53mquFX37TqkyVqWAt kdoT206CFsbt/UiEweQ7pwjF9VQogepN9Vpps/sn8cXzZfIZaXDW+TE6vG4kdUao Jq0PQ41FOiju5/uW6imHsIRXjYfeI2yp1tmL4ZHDeXzOK+3Upf5hnqblWM9XQdX0 p2r1LScU0D32rWLW0rxiVfyVTHc9+3efYk8KDdpDPgb6YZVc7Ay6Z4z77BqrlObT sA== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4ge8gcms73-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:45 -0400 (EDT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-93494527488so262489985a.3 for ; Wed, 02 Sep 2026 09:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365505; x=1788970305; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=upg4sAfRj9dU4KqMgi0idkP7WjgB7CavxCy4wH5wtWI=; b=BraDFHpoXp+ddH1TmJuJPlqLwnRuynJb+4yPRJa/VxwoNOWNElQexlZBsNOpWFR3fU /bzpAzr031xAhWkzq71bxlBcCUOE1jRxjAfOXz4dPdbw9EqebY1KSxqScl82d6mBIRS6 /j3ZkG5Pv3+vwHPq3JrDcJVPues9NIKmgIDzmNkLWEaPFiqTkkLZV1alLdlg7SCmeO92 wUiRbOCvtY7cSStSFP9iM0TAhkbGtbrpFiXJwIZbT8ifCSUc2l+P9oWdoHiJJ3o8n6Hw iEZpPaPcC8FLvYQdEsV7aN035ZI9MhZUFF2cNJJ7rnfVmrFRhiGk3ftGwHgloHLiTnhg FA8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365505; x=1788970305; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=upg4sAfRj9dU4KqMgi0idkP7WjgB7CavxCy4wH5wtWI=; b=kiFFzGo1Y6i3x4ghOAP0Aqj/bzN4/kmq+jTcyza10NCYWZMcvOFVA3OPHNjJ7D+UmW zoNN2VWAkOBxgWH4vJfKxQr24ya6dX3IHP0JDksF9pdgM4BG5SetVv3nz4Anj/LqAFjz kyrYLPfWbp8nUlt2B7O2hqtdcl7zdJxWTiO1RnbIOLzBCFUJ9mwiYOufRSQyNz+6KCUG gnK3foImAQqDSVM7O6o6RuzqKm4xxSIyCCC9mscznDRJ8kQemwWmsqiRAraDeGe+HD7O h2uOdConH1hJX++n+QrOk2eMta5MJ2LvopdlFmrnF/EAjSYDyjqpHQlU+nW2QPNrzyCn 9U/w== X-Forwarded-Encrypted: i=1; AKwUvBwXDvJHLKubQI5Go87JoUfo1pk3xLf0XrmqAgmcBkmjom8N00czhMYttZFb348ysCEp6O6vJgasw2Lhlak=@vger.kernel.org X-Gm-Message-State: AFuF++lVRXNhW7Xa3GE+24RhbftiHVxzXR//sIQLmaQx/0YA7XWEl87W JiJHIndKJy47V55iBEEFJ6BVuw7EKXnzUIQhIrwKpmemIpLtgT2UTcxbIcHWQzwY3G3G2F+LNwe sWUrqWdTuE14FH4C5FucelBHvRZ4pBJFvc7ErRMlWVeEz8hnFrgJzRJ+WOdzAhA== X-Gm-Gg: AYBFou3moTxPlnAR0TxyRnpMAZnIea6l+dnzkpPWpOfBUKAXyl6vBmd0m3qPODrMp7A 8PWjnHMNRVmZ9MToLk7aM166bpwfUBPg6WISUH/r6yxc22x9aJv3wogOyDsV9OJXlKMqoMf0VM0 ThY1h3YMkS5pSnLzGFgSkTX1xX/rfDOxNSYftKtSH6Ugk8rQHbuaVn2w05k2B2P77cS7AcsW1gc W3goZkSDydGaIM6XwRDzAGJi4NY/fbD3LoaOIRcwHNa0rrNCY7jlwZ+X0/n7AETcvLW7rJd73Yc v0KZdcSJLqz45jV9RGNgE9Tbq2DGyJ8aDfqFIhFBodBq0e5jv72KBCfnN109GI92IjByg9XI2Ly p/2biMJnm0jNUGMlixxHCwcEEhPhVSkdcb1HtJVUayg9y3nTfcDJ5ew== X-Received: by 2002:a05:6214:d64:b0:90e:8356:9bd8 with SMTP id 6a1803df08f44-90e9f238884mr82314716d6.11.1788365504437; Wed, 02 Sep 2026 09:11:44 -0700 (PDT) X-Received: by 2002:a05:6214:d64:b0:90e:8356:9bd8 with SMTP id 6a1803df08f44-90e9f238884mr82313856d6.11.1788365503812; Wed, 02 Sep 2026 09:11:43 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:43 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:30 -0400 Subject: [PATCH v5 06/10] ceph: convert ceph_submit_write() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-6-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=5038; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=s4aQr7hLLoPlSzWcET7qS2e8T5DJ7nFQ9HlOxIKnBJw=; b=AFrZBahtMjgmqG9lVd7/Tv8Z3B9eVyzMxdg0iDwqVokx0dHe8n/F0oGPBclpyyMb/MtxC4b2x 3e9knfiCSjYBxejaJWbZ2BoofoAMIPpleibPyjPP3Z75opqcgbn1lQv X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX81jBPLXEIETq IDoEOuX332X84BxULyLpKvg/WJgDpiPZrAtAeGzfok7/Xej3Kv1p83mIv+NA0sxYspNjQNGRRbS dMwYiKN5ZWXURKfEGrg4kXyeRzKNOKN5lK8A7lI7bCP3xRG+XPM7Na+T7tFN8B7z+w2ROR22TBB Il/JLNt1+26XzksSpjN7UdkLSQaqeyS0V6aHoW4IdFkkb++pVHQYODwrTdYDuj1ohp4cftJH1DV 9KW5x4o/VJPaB6+kRPef2Ww/hdZRwSHLxWB/j/CK5YKy30oS6k1mqWJ4X4Xf5rHC2XAvXZthgLn fEballtneizjP4lDF0nG7EAKhcNsXLFmnWMOjBPbtcL0wfmTJKRxHLKFKYfLSwa7M3pWhVO/sFt u2MwmL6QYQo18kxv9y49uRb4mF1oUq66fyXR4nPIfhi6hLmfPSPkIuzWRKVC22gP88pl4En0RNh iT+A+rBF+mclBo3OCMw== X-Proofpoint-ORIG-GUID: 3ZZUFTtjOB2XT12aB94qo2NzLQWfK_dd X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX9otdYOVLP3fj sTaumklkVJli2hICJnD0DcL+mv4/BX/fLpzrri0M+Ujd2VsbT/WvSUkp/g8vjefh7Z4zHnKDyPp zuTz4zJ77CjwtaZ8W4tOVH+6guWx2WOjMb1EtEsxfAu2j2UAchB2 X-Authority-Analysis: v=2.4 cv=HNbz0Itv c=1 sm=1 tr=0 ts=6a984ac1 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=RfODlEta0-z8xtihUo8A:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: 3ZZUFTtjOB2XT12aB94qo2NzLQWfK_dd X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 suspectscore=0 bulkscore=10 priorityscore=1501 clxscore=1015 adultscore=0 impostorscore=10 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 Convert the request assembly loop and error path in ceph_submit_write() to folios. This drops ceph's uses of the set_page_writeback(), redirty_page_for_writepage(), and unlock_page() compatibility wrappers in the writeback submission path. Add ceph_folio_start_fscache(), a folio counterpart of ceph_set_page_fscache(). The remaining caller of the latter in write_folio_nounlock() will be converted separately. In total, this removes eight calls to compound_head() hidden in the page-based APIs and one explicit page_folio() call in ceph_undo_wrbuffer_claim()'s caller, while adding four explicit page_folio() calls. Note that get_writepages_data_length() must still be passed the possibly-bounce folio, not the unwrapped pagecache folio, as it checks fscrypt_is_bounce_folio() to round encrypted lengths up to the fscrypt block size. No functional change. Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index a72efe96e1f8..b0deff481d95 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -558,6 +558,11 @@ const struct netfs_request_ops ceph_netfs_ops =3D { }; =20 #ifdef CONFIG_CEPH_FSCACHE +static void ceph_folio_start_fscache(struct folio *folio) +{ + folio_start_private_2(folio); /* [DEPRECATED] */ +} + static void ceph_set_page_fscache(struct page *page) { folio_start_private_2(page_folio(page)); /* [DEPRECATED] */ @@ -585,6 +590,10 @@ static void ceph_fscache_write_to_cache(struct inode *= inode, u64 off, u64 len, b ceph_fscache_write_terminated, inode, true, caching); } #else +static inline void ceph_folio_start_fscache(struct folio *folio) +{ +} + static inline void ceph_set_page_fscache(struct page *page) { } @@ -1467,14 +1476,14 @@ int ceph_submit_write(struct address_space *mapping, struct ceph_client *cl =3D fsc->client; struct ceph_vino vino =3D ceph_vino(inode); struct ceph_osd_request *req =3D NULL; - struct page *page =3D NULL; + struct folio *folio =3D NULL; bool caching =3D ceph_is_cache_enabled(inode); u64 offset; u64 len; unsigned i; =20 new_request: - offset =3D ceph_fscrypt_page_offset(ceph_wbc->pages[0]); + offset =3D ceph_fscrypt_folio_offset(page_folio(ceph_wbc->pages[0])); len =3D ceph_wbc->wsize; =20 req =3D ceph_osdc_new_request(&fsc->client->osdc, @@ -1498,14 +1507,14 @@ int ceph_submit_write(struct address_space *mapping, BUG_ON(IS_ERR(req)); } =20 - page =3D ceph_wbc->pages[ceph_wbc->locked_pages - 1]; - BUG_ON(len < ceph_fscrypt_page_offset(page) + thp_size(page) - offset); + folio =3D page_folio(ceph_wbc->pages[ceph_wbc->locked_pages - 1]); + BUG_ON(len < ceph_fscrypt_folio_offset(folio) + folio_size(folio) - offse= t); =20 if (!ceph_inc_osd_stopping_blocker(fsc->mdsc)) { for (i =3D 0; i < ceph_wbc->locked_pages; i++) { - page =3D ceph_wbc->pages[i]; - if (fscrypt_is_bounce_page(page)) { - page =3D fscrypt_pagecache_page(page); + folio =3D page_folio(ceph_wbc->pages[i]); + if (fscrypt_is_bounce_folio(folio)) { + folio =3D fscrypt_pagecache_folio(folio); fscrypt_free_bounce_page(ceph_wbc->pages[i]); } =20 @@ -1513,10 +1522,10 @@ int ceph_submit_write(struct address_space *mapping, CONGESTION_OFF_THRESH(fsc->mount_options->congestion_kb)) fsc->write_congested =3D false; =20 - ceph_undo_wrbuffer_claim(inode, page_folio(page)); - redirty_page_for_writepage(wbc, page); - unlock_page(page); - put_page(page); + ceph_undo_wrbuffer_claim(inode, folio); + folio_redirty_for_writepage(wbc, folio); + folio_unlock(folio); + folio_put(folio); } =20 if (ceph_wbc->from_pool) { @@ -1542,8 +1551,8 @@ int ceph_submit_write(struct address_space *mapping, for (i =3D 0; i < ceph_wbc->locked_pages; i++) { u64 cur_offset; =20 - page =3D ceph_fscrypt_pagecache_page(ceph_wbc->pages[i]); - cur_offset =3D page_offset(page); + folio =3D ceph_fscrypt_pagecache_folio(page_folio(ceph_wbc->pages[i])); + cur_offset =3D folio_pos(folio); =20 /* * Discontinuity in page range? Ceph can handle that by just passing @@ -1576,12 +1585,12 @@ int ceph_submit_write(struct address_space *mapping, ceph_wbc->op_idx++; } =20 - set_page_writeback(page); + folio_start_writeback(folio); =20 if (caching) - ceph_set_page_fscache(page); + ceph_folio_start_fscache(folio); =20 - len +=3D thp_size(page); + len +=3D folio_size(folio); } =20 ceph_fscache_write_to_cache(inode, offset, len, caching); @@ -1592,7 +1601,7 @@ int ceph_submit_write(struct address_space *mapping, /* writepages_finish() clears writeback pages * according to the data length, so make sure * data length covers all locked pages */ - u64 min_len =3D len + 1 - thp_size(page); + u64 min_len =3D len + 1 - folio_size(folio); len =3D get_writepages_data_length(inode, page_folio(ceph_wbc->pages[i - 1]), offset); --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 993574AA1C0 for ; Wed, 2 Sep 2026 16:11:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365511; cv=none; b=mE2pZA0pesKCYA+IhYhlW4jpVDmmwdMsjv3CTBTqowTmrWNwfPYyBqxbnLyxPU7bjKeh5yZfWHZ3RJgjFlvuq851/iM7RHq8HPojjj8TxtgRLzaywv64/mbHhz5xkbtVUZYUPZQiK2o7a51Iy+DATppTI1iBNvRmgdEgkVQBnok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365511; c=relaxed/simple; bh=rZI4wY7ubss2UkuIjYXh7kkv7IuPpkYYSXBGDgUAZ0U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g5EmQzNAFdIUYfrUEeoSI4d+1eYWlDrF1yvI3WzBhh96cDDo1QHqKi31n2jfVyuHHCvPZBKTss7/pnTB6GHrZro3pcY3OFmE9CnRWRclMBXk7BAbuEcwzy6EbKym38Ku8K2Bd2mRYF14ZdjZ8xLn3vASD38YnQVkmThEGa1D62E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=qH9P93jh; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=m6h8ODCr; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="qH9P93jh"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="m6h8ODCr" Received: from pps.filterd (m0167075.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPagn303615 for ; Wed, 2 Sep 2026 12:11:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=c+n4 YzUiwE3r+eN4U/3I84mF1+YQlObNero0rB9Azq8=; b=qH9P93jhTXOiKLiyjfpQ oMYsc6l6yq2NIl1f+jAdjtzsnWTrStnFpMVPJAebFDCznEpDnCxY6Iaw3JLF9NxC ITjiPUbZGKQFOuf4CKdfPrLZDh10+Q9ciCtq7GMyRe91bAVKgbZER0HSl10rBLkZ +rvN6JsV9z/09vJDu6s3uhFK3iytxjpdystRy/bxsJ4DdpSe9JKysS1nD50iEfr8 oRwevYCDNJss+wOwnISO2LZcOT2af3ubjc0M+VMrlLRStzRDFeqf8RoJC61MLnTF FU0Knfjeh0XykINd9EIZFerJG55+RmckaYakAu2NgV6hocQ3v+l19MrkApDfxp6V mA== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4ge8gcms78-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:46 -0400 (EDT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-90ce9ff466fso26302876d6.3 for ; Wed, 02 Sep 2026 09:11:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365505; x=1788970305; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=c+n4YzUiwE3r+eN4U/3I84mF1+YQlObNero0rB9Azq8=; b=m6h8ODCrXCT9AKCflVOjZP+CUXv9FLcZvowX5AbDZoe2UrfKC/8BiCdg70Mxu0NUuz vANEoJnLJe85RWJC04QBsPM7w8rFP+odOVCAWFQyZOX9HmUMmHW1ZUM+E+2FueN+1vZO 7Yes8a4lbK1aAgT2F9thIqARSJ/ndk9gwsSySmVXiSwKIplxhkUjZTToMrRuK/sR9RGR Wyc5AdhJggCi2gIcGTOGvVeac1GKah2ZaPNFW/SORR8deMXWQikg/WrPOGMLuhlvn0Rx J/fT9G+frB81pFnOqJhIxTdPy2HW/s+zRHN2I4vYPevWt+1RambTzd1wRW6VbphoQ3RD q14Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365505; x=1788970305; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=c+n4YzUiwE3r+eN4U/3I84mF1+YQlObNero0rB9Azq8=; b=Mfp28+c+LZgjOkbtHM5nM9PHSP2WNK0hvN07Gg/oh7iqYd2uxHdCo/He3hjALpV0+N ngJD8focZrEg3dBLbgrEKH5BkMcvH/xI0ksmSjJieu6EYzCJOAq4QXF3tPAEOIn8Ku67 Sh9wo+sLJPpPBOuZkLKQIp1pyOfyPBO2JKiyYjTzVIbiFEsnnIy1h9BN2YzzV1hkMijV yP3QnirQlhMJ22l4nuMFVC/6rZF0TIlAiUsq/3lWSOUFutcGIfquuLWcQqRcL7WkFmKz LldcN8h8XpiWXN/qtxq8STbSt3IBRJOgbitYif9NETu0oW+m4v61MBi8M+4zTVMVuIY1 mR4Q== X-Forwarded-Encrypted: i=1; AHgh+RoDUkHadBviU2fzRfyQWw9x9gJKwoTKGPd3uj6KSxHoqH8NOAEnV0jBf4sFG2RVe3OGjahJoQozEShqVG8=@vger.kernel.org X-Gm-Message-State: AFuF++m8qtCXu14dxhHGPo5RjKv8MDj6WHOViJ/iZEJrSzFcRPw5rT+x dvro3mhVfHKMhIo/kcXHfpBGI+rdgC7IsVOenULMYsU/AELDciN8flxj7Kq6XvLzN0a4yet3WyG OFpZ7cYC9GD7sYMD1c1H7Cj3uT2ovQ+joZAlAfXqKZRcb8uVFNnXEr3GPa5JXHA== X-Gm-Gg: AR+sD11hPPCcX+tgIb/yJGQBCMXk43Wuhgi/u4jvtV03JKFTVXH51ubZc8AyOWrJjwo biDbcPYcCnY3Ky6fjJQqDRd58aSHPXliUmfNcgpbUq17exaEu4QnNRo1Pv4dT1EFKAmy7K/ynkH 7DLNaTawbn5R5V0uBho1bDvWZ+B4+XxaKPLWuTez2VvKpjQ3Y/LMIHwcaUbyOAZUQmv+5JXS2+w Pj1pika2BABPStMNuvfTOruSwdZ7ITvcd1syfaa3MXcN7kDV2FM2fI1xoX6BfnMQW/u2bV0neYB oqdlHIjoaerPg9xKzUVln6lwVUC6mZ/TrGvsIpRSZyFN1xQde9tOadwKtkYR8XVYjtuTqMMeIg/ pORCs3SnRXC5ZObBXfOUdoOsB8bhf8GqBX2oYDN/So6XGArb5xodV8A== X-Received: by 2002:a05:620a:22c6:b0:939:6dfc:a95 with SMTP id af79cd13be357-9396dfc1dc3mr25301285a.52.1788365505439; Wed, 02 Sep 2026 09:11:45 -0700 (PDT) X-Received: by 2002:a05:620a:22c6:b0:939:6dfc:a95 with SMTP id af79cd13be357-9396dfc1dc3mr25293885a.52.1788365504773; Wed, 02 Sep 2026 09:11:44 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:44 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:31 -0400 Subject: [PATCH v5 07/10] ceph: remove page remnants from write_folio_nounlock() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-7-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=2482; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=rZI4wY7ubss2UkuIjYXh7kkv7IuPpkYYSXBGDgUAZ0U=; b=dXln4uVWRrEYHWoQ8PQuT8JNc9K2DQvK2z4cdLVYxjOM7rwnX9exKiApm3gO5UszntMYf6aAB go6AoGDiTjqD7mdfX+V9ZyXHXwoQZf9XYkxECSGpQg7/ggG9GhaQzij X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXyfKcGbrUoUoK AQqNBuZGiNlDkUKviDsvux/sv9cq+VswXvqS6Vk5ex5FGr/yd2OtdtHkZn2CUe7k96Y9lriI9oq mPo3+q+EVT5RF1qwh3aQZ9J9YF89RZD2dtyNRcxFiuM0GKm7BZTvWP5/op5Yoxzo5OMsXd4O5Xf EqcdpZ5pwjUbs7tXYgVY+sJsvKnl0CwCEVgBoMIlgkgTsVx4rwF0gsO1RYBEGG+rqDItfRfzFfq Qx4lFO8YAxIfAveGasL/T7i1Ji993zN/JgyKQlZY05xHeHNHf+D4qqkaRtbR1JZ8UC9LeGErXUg /BaqT3NNsswhCPgWbZ5soyH3q2/iV8YWFjmbSoJH+49fiz31fxcURPORGWhPngNmzXHFz3tntTj A1A7FxQwbsrjcumfi9AcDe1CJX37+fPZR7EROx4UPJoT+o+Jt7PUJ+vm8LXt4SWrEqfPNCgQtEz evpgvOTEaxOnXmQLZ5Q== X-Proofpoint-ORIG-GUID: JmqUNtidTXQuX9z7c-iHF3dHq--eVART X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX9JaS8Vm79okd 61txblVyzJpCqb0jX3TOMTpyeO0t1T+CNFEIxBL3zrlhr2refPonzmWBX6A7QACb2qrmway2wlV o+gHjo5EAIxq+R1zCNLugYdHeFjKkuKN+iH0RVRcus+lVMs7juut X-Authority-Analysis: v=2.4 cv=HNbz0Itv c=1 sm=1 tr=0 ts=6a984ac2 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=nej-XM8oC_bN5SNaFc0A:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-GUID: JmqUNtidTXQuX9z7c-iHF3dHq--eVART X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 suspectscore=0 bulkscore=10 priorityscore=1501 clxscore=1015 adultscore=0 impostorscore=10 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 Use ceph_folio_start_fscache() and only use a struct page pointer at the osd_req_op_extent_osd_data_pages() boundary, which requires a page array. This removes a call to compound_head() in ceph_set_page_fscache(). This was the last user of ceph_set_page_fscache(), so remove it. Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index b0deff481d95..8e761144e8fb 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -563,11 +563,6 @@ static void ceph_folio_start_fscache(struct folio *fol= io) folio_start_private_2(folio); /* [DEPRECATED] */ } =20 -static void ceph_set_page_fscache(struct page *page) -{ - folio_start_private_2(page_folio(page)); /* [DEPRECATED] */ -} - static void ceph_folio_wait_fscache(struct folio *folio) { folio_wait_private_2(folio); /* [DEPRECATED] */ @@ -594,10 +589,6 @@ static inline void ceph_folio_start_fscache(struct fol= io *folio) { } =20 -static inline void ceph_set_page_fscache(struct page *page) -{ -} - static inline void ceph_folio_wait_fscache(struct folio *folio) { } @@ -748,7 +739,7 @@ static u64 get_writepages_data_length(struct inode *ino= de, static int write_folio_nounlock(struct folio *folio, struct writeback_control *wbc) { - struct page *page =3D &folio->page; + struct page *page; struct inode *inode =3D folio->mapping->host; struct ceph_inode_info *ci =3D ceph_inode(inode); struct ceph_fs_client *fsc =3D ceph_inode_to_fs_client(inode); @@ -830,7 +821,7 @@ static int write_folio_nounlock(struct folio *folio, =20 folio_start_writeback(folio); if (caching) - ceph_set_page_fscache(&folio->page); + ceph_folio_start_fscache(folio); ceph_fscache_write_to_cache(inode, page_off, len, caching); =20 if (IS_ENCRYPTED(inode)) { @@ -850,9 +841,8 @@ static int write_folio_nounlock(struct folio *folio, =20 /* it may be a short write due to an object boundary */ WARN_ON_ONCE(len > folio_size(folio)); - osd_req_op_extent_osd_data_pages(req, 0, - bounce_page ? &bounce_page : &page, wlen, 0, - false, false); + page =3D bounce_page ? bounce_page : &folio->page; + osd_req_op_extent_osd_data_pages(req, 0, &page, wlen, 0, false, false); doutc(cl, "%llx.%llx %llu~%llu (%llu bytes, %sencrypted)\n", ceph_vinop(inode), page_off, len, wlen, IS_ENCRYPTED(inode) ? "" : "not "); --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0a-00364e01.pphosted.com (mx0a-00364e01.pphosted.com [148.163.135.74]) (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 2F8544A99BD for ; Wed, 2 Sep 2026 16:11:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365512; cv=none; b=JQ8RSglbhOU5MnX4hJK8ZRseulI3LtwLMDlDC9xaB5RrIiqjq7w4sy8HTvpav3F6esKJ4vftlyC8pezfZY2WyBvmRoLLzzAfQI2sDVBkyZ7/V7Jy6qT6vvjDAPf0g7ISn54YxJnJIu6Yf2WF8O3aYqqtQLXylaJGZcwVJ/uUhIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365512; c=relaxed/simple; bh=kZHRgcKVIkMiGl7gg97Bj8D31InPWvfamVltkToMnuw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D+xBD2Li7/EtCJOgOvyd6Jb6FidItYZTVj0Tb7LFD+eYgItucrJYOnLsI82lOPFfn1xSa8Ty9SHEjt6HWiDeezIi+hyRO29X05jrtOhEpbe6BoZh8hXem1vtQ8SeFD7R1zjBQVF5Q2FVOEFsF72EaKiZ+gbx0qHo0aQ8dp+NFEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=NliUBfSP; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=xmNBtrTE; arc=none smtp.client-ip=148.163.135.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="NliUBfSP"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="xmNBtrTE" Received: from pps.filterd (m0499199.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPc9I231403 for ; Wed, 2 Sep 2026 12:11:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=0c55 qEw56DA3X6mui1f7k1LUvSGQjzCm1wrmsoYpdRU=; b=NliUBfSPbDLKPdXIOaQ6 tX9MV7c6M2XqErWJHDi5IJq5+iRTuvfIOVjNhCPoHw6bZhW/bmbKODbRjauTUxRo jR6Q6+s0tG4JMuAJG8U83VTJ6rk+AnZvnlxuLfnekomhF8Mw4szh0p5ybOE7LeYU PluAbIoeSo3O3nkhvbZlX837jS+rF11yIWTySroE4DKVG3lMwCYmZBbLNt8HFn0m 6o7ZSOFSPGiostVY18+xguXfj2BhhodiJT3IP/7dlec1dAetBz8xolnJQfUcRRAS 3M4SKvD9pZWAerL2IJzN1oWDPhnOIsU6+2Hd6x4mydRBoAmIr4w76zbOOKp2Ihce AQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4ge9n3vdbb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:47 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-53013dc2330so34231671cf.0 for ; Wed, 02 Sep 2026 09:11:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365506; x=1788970306; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=0c55qEw56DA3X6mui1f7k1LUvSGQjzCm1wrmsoYpdRU=; b=xmNBtrTEWpIx36hkLfFBxlyrzuqN5GvWv/SbOZDfXXuu0p40DCwswd274LgA/6pIaQ 5lsccPy/uxtdewxd3PYFZu9zlhUu2dYYBKB5XW6zFskTDY8PTJ1RM6rOFiLYz8RYIzXR stKTaf/RuKznrATxjQGn82YrZEc1oPQLwIqaa+Hua459pj9s+ygkzWgxQlzX3cJVrKL1 PHEY6Df+yPexSowWKmfOL5iK9ujX+3TxlkD8V8cYvAeu6vvOdmUlI94fl5QYIs+OiZrI Lp7V9oAqGiOPuhkOKpbeXqrsAsj/0u5o7DuR2mBzuoX7Kwai4vR5oe+Bt21epyZ/PPIA 0oDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365506; x=1788970306; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=0c55qEw56DA3X6mui1f7k1LUvSGQjzCm1wrmsoYpdRU=; b=WVdfz9613aR22OXgR/FdwBOeyWCm3sU/WnIUGO8NSWqzj/OTE6xuu2z45svFCD57T4 +/jYuBg95/iRTHpiUEenNOuuUte8eVEIJzmojOsKivBbCEi6zMgT8YmhOTfAN43/ZWCE SocUd7uoXiybhVkIULIGYjTF87MFp9QoPR7ruo12iiwbApxij12euvejYJeeWK68V/S8 Hq8zldd0YxrQ7RwN6PWRJ0K8ojkfLrWfmsoRt5v+lHh0OYeX7MNIAnfN1FogHhLP9BTl l4d2AC7SBBDFavtFB9vV8pI2qVC/cJtrq0euEmqRddtPFuAXZm5TyDjSkW1bxIOm+/sT 5/Dw== X-Forwarded-Encrypted: i=1; AHgh+RoYa9smcHtpeb0OtcPqDrrvjqscwl/bdyafTcLehRZBzpMUfUOkwrzHZ3eEBDPYDglf0gaB/MuJG7QhmFY=@vger.kernel.org X-Gm-Message-State: AFuF++lO9v8eY3kmPagq4FjOMZFcYQIsIFwBnNdcZ4Ina22iDsQ6AsR3 FL5XhqpVlp9ds+U1Fjp6y8iLZ6PrWTYEzj4w9v1eTVv+lUTIeynnMqRoQsplBMuK88YLZurKx6o ao3CtkKZcWmeeZOIVl7mKaiz7Gqt3O9kdDuj26KfcLoVJJsE3abeY2ygYOjVTiFOT9QYtG2ZM X-Gm-Gg: AR+sD12aTuQiXF1pCQym/aTfpXWXhdNPFeoYmcfF+7CWLeenN+ZliwpWv/V7sZXSb+T xyUOj233FVGEp0KA64AeeShtvn1yCgIdr9tIMY0o+1JdReugnNjZTBQtg7ZIeKLqaaJr0riXsCu HasKYaW7jGPTJYNjT9aPdBRTdOC1aMvZKVcqdOtqQeVqeWtYRWshi+qO6x9vHtnLZicUAlC7zL6 a+edc8GgLHnBCmXqLRoImWaiRVyJjHecCTsn8sclL5UiYViaCFNU9cLJaN6DpbPsfnLoJy5f/5E 5L80isIH4Bi+doYbYd0Pzxv2RigorxOpc0SCoLP8ID+vTCFQYTF1Rj2Q7heF/aFk2vcMtrEWizt n5kjeuBRYVDf8akhA064pHrPlej7Ixid/tUmmUR/qaEgOV9YkwFJnbA== X-Received: by 2002:a05:622a:2c6:b0:52e:2d4f:2219 with SMTP id d75a77b69052e-53036bf5bdcmr61748471cf.9.1788365506205; Wed, 02 Sep 2026 09:11:46 -0700 (PDT) X-Received: by 2002:a05:622a:2c6:b0:52e:2d4f:2219 with SMTP id d75a77b69052e-53036bf5bdcmr61747571cf.9.1788365505547; Wed, 02 Sep 2026 09:11:45 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:45 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:32 -0400 Subject: [PATCH v5 08/10] ceph: convert page cleanup loop in writepages_finish() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-8-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=2655; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=kZHRgcKVIkMiGl7gg97Bj8D31InPWvfamVltkToMnuw=; b=p49kerf8+Rs4LgGbNOFMKqTx1K6T4uIz36u0S5w/3/+LDW6e7lp4qxnrc8gLOeAEXW0FN3LH5 3vJ40cTGAoKC5IJdZRcHp+nAbdYIXiT9rw38ytzfBEGd0XOtMmNINfl X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX/Fsor4YBBGlK t46A1h05hToLPLp8TvDjINN0Rbskmsn0MCw6FPX4ZsHvDKk6K0kU8rQcZElera9SghAexP+jycJ xzeLCeVA2ZhS25c241FpKlcxtdIPw9/iNLAUTnqUQDVEsvp8jRa8 X-Authority-Analysis: v=2.4 cv=O90Jeh9W c=1 sm=1 tr=0 ts=6a984ac3 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=G--0XuH5328wxK7v7Suf:22 a=PHYVD-oPFUEr7kX-Mb8A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX5e6bXqei/BS2 DV2duM8RcEArM8nj8fVxd/3xc1rGQGLz8avccE/shzz0St1TyL9DXoQjU9OJr1YNpvN2GS9JK4x 0fqanKIWyq1kdo4A21w6kzLBvyoPx5Dyk89ArXhjRnJYBiWhhfLuUZ1umfyiRDenXnRptrTqB/G swUGriAkdldSj7jcHoLYlVskspTsYFqO62VdvAJ8wFFOdFBX7bECvtMhTIQndL3HBhSNp3AY/QG XA3l6wFUKfaeBQL1srx8HtvVuk5BEoiI8zvT4JIg7lZ+b8uZnyAKJA6ns9I5ZWKRTY8l+58s1b0 13eck50ALlKSapj4XYd9Sb0r4QYb4nTcH1sg5ki7aqc3uiAZMohkIMvQWo8DPi96QuETJ2J68rT LsOicZydqZ1bRRPfnGJ/ThuTvKSWs6CbHUZv+MRqTPop4o8NHTv0IYPe9Iepib/+QGeTB2cjF3N OqjHwXbAXhpDjZsJq7Q== X-Proofpoint-GUID: s76iBcwA4r2NeNfWmLie7XX5YWwtxtET X-Proofpoint-ORIG-GUID: s76iBcwA4r2NeNfWmLie7XX5YWwtxtET X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 lowpriorityscore=10 malwarescore=0 impostorscore=10 bulkscore=10 phishscore=0 suspectscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 Convert the page cleanup loop in writepages_finish() to work on folios. Resolve the folio up front and unwrap any fscrypt bounce folio to its page cache folio, storing the page cache page back into the array. This removes a use of detach_page_private() and five calls to compound_head() per page, while adding one back via page_folio(). While at it, remove the BUG_ON() in the num_pages loop, as it cannot be triggered. No functional change. Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 8e761144e8fb..f9741812e8a9 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -913,7 +913,6 @@ static void writepages_finish(struct ceph_osd_request *= req) struct ceph_inode_info *ci =3D ceph_inode(inode); struct ceph_client *cl =3D ceph_inode_to_client(inode); struct ceph_osd_data *osd_data; - struct page *page; int num_pages, total_pages =3D 0; int i, j; int rc =3D req->r_result; @@ -960,35 +959,35 @@ static void writepages_finish(struct ceph_osd_request= *req) (u64)osd_data->length); total_pages +=3D num_pages; for (j =3D 0; j < num_pages; j++) { - page =3D osd_data->pages[j]; - if (fscrypt_is_bounce_page(page)) { - page =3D fscrypt_pagecache_page(page); + struct folio *folio =3D page_folio(osd_data->pages[j]); + + if (fscrypt_is_bounce_folio(folio)) { + folio =3D fscrypt_pagecache_folio(folio); fscrypt_free_bounce_page(osd_data->pages[j]); - osd_data->pages[j] =3D page; + osd_data->pages[j] =3D &folio->page; } - BUG_ON(!page); - WARN_ON(!PageUptodate(page)); + WARN_ON(!folio_test_uptodate(folio)); =20 if (atomic_long_dec_return(&fsc->writeback_count) < CONGESTION_OFF_THRESH( fsc->mount_options->congestion_kb)) fsc->write_congested =3D false; =20 - ceph_put_snap_context(detach_page_private(page)); - end_page_writeback(page); + ceph_put_snap_context(folio_detach_private(folio)); + folio_end_writeback(folio); =20 if (atomic64_dec_return(&mdsc->dirty_folios) <=3D 0) { wake_up_all(&mdsc->flush_end_wq); WARN_ON(atomic64_read(&mdsc->dirty_folios) < 0); } =20 - doutc(cl, "unlocking %p\n", page); + doutc(cl, "unlocking %p\n", folio); =20 if (remove_page) generic_error_remove_folio(inode->i_mapping, - page_folio(page)); + folio); =20 - unlock_page(page); + folio_unlock(folio); } doutc(cl, "%llx.%llx wrote %llu bytes cleaned %d pages\n", ceph_vinop(inode), osd_data->length, --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 54DC3361954 for ; Wed, 2 Sep 2026 16:11:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365513; cv=none; b=foSy1U4K9YTYNPE8kVPnH7FwaBQa/e9Q/YrVQkXQFYyOmpRCTAdnR+2wEfd+CKXcQkwE3MbYnSUiLLRkgynkmNNxci/LGnPoCDjQ7Qq6thxnxF+ohuZLzh5GXyW6y9Dtu623HxZDwOTX69tS/bvyuJoDWxrDoxYlTh3eNoen+Fg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365513; c=relaxed/simple; bh=eEBEQRS44uRWq+68HnHuSJkJWcepL1mJ0SSpfrhNU80=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A34NQsDF+DDkSM6LW0CGoDl24VHNjjTs6OnyjNlJjkKPLan3+lawoXdCit/Be0UahvNQ4epj5GHeNSFGt+HIZvDzwl55Q08M1r2Rsm3UzVD70pLuxuG/QUK9PMlvRF3SvZZXNsEwP1xEbPl/UyhBDNR1SKNF6eDeTwld+o5Jtc8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=jLpjPwl9; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=nInfNnwD; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="jLpjPwl9"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="nInfNnwD" Received: from pps.filterd (m0499198.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPl1E901352 for ; Wed, 2 Sep 2026 12:11:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=aLyb lFTyCRkRNvHlbjBlieXQYnfG93Mvps8LThXIpPg=; b=jLpjPwl9inGsFVON+6si Rvlv6W+osuwovYo+i6o2//h/omnPHCpk/J9eE9/WhrJMApbtyoeghxdYBo6+nr4s FHPm6lNf2H5L8c39yR1bKkVFB3Fz1GXUUUfQ0oGq3O2FtvV/AqyTQXIOUqsmed1f D4mM9CQBIfAIEwDXppfGv/5JyFDnwL3G0erAopbRh6USzvIGYlQvf+wKzFKeogJa SO4AX2L8JWJUFb19o06OS6178SfVlv5/bcF7HKCpgVGKsszWOmPCbcnMWiZa6ULB +2UCtaSpPHnwXi2AtlxzOgnge7eU6MVT/9mpeS2FkDFItNXIgewgtvnyaxCTYjgq 8Q== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4gegv7tytp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:48 -0400 (EDT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-90e98e74535so24653566d6.1 for ; Wed, 02 Sep 2026 09:11:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365507; x=1788970307; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aLyblFTyCRkRNvHlbjBlieXQYnfG93Mvps8LThXIpPg=; b=nInfNnwDJ8t4WIbxkDROyZsLrGg6xN5PjhjnDmDwK2SqJE7VjsVOg/bk9Bs1qDd72e 9Q6M9ObrrkyabbnEgUm+6fuANHaL4YYqEvQ4VHlyzQyFS4rCNAiV4pBzr4ZNTg1ZkLQb iUI/E2tv1P5T3N3skG2WUzMGddQdRyVInrL0tyPg9UtYOmVF2UxY1zuv9xR5iSuSdYTY YW8mOvUlpRHUvgnJEpDkjoI/yB1S34gL4IMhRKdYYH5C+qVgtPCT6iZRedHGBEyyiEFu O9fmKZIDU2ikzksYWTtGpK9GC56CTcklprmw7x8yQLoAOA9bmnQv+zwalnEr0e1kbqlW OC3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365507; x=1788970307; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=aLyblFTyCRkRNvHlbjBlieXQYnfG93Mvps8LThXIpPg=; b=hvtMXIMCBJ/tiwDE80UPOdsnaNBzxWP2fxKv7GSQfYz5djJ10wkj46nJ94rDC6QdQX AnyFP71qqEzHAXa63h5PPKxwwFzQf+jS/L1/QZiYEsQ2WGhkLP4muGxNtv6kNNyyQjIr YUNx0OB6+aidlL910+cZdWOGE1hPV5FyMUH4Lw+tNmpaI0DxwfI4whcJthOw27MuEFtB tD9teFaIR+pAtNUti1qy5GP1aaBipubaTCZyHEN5URyyw6PEmOee3Dsi6QlyRx5zrjTi a2HKkUnSiLPa2VW9wL+npqFTck7wKt9KRS+cTKItDAsm4RTFp5D792MJ0CdlU6djyUic 927A== X-Forwarded-Encrypted: i=1; AHgh+Rrr70LHhtfDsVQilS2DmPPevTzI+/CfDxz5zmuf4/1Bzy7XbjJy0ZvuCZgdA3G0LnKRJGOqPlwdLsvqFHg=@vger.kernel.org X-Gm-Message-State: AFuF++kDPcm6EO2BJ6K7Y+muOFZ8XGIrfFGG4VMCm1n+x56VNuC73Pa9 Zd2iqdGZeZRv9nnczHuWV5MW6tHUNPTeMN1e4teoebBWCzoznnIHMUgswYZEVyIPcfdbHCVom+w eoGdhoFZKmvXGndAQ4MC7AWTrsRBgWUdm4lINgaOH4HMuToPNaFDNgZTRWzhRhg== X-Gm-Gg: AR+sD10eoLfaXqRCv1Jrll2ugf3972I3jK+HvlW/1g1Wk/pO9EupXqZ2byWElf0a3xP txFxKsEnNunO8d5M58RsnBZJ/bDnoExyfMbkaKaoY0G2voWowPIC/MBhL/Q1o1mloD12x5nUg3e w0nls/hMfcmBMET4rj9PDRySmjjklU2xvkBvrUuRuFLRpXFA/lUA3H26j/HK6PFvK7xqjDtPPKh qwpROO66On2zN/m7AODoIb2I5Au3Cm/OPrmOjuBUQsuqs3ts/6JlTQr7qiaphRbxP9BYxFeGuUn AV0SvQQDDaZwQIT2RCRse2aH9W4coVlC0HDTrMPFBrpgqqo2IJ1BuLhXwOcBhjHg4iC7jvxLQqo HSeOOO675fJiwmrHla75zx/bcCbOdeoZoPKY4INwtRr3uciMx3Ezkwg== X-Received: by 2002:ac8:5c93:0:b0:528:38b1:b547 with SMTP id d75a77b69052e-53036b4f832mr79145601cf.8.1788365507418; Wed, 02 Sep 2026 09:11:47 -0700 (PDT) X-Received: by 2002:ac8:5c93:0:b0:528:38b1:b547 with SMTP id d75a77b69052e-53036b4f832mr79144511cf.8.1788365506821; Wed, 02 Sep 2026 09:11:46 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:46 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:33 -0400 Subject: [PATCH v5 09/10] ceph: remove ceph_fscrypt_pagecache_page() and ceph_fscrypt_page_offset() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-9-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=1581; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=eEBEQRS44uRWq+68HnHuSJkJWcepL1mJ0SSpfrhNU80=; b=mhLl4P2uOVP0FkK73qk2YAGJAverCm+Y2gZfCWO42rTWySDxx3ye0TRAxoQYAV+wZ+pD3G6sH jnAzG298txyCAl7izlSoLKF6eTnU0e67S3qvIIIOKiWtLiMtrpJFa47 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-ORIG-GUID: Fiq9MR2uKzfnxCb6nl6Zvry-kODLXQLI X-Proofpoint-GUID: Fiq9MR2uKzfnxCb6nl6Zvry-kODLXQLI X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX/1G0QaPXEuDQ FYImPAbBkp4agMSwWs8j1FfKk4Pl353vhYbXXFPMsRX+4G+yn5kYe5g9Rqv9psjKKzCkerXwNLq sPjiNFAT9yx1R+791k6OAu/xhVGyfv8VBaJm4k9vSiPCuQ6kAAbV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX+tbSDjyBcS1Q rnmX53/TDdae/YjdEmU9CKbBPYkIyPhfHEpxks6kjXF3VU4aTa+AVklStf3aEmMddj8LPC33lrm n4uexyHOm6gGgZUKbRghXW0212jIOrYoVtGkjrBRn5ycbVwpzXSugVnjjhC1zLbZNBa7nU+WbAv /G1yT7HwHJu9MVLMbg6O4MoWkOkna4T27Si56d3QSW5yRFxLlrcOBKSo3hZd5HuLhbvCmhD/rjT 07I7QWb3nT/LeOpKygOyuis4ajafEDPzq+g6kAobNiHfYg9G5Jl/Oqeb6KUWuAh7k3r56v/meO2 yA69dTIwU+ZFV786nk4nIbtleQaH2ShooCRopBiu9thWDzskpiGDlmRzlVKrGQTHvVKvIqUiHr7 KdMJjO41PlK1GmDXndw0AP52f7Eo3yALCESf0ldzlVcUxx+33MigYFx3d5NoRjoSz1DXv+yQgM0 pfG9y9g2Kf9YTXx8yAw== X-Authority-Analysis: v=2.4 cv=JcCMa0KV c=1 sm=1 tr=0 ts=6a984ac4 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=jfg2DRd2ap2c96lsYj8A:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=10 spamscore=0 suspectscore=0 adultscore=0 bulkscore=10 malwarescore=0 clxscore=1015 phishscore=0 lowpriorityscore=10 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 All callers have been converted to the folio equivalents, so remove these unused helpers. This also removes a use of page_offset(). Signed-off-by: Tal Zussman --- fs/ceph/crypto.h | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/fs/ceph/crypto.h b/fs/ceph/crypto.h index 948c8b5dca06..d199dc8410fe 100644 --- a/fs/ceph/crypto.h +++ b/fs/ceph/crypto.h @@ -157,11 +157,6 @@ int ceph_fscrypt_decrypt_extents(struct inode *inode, = struct page **page, int ceph_fscrypt_encrypt_pages(struct inode *inode, struct page **page, u6= 4 off, int len); =20 -static inline struct page *ceph_fscrypt_pagecache_page(struct page *page) -{ - return fscrypt_is_bounce_page(page) ? fscrypt_pagecache_page(page) : page; -} - static inline struct folio *ceph_fscrypt_pagecache_folio(struct folio *fol= io) { return fscrypt_is_bounce_folio(folio) ? fscrypt_pagecache_folio(folio) : = folio; @@ -263,22 +258,12 @@ static inline int ceph_fscrypt_encrypt_pages(struct i= node *inode, return 0; } =20 -static inline struct page *ceph_fscrypt_pagecache_page(struct page *page) -{ - return page; -} - static inline struct folio *ceph_fscrypt_pagecache_folio(struct folio *fol= io) { return folio; } #endif /* CONFIG_FS_ENCRYPTION */ =20 -static inline loff_t ceph_fscrypt_page_offset(struct page *page) -{ - return page_offset(ceph_fscrypt_pagecache_page(page)); -} - static inline loff_t ceph_fscrypt_folio_offset(struct folio *folio) { return folio_pos(ceph_fscrypt_pagecache_folio(folio)); --=20 2.39.5 From nobody Sat Sep 26 09:23:33 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 1F3EB4AA405 for ; Wed, 2 Sep 2026 16:11:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365514; cv=none; b=H19yuXIw8QJzWHR2UIWAd2duTaYO/Z8FYGbs3NiZoSWDRQ6W+5r+pqQWTP7Bk5awubJWuXrkYrgbILcbfx7fYZiDC7ezuVgbo3RoHR1m/I4OJBF7I3Ue0b2zj1jGeV83DzwpaPGIJk9VbSR362Yjczv6pS8mkf80lX7AhU8xDOc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788365514; c=relaxed/simple; bh=2lPL6DBiy5ViqQHXL9KoCWheVc7nxPoqgGpcIqZXOSg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hJgrO1AXy+0FIMbNT46RHGDwCHgb6pQgcUsdCypekp6DLgQttJVbg4AEXlsK3daakwFBH09zZFMd/Uboyzgy27vFGQbTPpWSaWitiZI8RKnt8MVcE87EaqTWITsH9JzdqWfx6Zffm5RXHk+B9W2yiw2sXjEjjM6KdCCnApOQ3xI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=CBNDpnr5; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=KZMhDHum; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="CBNDpnr5"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="KZMhDHum" Received: from pps.filterd (m0167073.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 682FPYkI463002 for ; Wed, 2 Sep 2026 12:11:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=dgad /qXN3FU0bHbIChJxYYiagsTq0TACskwb2AqYmrk=; b=CBNDpnr54Nhiyh8dLCHN SulsREzvUF3nsMRRsQPObJYAZR1g2bc/OzacPuTev/uh2tTyCrpCLGvNwP140url AWII7RhOezzPXAW28NEVI8jdRS4rlqd1S/W1eV2EwDTWOLp0C66WNMvM1mFzgICX ioee1yGa6KGbS8MNCS8W7w0u3o/P/3VIxUmEjY/16GjM5M97xpovXwLV89vruu8x 7HNTyleU0TqolMeiAH+gMemXy/0Z5fYpLudgWKdcYr05UMgMwixvxE/aAiJUseDv dCU5oVP6YrTGC+TpK2EHHnrg0RUaJn7ZATag8Xadu5gUyxJ1Bi2L5oZ7XET4rIj6 7g== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4ge833vy93-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 02 Sep 2026 12:11:49 -0400 (EDT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-90e7db8d191so23020786d6.1 for ; Wed, 02 Sep 2026 09:11:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1788365508; x=1788970308; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=dgad/qXN3FU0bHbIChJxYYiagsTq0TACskwb2AqYmrk=; b=KZMhDHumrfestCzDf8K3kIHR0Nq9n+SI8FZqA7LL2T3Bj2hRuv6P2WSg3d4XbAHZ3y Z0bIM6gQJduAy9wp5CJED03ed7l1R44395HQ/OOqNCKNeuOVa0rDNig6IULuUBNPGBsh tHRCi+l33XP2vCTP6ZBkZAvLR2tbafCQg0xMQv6lk5KKgs+oJBF58F80NKOYuiZHgGcy QibvFsdIOKEvARVnBlltDKOVVQqXJqQz0Oc0uFOZ7yTSdD0/ITNNU3MHk1u91N7YOLCB HTtdAGdpsTK/2rFJWU7rQI/uttTrFL1bRW8YIN/mVP1IveQRZd4i8LwnKZwj39mJste0 vOfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788365508; x=1788970308; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=dgad/qXN3FU0bHbIChJxYYiagsTq0TACskwb2AqYmrk=; b=ocShQpJCpT/tk+pPIn2/V+UBEQ8XtbsZQPUskc9Yi3bQYIHvB9MHtQTj2GPOFlCEes QaBdPJfgKtdTuWX4KUdYmxEaKiNiCqLP7VTgDT+tllYoqjxAX1uOi9ExgRux+8telR0W t4OL7RVX2/RRqqA/EuMgCEpHaG8YnCB7lhUITlZOgfcED8GYNr2BIqxaKVYFwhta/Wrc zWzi5UH0e1B7Z5dBe5IRhfXmCdQ6DeSRCNhDn8F81PudDeMaDWh4A6qkiDyn+Ul4JGqS KIcYhth+clPieNGDSzoVv7+UG1Oa9Zl5Uo8mYuR/xAMoBkyfZstyfs+cChLdrZaIFQAZ ERdA== X-Forwarded-Encrypted: i=1; AKwUvBzgN0Pj9+ad4dP+4m1g93rlOEJopP2fEzw6B/2K3PXUvpstLcN40KFOIukyaMAmvyLiYLKUh/xDcfdpDWs=@vger.kernel.org X-Gm-Message-State: AFuF++kv7B/LsKen6YwPw81nXLAE526QqPBkQuUCUSP7jnS/EX6KvHF2 /JdmvX39hMJMbQTWmeUX0xlO+DvmKC44UM7fXp1v7Uh5M1S7kye/ATLQio21VnJ5Rf5PftswkAy FDIW6x/plmwk7MuhIBtbZlyfj0X5DKjQffmpHdnFuuC3m8uOcWX2C9q5Ql3xvgA== X-Gm-Gg: AYBFou10mkYNeDC+lEuz/59R9DK1TmrJud0K/ubIUgmLUYljxQItgczCVv0tpzYYRHF xjgJHAFBjLYui9OkWn1wtB1/6brUBoLkUgyaqo6U+UOpDx56fnY4hbczJ/gV786qvuJrB6XiMl5 uaJaZTI8D14iDnoWapvW4QnjXHjiCnfc8RHkNmHZbeXwoRBkuD5L30HTJxL7w7Rqr6CqBF1pdb5 NZmIbJtTIAxZ38ND3dtQGFWgaYIBaKHGbJ1ZNDQDBdWDl9PleUexvF1qUwUvYzTaKkfgS8Rf37o 3FEMeaMatjOe4KJSrTOemDfC1DxQn4vP5K0sLYUN9dAZfGRgj1zrjzubhsHgZtcWZu6TclmHH76 oWR/bIRtCcaqZNmYNbYLoRVsHOs2gFLoyI9uMtHKYhMgmN+xpMPZrqA== X-Received: by 2002:a05:6214:23c6:b0:90a:9683:841c with SMTP id 6a1803df08f44-90ebb005291mr73869726d6.6.1788365508096; Wed, 02 Sep 2026 09:11:48 -0700 (PDT) X-Received: by 2002:a05:6214:23c6:b0:90a:9683:841c with SMTP id 6a1803df08f44-90ebb005291mr73869126d6.6.1788365507580; Wed, 02 Sep 2026 09:11:47 -0700 (PDT) Received: from [127.0.1.1] (nat-128-59-178-193.net.columbia.edu. [128.59.178.193]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90e9eec7608sm21172636d6.26.2026.09.02.09.11.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Sep 2026 09:11:47 -0700 (PDT) From: Tal Zussman Date: Wed, 02 Sep 2026 12:11:34 -0400 Subject: [PATCH v5 10/10] ceph: rename ceph_check_page_before_write() to ceph_check_folio_before_write() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260902-remove-wait-on-page-writeback-v5-10-0b512e77e75b@columbia.edu> References: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> In-Reply-To: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Christian Brauner , Jeff Layton , David Howells , "Matthew Wilcox (Oracle)" , Zi Yan Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.17-dev-db0b7 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788365497; l=1302; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=2lPL6DBiy5ViqQHXL9KoCWheVc7nxPoqgGpcIqZXOSg=; b=5Svcd+z4vOklbudyaTG/eXrDhMVN4LO/KLWZmClx4iVjTaX3O3tCR042tmdxd2wEURDy8Rw7o 3JNnTPOPLTkDbFe2B/EDgcj71/6DPCQ8rXaTsb0xoKu9lYk8ZWgl36t X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: CRnlsxa6jLQ8jsNDHafT6U51lGIX1sED X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfXwgKrEmNYmoK0 ekqoqG08X+ZxEqvrIJ4pt7rME1mPSiYv2+4b1RZTa4h4ke5z3LZqpkf3+VuvKNc72ZZrBr5m1hT M2V09XCogQcmUa4YuEAn5ZLcxSA9rbdK8dgnkpsMxLPAmrGy0TTu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAyMDE0MyBTYWx0ZWRfX7ouF37ZFIHb+ nJz/mbPIhCs3rkYwGKAzBqPu5Cnor61yUmZy3YvGdMMaNp9TQEi9Z8oFuLWVVoG/YQYWU6jjC73 U93U8w4C9KQMKcZdPjjO9eLZLuVKW7SM6NVwHgRzJzy9UBZsxtXSscg68Cip+6GMxuL89Q+/WMa hhBJjjuBnjNfuzdFd1gAbd2iK81mWIhw5QLiQN9GQo0pb4AqRye51kFkXSVNN0njiXNAhUiVwYv 97VZL0gG3gXLjn6Uejo26HElvPIgtkGIdHwBBntTmqPS32fMeNS6uCM+rvQrsx6KBQ2sU0JKxoB KMmNlPTwBycZR0jRkX7Iu/qpaQfUBVaiDx8RHtvAc8mBn5fEYeUjHRhlNPmS64LXR1v8tY0ljyg iIDE/a3+g0J1gx/4sbgc0YhIasueioGupaPUbl2McKdXL7h2oJuDae/nXWv5b5JUn0BF25BmG34 JTSBLPDfdSSycLINvsg== X-Authority-Analysis: v=2.4 cv=ZpPd7d7G c=1 sm=1 tr=0 ts=6a984ac5 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=XwBYxoxBwSosfWEfMcqm5A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=jHxIr1HyPKZ_Q5_91PL3:22 a=j2JPeL-98-LFiXJzl4QA:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-ORIG-GUID: CRnlsxa6jLQ8jsNDHafT6U51lGIX1sED X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11894 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=10 suspectscore=0 adultscore=0 clxscore=1015 spamscore=0 phishscore=0 impostorscore=10 priorityscore=1501 bulkscore=10 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609020143 This function only operates on folios, so rename it accordingly. Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index f9741812e8a9..8aa60e79a669 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1172,10 +1172,10 @@ bool can_next_page_be_processed(struct ceph_writeba= ck_ctl *ceph_wbc, } =20 static -int ceph_check_page_before_write(struct address_space *mapping, - struct writeback_control *wbc, - struct ceph_writeback_ctl *ceph_wbc, - struct folio *folio) +int ceph_check_folio_before_write(struct address_space *mapping, + struct writeback_control *wbc, + struct ceph_writeback_ctl *ceph_wbc, + struct folio *folio) { struct inode *inode =3D mapping->host; struct ceph_fs_client *fsc =3D ceph_inode_to_fs_client(inode); @@ -1359,8 +1359,8 @@ void ceph_process_folio_batch(struct address_space *m= apping, else if (!folio_trylock(folio)) break; =20 - rc =3D ceph_check_page_before_write(mapping, wbc, - ceph_wbc, folio); + rc =3D ceph_check_folio_before_write(mapping, wbc, + ceph_wbc, folio); if (rc =3D=3D -ENODATA) { folio_unlock(folio); folio_put(folio); --=20 2.39.5