From nobody Tue Sep 29 08:26:17 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 6CA723F9F50 for ; Mon, 10 Aug 2026 14:21:08 +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=1786371675; cv=none; b=UDKWWs8Snc5RAgSQHrt32MbvDptzXkD9Z/e9JZ3Q0/c4uUzvGnHMmMj3WjYaBy59Cw3/bVnLhQ/YIoIOZILSJz4j5ECP0tTGnqhVdOPE/prfLVwZpbHHCUpuD4uKGrCBKYWUDID19QQqcIC6IrJrR5yqr/npQaVAAxzJ/xxyJRk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371675; c=relaxed/simple; bh=T3CGmDuDwGWM9IS8v9V4tooVVC5cHChgIoIPoiiGhmg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HghN7yd1GzYL35WWXfWIidFHpthtYar6xGWYbQA+OofRN8wk1z5dpLQ9acuC7S7nYlTYhSncGLYwUVpeAbWOgpVOwvRpiCsm4dcScoXWABRQeuUnDOPkokulOyZJ0OEqKuknYUHyRPTDiUiIfqPHKC6TAMqQOsE5qlkSBtR4Df8= 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=Kgm6IU07; 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="Kgm6IU07" 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 67ACaM2H2899361 for ; Mon, 10 Aug 2026 10:21:04 -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=jKaq F4zxypYK+u31Iqe1KTFnP3GkPLOPF1h4Nf9JG/o=; b=Kgm6IU07c9cwPQpIn9YU Wqd+HpT0HKSjRsewAjcWShVXlp+t35l+DMKQJxI00adjnj3L/ctmd2sKoeHyzAT/ ocGG07cRJ1hxBCGQbg+bMSN/ARy6SsW2Py2u0YOFU65dziZP40D9ZrYwxXZ5+QXR DwM5c/v6xaPVsouqGr8j5VgFgaY74zUCXRzGVZwjicIk6i/FtNHM4fGDUz+W2YyL 9dS7+2IcDqzBfT9wh3m65P3Z6hyXK8dBiay05mOHAE3dsRbxlRXsCcQfngduatJh N681bo6ikKOC7VVOJsVqA5B0ytkZd0snkxrYATBCyv/410LsDne1mu8aaVH3Y5X8 5g== 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 4fy2a4b2wf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:03 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51c01ff996dso26631801cf.2 for ; Mon, 10 Aug 2026 07:21:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371663; x=1786976463; 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=jKaqF4zxypYK+u31Iqe1KTFnP3GkPLOPF1h4Nf9JG/o=; b=KaILmAI68JQU0vz/AIh7TrwMFS5jgjMAXjhMghAkguTNtsJdSxQKCTv0GuGsa2feEv f0iJV1Kw/nwVELOmhr9XtIwYwTZ72rJPADY2xT29xuwDx+3Hl1s8TfYklrCaZHlKGZzA cn6o5uK8flGP5iS9TN+mGcymUfJcaR0JnIXOU6GFWGu6eay3W5n34w2Qk1E/csX7HDyC pcNQHuO6h9ktuzwlfmxj43Mf2ITKhQwd1temPV/TGmSS3aDcU7Q0uSCzfV5diFDsLabT zjsZisf/a5qb4VKAlz8wP3aLf8HBj6vg9UnkdXH8s9GhxG5KNnwtaLQBrAO2y3YHiGud OH+Q== X-Forwarded-Encrypted: i=1; AHgh+Rq2kcf5CdNnwYIRB3Joxp+XwCYCZRKulHQ6VAL3/PA25g4FpZNYAB8jlJiwyMeIV+C7Kn/k706+CkaLkbc=@vger.kernel.org X-Gm-Message-State: AOJu0YyTlTOhXnj4kQUkL10JNvPcVn1MwEBLPJRGrGXd9e32ieyVzctU p5JwqDp7VBN0VFRypcypZZIAZJOGm8bO/YtPh90aksUNV3AjxjJWMTyBS6kQb7PGAWHPVZmdeBG 5z1hZuDXnfJaqHBOvdVp8DkXmxd3Ekhryq44alV8xDDlom1ZlPmPgdfFBWkSLMw== X-Gm-Gg: AR+sD12M2/3hJs2ji0BMbRVIOzdNaQVFBSgR7iMCWN041FvojJ2mc00g2QeyhrD3WrC G3TFyG0FxDzvLyRXNKJ6iHobwlTVa1RznQ0SAIqFL4wV33MneibuBm7/wX9PhnIGYkydWJGG7pt ZWxAEMws8qbVfE8M/sdnS2lP5gDPEbqzq1lvVisF8ZaHNqTGHL0HxNjXr7hnHK2RMGNiQpP/j1g m7FYsyWF4PJh+U7Otl2vHhQ7Y8lZpE0AGpmIzkE5tlVtFLwD2T9sndrAJEFuNpBbj6f8eRQpWZk rsdIBuM0xWQdcrMDdxzY3//PLLRBvS7mzfqB8qSEiT6ohwMIKX2vq9ii2Gkq+j8Jx9XCcCkK9eE ly9JwTtxM X-Received: by 2002:a05:622a:5cc:b0:51c:164b:b241 with SMTP id d75a77b69052e-52d18e6b4ecmr208099841cf.13.1786371662655; Mon, 10 Aug 2026 07:21:02 -0700 (PDT) X-Received: by 2002:a05:622a:5cc:b0:51c:164b:b241 with SMTP id d75a77b69052e-52d18e6b4ecmr208098821cf.13.1786371662008; Mon, 10 Aug 2026 07:21:02 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:01 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:12 -0400 Subject: [PATCH v3 01/12] 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: <20260810-remove-wait-on-page-writeback-v3-1-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman , Sashiko X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=3631; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=T3CGmDuDwGWM9IS8v9V4tooVVC5cHChgIoIPoiiGhmg=; b=2PzsUvUOzvsyYXoDMifxX2JH5H5L5d7NJVCvp7biws0VILAxDeFCGwwEFrhhXRkyaNnZtYJp0 MFluyWaO9YKC2mGH1bvKySBgaNIQC+AfRq3SqMwAqiOSUPfv9i7rufO X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: 5EI6P5CMopOWtmPJVPuB8NnHziYKG88n X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX2YWSAefyNa3g H15FAjxhwPgrrPCv4rhB0oWYzPWRkqiEpWNUHNC0NDrqwAL9PUIZ3Zvwc+C3j06RHNdTLcS3zsw crUzv1vHRrOJUTC++9xQBiGmAUfdX02yZb4IpedyqoYO0NaIQYx3 X-Proofpoint-ORIG-GUID: 5EI6P5CMopOWtmPJVPuB8NnHziYKG88n X-Authority-Analysis: v=2.4 cv=FfkHAp+6 c=1 sm=1 tr=0 ts=6a79de4f cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=c92rfblmAAAA:8 a=VwQbUJbxAAAA:8 a=W980AcPXFMIW1GselFUA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX9AJGp/GGd+ZU sbe9ygoDpBCHPuzIjEH3jTcWrKfKE+DVs9jjR0ft0Oqw/8eTdlvUh5dTGhVMh1c6kIsAT4Cg6BN 8TkZEPIcRMQXUiPA0BpkYklRLI3Ei+0Nw32ysQcn7HjsqN4OGxo61gcYZnsnmKDm6RHlZr/lfaF scLTR4PPW8DpjZcydj2hHwWftIcub0ZZ/K8HzpuEnWt9ZUaWMautuW7x497mT0CScmq34x7fsLx XcICxp23vba5GAaH6ryb3J1C+n0rmw5aTq91h8GtiYX4O1n3IFYxLCtNQ/svJP3CWw7zMyLwVXQ dkZaz3lPKiUnGmkWbZrCjjucyNiIYFzrfIKVw3WTtWxoQPOBzIkPbHoSGIEjrFFlqBYGTTlc+ML hOT7k22zGBHPzC3iRVlGDqXfxfr833M0Gzd3U4aC2WVBNgNOA1mDDRwOE/Oj0n2bsyv9+5aFf5r 36rACOvDoumftDH5SQQ== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=10 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 bulkscore=10 impostorscore=10 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index e2da3ab9f808..8cd24f66c981 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1472,26 +1472,27 @@ 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]; + for (i =3D 0; i < ceph_wbc->locked_pages; i++) { + fscrypt_finalize_bounce_page(&ceph_wbc->pages[i]); + page =3D ceph_wbc->pages[i]; =20 - if (!folio) - continue; + if (atomic_long_dec_return(&fsc->writeback_count) < + CONGESTION_OFF_THRESH(fsc->mount_options->congestion_kb)) + fsc->write_congested =3D false; =20 - page =3D &folio->page; redirty_page_for_writepage(wbc, page); unlock_page(page); + put_page(page); } =20 - for (i =3D 0; i < ceph_wbc->locked_pages; i++) { - page =3D ceph_fscrypt_pagecache_page(ceph_wbc->pages[i]); - - if (!page) - continue; - - redirty_page_for_writepage(wbc, page); - unlock_page(page); + 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; =20 ceph_osdc_put_request(req); return -EIO; @@ -1725,8 +1726,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 Tue Sep 29 08:26:17 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 5DDAD3FB7E1 for ; Mon, 10 Aug 2026 14:21:09 +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=1786371675; cv=none; b=RmFw1SOnuEdp90SYZ/e4tj9eM9Ty1nYZt5QVNKti80rxhtW08gX2YwezMfwAdZFpPZGgA9exmh9/XF6YTX7sjYVRzy7LxaxbbU16JBsXQsc0DI0MoXaZlHeMrFdoUYjvpr/03JJd4us10YIgLLOKvuor92BLxsH6nxI615UUgTg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371675; c=relaxed/simple; bh=bC/X5LUNCwcfzqxhGB05BNOZAidcTm2p6b14nFOUhtA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rqrWFx7jiU/nBQDjeyvk9XkbEzhvhmjVaSXnMLP0chDzaVx7dIC9qKlLrB1giVwO4IZa6Dl1fxSVJdGy7AeR8LztUUEChlc3x/10lEyo4xcoVC24RaBrPcjSkNmakVEUIZrEwR5Nl4FHfn57ghpEWEMwA5oEOMY90sTo/Cp2Cdo= 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=ccHuRGEe; 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="ccHuRGEe" 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 67ACaIBe2763021 for ; Mon, 10 Aug 2026 10:21:07 -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=lUdJ 8GftPVQWe/bytIhh9qzgnz0Y4e69yuiSB69qTBw=; b=ccHuRGEeALBOBGJMKv6L A5Til3j2/Eu/yO/cO8rSg5+O05x+lVf11ATFBAh+1d8SkfsYyLcuM0taPN8BRW7h Ihj3MmagLVOT/uSeoL8BH91px9Pzph+LZ2Hl+263w6kka3H9tK6BR1TLpJTNAazs x+pz84aOE4pSka49HRgte8Hp+KH3UiuinLP4FiVwIfxcrM/i7WwrFrR29/GjiiRE NRCtBDXC95QVSifxpU3sgrL7T0dK3HMcnFqlCYyyZZjDMvLrIRf4nhTpNNV2yRO8 ewO4Txvzcfu+W7mt9oUdEAXr+7vcv5qJNF9sAYMGhbVFDjv23ELqkbTM7K1INQcU Yg== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4fy3jdasxg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:07 -0400 (EDT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-8f0ed4fe79aso33938416d6.0 for ; Mon, 10 Aug 2026 07:21:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371666; x=1786976466; 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=lUdJ8GftPVQWe/bytIhh9qzgnz0Y4e69yuiSB69qTBw=; b=kqCRPU3R/QxbrfU3HlTfBlZspJtoyYAiQdg2i/0Eod1OH4IdGm9Abr16JbUs0HdHKk KhvebyDJrmQLthUE7vulcTkmwx+eEOSNUciQSNaA0Itf2sY7w80yKF7JISEPMdPM2z55 cM89nafXhV7kPuVSCQrMYh0l121iG/gmPtiXgC+qY7h3WVwCkEJCOaujBO0relIUF5Ho EjGguG2JXjO5szFtE5j8R7G53irYEpttWu/7wsd0tgN+VJO3oVJW30mdT9qqGXXI7BIV 69YL1lBPETY5NHf6LV2eiIezCfNpaDRIRK5TigfL3452e4tjMMI+yTOgfgdAKMxXVMTj Wtjw== X-Forwarded-Encrypted: i=1; AHgh+RpXCX8Pw+GAO/LN9jvxI4Le2iRNUFKkuIIX92EOjdvQeV93Ktq7fpAJs9Y7vPrso3up2CWB5UEDJAFIJXg=@vger.kernel.org X-Gm-Message-State: AOJu0YyRB/ISAj70wUNwXT7eGBK178nLd7h9PdW8p+MB5VK14OjxZg+/ HoPrWXL7+ev+Q8o4g8YyDio1IZ7hMIiRBP8M1dIUNIWklFhIleR2ecFom+Rz3ZpG52MXlPdJBnZ pLxsAyY9tQZrtiXIhRTwb6rBKeB7/s06X81BRlN0UHh8orDi7TNkcQiDPIpZv3g== X-Gm-Gg: AR+sD11mfdbP1UHZcUjD16+XTBqRiOMJDk0kXA9ZCqxf7QPllosXtTW1yf1Ww2w0u13 mmtj69BmqtDomrU2fmkj141RmwV0myjE029/nmJxQFbA/eP7JMpRUwG1pEYOsOzVG3h4wMCtfv1 tYvduk0+0C43i9Xd6C4PQ9URMtKwcAyeJJBxyxYwk1ryMwNnh8s6hSSvPfFMePeLhR8YHH7M7kz heKFOESK0noxMCyLhns7+XtuTu+llJS+8EThFdiDHUvlVqQoiwRX26qmuc5Ec5a5gcCklSiel67 ABXRzbiABWnvzvq5+uyKYO5sAxGj/1ltNFm5CwkCpVG2aY9Nj6lqH5IDYjLOFZihKIEW1lx1vbx 16KkM6eFT X-Received: by 2002:a05:622a:a0f:b0:50e:635b:5579 with SMTP id d75a77b69052e-52d20975cb7mr245780281cf.19.1786371666003; Mon, 10 Aug 2026 07:21:06 -0700 (PDT) X-Received: by 2002:a05:622a:a0f:b0:50e:635b:5579 with SMTP id d75a77b69052e-52d20975cb7mr245778981cf.19.1786371665399; Mon, 10 Aug 2026 07:21:05 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:04 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:13 -0400 Subject: [PATCH v3 02/12] 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: <20260810-remove-wait-on-page-writeback-v3-2-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman , Sashiko X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=2136; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=bC/X5LUNCwcfzqxhGB05BNOZAidcTm2p6b14nFOUhtA=; b=p/ml+Ve4lftJD+H+kNATKF2FjQfAQG2I6SrAiFbDZQLHfjVFfFFrODbMCdfNhfz5ZM35qVRfQ /xPdai/ySDxCiFP5iaL/zocXJ2PC6z8jt9HKL1MXrWU9AH1wPz/l1MU X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX2Sw/TuJwWeTW HbdGJNlXcmsL680XqNqHxfDX2DLpTXqL8drymnzlVHgfWPNSawJzjf9yKgnmtURiYvB1cYRgLWc qGMWZm+E7Tm0rh5ak7Be95xsW89jYvg5Tyec6sO8uHZsuiPfR68o X-Proofpoint-GUID: qAuf-ysZykfsKs8Nsr-MiT_EXZoQ5z2Q X-Proofpoint-ORIG-GUID: qAuf-ysZykfsKs8Nsr-MiT_EXZoQ5z2Q X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfXzGINf8cgRSM6 CiuKeuRmVpncGkYlCu39pZ5VhSxNdtiaQekemT8w3XD4nxh87hwpRy3V9kQDZ5/8+LIGxVrwfwU ctcn0glsfo3Qp9N751YBh0mxUa1nOB+vkmX9iEAFkU9k8nIUQcKjZl/E5P7rJWnMD3rLN8ROGtK DBgubenmj8PH7kAC6TLTX0GEeHcYuXs4QBz4zLanRJ2TshJIeyOxs1i9d4hgAm67OePwmUek6Sj C5X6nDyf0xO3obdY2wbavZaxaYpGA1SIgCEl38lINrzrB6S3UUoF+MdO2OyTWqMDIap6LD0L8xH qsi8XPKn7rDkucG9jxC2RINR4jQDT/RRF/6gnzOTa4UQCtVZK/ZKPp2gbPhI2dxYV6U6lBK/Cod WJTAvA26mqCQDs6C/WMrGU9bNNv9gz1YIVqAmQu1YMrPvWklFOF9ezkOEk+BzaRX207mb3UL/YZ UivtogMYkjo3xWpnN6w== X-Authority-Analysis: v=2.4 cv=JPQLdcKb c=1 sm=1 tr=0 ts=6a79de53 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=SsB-OO3BMngHh3ZO9fOt:22 a=c92rfblmAAAA:8 a=VwQbUJbxAAAA:8 a=zYp62tllrndxtlEyWVMA:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 lowpriorityscore=10 adultscore=0 phishscore=0 spamscore=0 suspectscore=0 bulkscore=10 clxscore=1015 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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. 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 8cd24f66c981..de0113b23940 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -559,6 +559,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; @@ -580,6 +585,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) { } @@ -803,6 +812,9 @@ static int write_folio_nounlock(struct folio *folio, if (wlen < len) len =3D wlen; =20 + /* wait for a cache write left pending by a previously failed attempt */ + ceph_folio_wait_fscache(folio); + folio_start_writeback(folio); if (caching) ceph_set_page_fscache(&folio->page); --=20 2.39.5 From nobody Tue Sep 29 08:26:17 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 C179F3F7A83 for ; Mon, 10 Aug 2026 14:21:12 +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=1786371687; cv=none; b=muby72NbHkf3T0IrOdCgM+X1c0fyV2+EEPICEreWSnO7uTdezWejhDW54oPQvtG50u+taP7n0g2MVMyklrmMNKCApAigEiQzt5YyM76EkvSJd39xj6CJXq7t+zVz2aYt+4ov5XHadxkRZdyqMunSdxj1v9mhYYhkZCkx1ajZRmc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371687; c=relaxed/simple; bh=7O7yrVN4O0oLp3x/dLZGdiLj0pIUK9KzDcYDRFGgB18=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E/fCUrxcrKbrHF/QOTWP4oSKiwQMAUM1lCBDuAuNK8DRy42qVCoQrxq7TftpR2G+b5wMSa2w8vucyZMbbKM6cFAYa7vTjOPoUiUQP9QqpoLohunw4bMedaZUbVuns0Vp31GPyd/eNTuIuz9utbCe299kC8wM7rX2yETjTU14fuE= 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=p7UYcBOs; 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="p7UYcBOs" Received: from pps.filterd (m0167070.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67ACaRx32722766 for ; Mon, 10 Aug 2026 10:21:10 -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=lZAV MDkDi9w8ZU6GK98RKcAV+HW3xUm2lluu/vojFZM=; b=p7UYcBOsaLr+pPgsuvLr R/MPvSANKRo7h+FTvLCjUg1W9gLw/P+sbm/usRn/2eddqqPspDB0T/nNH5kDnGWx WUhUaUmn2aQFPpG7arLYdteqS4NTxG8HBirKP976dPJY16902eRjwjbBIKybL1x4 oz19MiM7Eaa37ABKsOoxc6eKS50e1dzLtzq6Ik00JFAI8wyJh1IEj3Lmy8vSG5xu +yRZ+mykZkceaNeTd5w4Kn3cb4zVT5SMe0CDw5x56ZVuMZ6SytgY0rho0+ZaDkpB QzErQ54R0Ev1ZPJMs1/Qf4lm8vz4Zih5lVgjEQIpHA8IERJjMSuuLVB9bOSwkMO1 Vg== 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 4fxyvd3gv8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:10 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-51c1c7f135bso32502971cf.0 for ; Mon, 10 Aug 2026 07:21:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371669; x=1786976469; 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=lZAVMDkDi9w8ZU6GK98RKcAV+HW3xUm2lluu/vojFZM=; b=pPyw/KUXeKx4kAjTwtwumI0DEPOCQqhUDHiFJiBujMHJOG+uwUnpcC98/64uTM6FW+ QSUjUv/BkEHCl9rFlX4XjNf59XQHj31PyWADOnYpF4D12vgao3rFzCGwzqds6mHwbr3u uizIIlvP+lxhNvegQm4rc2T0Vdm6U/eXSBRP5sN0fQeiotDFZF9H4VNurUDH3SGLQpry /Z95rt0LhU/UA6+CLVzs8insyWjvppQos+DlIfBu+HloBqaTVmlRKy5tXBISbGOKL9Kl 4ngnxdR3egkgWCFuFJFHvBuitX9F5hXMrEC1/5m0ZRvQaUxvW42FgUZRDLTKeQPUY0Vk jq8A== X-Forwarded-Encrypted: i=1; AHgh+RppOzuucFGFpt3nn27dr7I4hjTbFVidc9BUjW3vlwAkIhWeUgL7yigzWxQEVJQ+lY6devzWlw4M9x+n+zU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywou33Gli0YwWKOBJKaz4o1vWUL/PGYg91Q2MeqZ7ZEeFU42wbq zzlsveKEaAHlcTzsjiAu36ruR4FbVMQmDNMVwuR/jA12seAnaF4QF0gv8ChfGgihQwXhwhz4sH1 5BcPzYgUivS7otNtDnWZl21/xjmiKaTGEVXU4fPcqn5Jd4rDuXc0bJcF9XPztAg== X-Gm-Gg: AR+sD10y9X3XuMQk+7CZxDxaK/1ucvbM4trvJU5RCPsrTsZ2OE8urhLgj1E3DhSVMKo J6v/qjPlA4BElEcZFLJcyhgkzm0bWlPkAe5Z+HsMoEAdCnj11VAkWV1GLP9VwWBhWytUFROIVw9 2py8KFYcDXzzd/ywMoyiGWckPchmVZMnVxvGjALNIRRIev1HZUAbwytLqu1WbaOSso0c0sUmnwy bs41aQor+g++fl2t7t4a82BsejzN4oiswUFLe20VK1E5FouhyZv9viekWHl4XSkh+PNNCP6fwXg lG2x7pHJdm3NqgeWSJ5Rw2/tUvoJ0fy7zDnHtU3CalmiISv3/+uKqqFn9kngqEqTRroe/D3ZbRy TjMhXs3ha X-Received: by 2002:ac8:7d0f:0:b0:51e:47a4:4851 with SMTP id d75a77b69052e-52d0b003eafmr297600191cf.8.1786371669544; Mon, 10 Aug 2026 07:21:09 -0700 (PDT) X-Received: by 2002:ac8:7d0f:0:b0:51e:47a4:4851 with SMTP id d75a77b69052e-52d0b003eafmr297598971cf.8.1786371668881; Mon, 10 Aug 2026 07:21:08 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:07 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:14 -0400 Subject: [PATCH v3 03/12] 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: <20260810-remove-wait-on-page-writeback-v3-3-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=2021; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=7O7yrVN4O0oLp3x/dLZGdiLj0pIUK9KzDcYDRFGgB18=; b=3gSQg6M47bO2pgURxJWAmFQ4PnvlGi8AWeaabt5bNBcjpfLt1y0znTJf5ZvHSRcsXLgqlAj71 VOCHDcekvzuBKKOjVXYC/adYE5gwRzuUdjjSiA2b/54HZ5bpM8mfi62 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX+bzLYFp7f5Fx aTyCiHFIqa1B4jZP9kLS5xPZRxFAIskbeaBW+DljqtgDdm8FVceWuBcKNydBW042QED932a6pf6 47PqbJBML8t7XVewftBPEIMRT8XXJXbzNTAHhBURMKL689Yq7L75 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX9T5DmETVKSHu d84xGkZeQRR45byYGywh7obpgJF0ZdaqdgdGgNGgvJwWCQDVp8hMdBC5JOlL3fv8vB+d/QMEzmq OxQwrmjAC49lULxG/g1ZS/kDr7RZTsnp3/lv00Z03ha/OrhYkG4L7G8BZRUuCTpP9ZnuFYT9bA/ Ka/v6hlLoQa68jWX10tzf+sGEsoOWm4xh16hvHNTgcrAgrsPsw3DJUFHBbvjA41G9UJT/bqfhpP 2lsfkNnOr26qirD3EXFHu1mO0uNvG5cZ8SOzvNCwSz/tStC7scDK9CqyGGu0zwA2GZLAx94sDn7 u6FOcltvCGPnGH3gpDW2yO304kVR1dTHB2x8RKyIVyOmFcMpOkXUh0baMmdEuvSXmrX8pCtpZMc AwoNjfvJzvIibyb18GXJP+Nw4ND1HsegV4RKuRrP12+XCMSgPixAZE93xpl8tJ57xBg8vSqI27C zOi1ReAd83D3LStIpFA== X-Proofpoint-ORIG-GUID: FFw8_01wZFZEvDAhqUpuPjj2jU2OfhN_ X-Authority-Analysis: v=2.4 cv=Gb0nWwXL c=1 sm=1 tr=0 ts=6a79de56 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=svvvyxlR1OQQkelhaPoB:22 a=JfrnYn6hAAAA:8 a=Ikd4Dj_1AAAA:8 a=bg0B0yAPDd754FioS-UA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-GUID: FFw8_01wZFZEvDAhqUpuPjj2jU2OfhN_ X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=10 impostorscore=10 suspectscore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=10 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 de0113b23940..3d86e4c85b06 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. @@ -758,7 +764,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); @@ -1183,7 +1189,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, @@ -1840,7 +1846,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 Tue Sep 29 08:26:17 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 C06C73F4DE0 for ; Mon, 10 Aug 2026 14:21:17 +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=1786371682; cv=none; b=LeHDJBFNUUntZHzjJvBXaNBt+aQ53OEZGSqRDSop3jtC/LUn9vsqysNnsH3h1aeCos4yaK+L3VZD/PxmtDT6p/C9k7647LfGPRm8qOfKQNYz3oJzYZz7eEcQY683e2A2hpHS00Jk/E10SwRuPSHRAUoSlltifmxx8l0QDsnJ8RM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371682; c=relaxed/simple; bh=l3uEHuwNVk6EU1qiSYF/Q0V/FDAY448POx4+1dXVCT4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WCY6H2HXHJAEze/7XA1LJRus3ySbCzEnpHEaNRqwT0RNC17NNRcE7c6P48gHr7+ggwZLN2lSt3xCiXpgp7Jws9v/cxJb9Snt4PCTx3BKzdXGcCuJWI5fEu3g9MiEsuEGik+M1xSZXB99+laV+Uj430+mQjYCycp2gyBoddpG15E= 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=seVJQEGw; 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="seVJQEGw" Received: from pps.filterd (m0167070.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67ACaErw2721515 for ; Mon, 10 Aug 2026 10:21:14 -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=jW8u Io9mq1l2z2LJqV2kSeHNoorVMZ6STN4QBox7XYc=; b=seVJQEGw48BgY3Nu9Psy tQQuCjl+9yc5O8F27BW5VVwDRtmwyNqign08Gujtt587mOgRMxa+TxRCOuvFzAnX fACFqvlqUg77CEbTfrcUVjEnc8Y6hvJN7VIXP8gLteGpb9S/s/KI6CFbScKO5rjC G/x5IJZj9UQ5RaWoqT5+Lj4qgWKKgWh7//KaugA9v8ccpAW0gYdtFe43jwh35TJE jALRLyOj+M3yxht9j6PmS2DQzBA+7MAFLMhpgJ3ygC+kWWkUbT1UQsbLUfrnXY41 7rvVKVvDB2euC0f1HgOUVS4OClT7f7vdAbYXTfWHd2TpVuOZokMPmw9pNqHblRnh 1g== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4fxyvd3gw3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:13 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c20762d21so25721441cf.0 for ; Mon, 10 Aug 2026 07:21:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371673; x=1786976473; 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=jW8uIo9mq1l2z2LJqV2kSeHNoorVMZ6STN4QBox7XYc=; b=kOd+sjZXOOu5J0xdPnqsj9HXyCUQBb443dlpd2d4s5dbuTCalvaptRb5a1eoSMd3JE t3bprwFTN/GVRgrkVYlABfEuVwjH5LowpwGLoOkIGoytVk+l7FxfVRyG9vv8BBBfmzTd Uc+EJLh4VSic29saHQMfaMsFp7Xwfx/GedoZXVWzqMJ9CI5MSo6dtZxAswmJSoAYJBz6 XoKyWsCSnKA4HqHaP4Jmq4qW9rB117MvLakcb849QTkzWHBm1IXPoLLR1TYKbviP59UB AipsQRbS3VOAo1XJZ7HCtFqs0ItIJ28mIQ0J4WN83xaWC9ialT5oiNs2s54bc3VQ/Cx3 M5JA== X-Forwarded-Encrypted: i=1; AHgh+RqhEAygArNLgywSwxILtWd2pxzmpaUT96xv5Q9QW6Q9mUblJU25E2hxHPmN1WWnLgKrJbJLsyDmIvh3A1Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5tw6PWzbZ3B3rdlqr8u4pr6C3sfpkpKIW9vNbPfiRqNVfwaLh n86Y2PeEAVRAk6vh0vyyqdVOt6jxc/hm2fbhye0L8prawMNqJPveHP5sIjixhxzYk2J2377xiGU O6G9WA+VnCven49f88IO40vI+NcF2xnIFfYFQXfbmPzUFxdAA1dxee9fRUvvXXQ== X-Gm-Gg: AR+sD13XyEWO7c2y3CKcb+iXb3scpV1yqcNeE7soeWC2kEMMGqGt9KpK2RPBD6Z+JRB lcfHBte1/VRxQwlG9US+ZBScYkgS305R7XW47mWZt/L00FJTeCWrQTox1baTMQ6t60+JU/GU3ZE ahoHCpXfONRVwHgMWBYmlE7nffTMiMwmG73nyJ1VlbegBHKDSxG6yAUVG3zVHFHequhBgBHgkIj u0A0MBcvdOHo+OCg/RcCAlWrxJ3LjmLAf5ChYU2zTbjssD+qMibx9Og1z3klvHA4BAuZQk3RjkB rRJVLhIJiwoJhE+moQr0RQBDX1g7Q6MvFvqaZbUf+82UZAA1yYAyI9Ft3wMRji0nfFTX+JdRZMY kiINTxjJk X-Received: by 2002:a05:622a:581a:b0:51b:fe7a:4eb8 with SMTP id d75a77b69052e-52d1918e143mr244245151cf.35.1786371672751; Mon, 10 Aug 2026 07:21:12 -0700 (PDT) X-Received: by 2002:a05:622a:581a:b0:51b:fe7a:4eb8 with SMTP id d75a77b69052e-52d1918e143mr244243051cf.35.1786371672052; Mon, 10 Aug 2026 07:21:12 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:11 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:15 -0400 Subject: [PATCH v3 04/12] 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: <20260810-remove-wait-on-page-writeback-v3-4-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=1518; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=l3uEHuwNVk6EU1qiSYF/Q0V/FDAY448POx4+1dXVCT4=; b=MN0UzA0s4wH6d3PLNpiFNlpzeBQU1Ayj1yl+dxXmrHHGmwf6FOlt2/PLR9CC+k7hpkkVwBz/A zWPq6NK5C5PDacjs4Oon93gHT3vjCh1ok9uHfjQLVsS+prVu7VChuak X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfXxNFeVuzwms/M WIa9C1AzAm4PM+kdKLdOaE6jf2cNuoUESIPi7zyYvK2hUTvFy1A1GNMTLKa4i2UKZnAkCOfcYPD 0cGmf8s4Z08c/2FJpYXNoJJIaMQjzagjrPD4ZPWxKN4R1XUL2al4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX+0Tr0Hy0zCmK /aFENZve/TgLfEs5IaaS8hcwccETZkzTvjGSN4IU/wGJUUYoQSsPVC0/C0NAHhOpPbiwGj1lEg/ MBQnImxBwHYpuDkBd6nrJc1UpfBavAddTlyPJVWFK6zleCuB8T5dWECC5EQDxQke7nUTau86dGA lcrrfww3lWjaJSQKGZ0D40okgS2YaNIG2JSeSWBERiXvwqhNZn+aBRRvq2TpXmJ/9R/cPJIVk4C JYVZ+wbsPZJ8o7QtBEy0w8nSFuZsbAcJElCRW1P6BMmMGIy4P1sfHRQ5uTX5D8UsEg780M407O8 sAeOKFG3qLKpqePXhm+ZdEbZ/UaI4mlOFthGJxhWyGO8JxhOcik6zwfb6VIoW6SNXQUvVQv1e9X OeaP0JY7R07rzB1x6AxD0HE0UkO5lZVkYHYXJ56u3tc/x0oCQvDjjJQIKpZl+2/Pff2UCbXnCRW Y65Po1KEOCJRF+jv8jA== X-Proofpoint-ORIG-GUID: NQ64ZqL6aVYMWRIP4vKUv7dvMxzc6rQe X-Authority-Analysis: v=2.4 cv=Gb0nWwXL c=1 sm=1 tr=0 ts=6a79de59 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=svvvyxlR1OQQkelhaPoB:22 a=JfrnYn6hAAAA:8 a=oBeIbaJldBQvbLH65vwA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-GUID: NQ64ZqL6aVYMWRIP4vKUv7dvMxzc6rQe X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=10 impostorscore=10 suspectscore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=10 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 3d86e4c85b06..c08fc70321e6 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1637,7 +1637,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 && @@ -1652,10 +1652,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 Tue Sep 29 08:26:17 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 3F4B53FD121 for ; Mon, 10 Aug 2026 14:21:20 +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=1786371693; cv=none; b=oQqL/ZZj5UqGqQOnG/PtFp8sIGlzIpodZRvvLDCeBMCQCQOqd4I66Y5A5N90kf8BOJEe9/FeHDh8tCQ6Izi7RAG7H6Ds2GRRAKgy+9Tvi0JW+5tgosuocDZyMu41CZc6o/fUPE0ysvm7EbIFIU8AC9ssaKarF6DgHwyaSq6BfHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371693; c=relaxed/simple; bh=6dxbAtDCmrnDYkfOuWrS6UKuWVd+lmgUjReNrbBmSH4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oEFfYhqb6ixkCI4BDNg1qS0z4vHI2/F6hPeZEnirHzHhChNvM9u7AWZwu1Y43Z/aqhIz+XPtUg6wE03FcX8OA6gUSeh71pvcqMkhkP1LlDRsWhlTQ4jiGLOZKPgBNi64H1+X4l5/z1/ZWZdI2UJ48a/WdWGhaKPcDwBpun7kJrA= 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=a4TWNTA0; 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="a4TWNTA0" 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 67AELHbU3538907 for ; Mon, 10 Aug 2026 10:21:17 -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=0np+ Mh4g6FbtGTotF1tdHYY92zqeAhsY3aQwW/2FAQ4=; b=a4TWNTA0jldsAoQxZpdx gKVTI89o/WtLiku4lqWkbaqHIimCfvpBOsgmQ3NajBr6av3Jpzs89t9CNmBh7f2o pzbEZyuRQSQbgKiVFtnMjWs+j5H3OnPItob8B9Dd1sZxJxtbG+RFPFg7vhx7GrgW ImrBI4iVxj2sJDW/QYuOBwgzVJyurI/l5jpngzk/or2XmHNedXJ906ILCXFqu0+T uNXrQpW6xeFnMltsG4qhCFkSiXXTntJoht255EHo1peTIMWpX7fTQJFYpl8LPYgk h5uu9ArmsWvSbwlSIS4z4J0dnYIpex7PF+bzADVBDv2Pb2rhVsBL38kgUv1Dz+zD +A== 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 4fygb6g00h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:16 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52ce64c41efso36528591cf.3 for ; Mon, 10 Aug 2026 07:21:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371676; x=1786976476; 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=0np+Mh4g6FbtGTotF1tdHYY92zqeAhsY3aQwW/2FAQ4=; b=kvNS1wevpPCJx8glJVqq6uoVz35u2jkv/gTUbpXC8Xz4VdF+mPIVUxSnVDX7RFRWFy FH+xG5GF5b+/BVGPCsOZqlx7qxguPtot//T3vBt2w+a3XxvR7459JrU/e4amgL0hp8bb BOiqn3X3MJlYF/tOmsi/Ib0AchVAiodZKbhT7OzjKTXmXm4X/M3Z9QfFY6aYbKEQ+6cn DZ90fVciNqvSjWhxx037PXVbPYdj82hUdhf0ZFJdnJBDW+GrcC+WXhSDQy/vhy0KmGUb JeLI4HdwtSRxpxWvN2k4y3v6/adurP8E57dm3ryF6ENXq7/kR1X6Imr8l2OhXB5sVLju rp8w== X-Forwarded-Encrypted: i=1; AHgh+RqiiNYm/J1sn9uQ1lDXkoJ5t41ZsZBR0YpuEDT+UUlJRyZ+vZxSHih4kT7mUW2B+aMYyqYcfTI8jg+1dd8=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3GPsjHSBY8q+qmmT1PqQXuczkpUOH1CEYTnlZ1seqKj4BeBwI bDQ6bRXJjNlKvJG9cX1vRp/kqzNVq19u0nqfuymCGTI0o5ebkX7A66Ry/uovScWApx0dOCIuhoM 0qF1/dRgC0YlC3n1aJlTZYifrtlv2YiuchNuIdd3Mc80xnS1HDA7d5Iz69BWw3g== X-Gm-Gg: AR+sD11rTxCZ3UeBMxumwsRROLsEkrvzVQWKa6gLN//I6RbH8rwTDSE7xvWNTiVnNO4 hrwNwzIBg0lG6CD2xsgjJl1ZfA02bKkvGOjtwn3c4AY6NDXt99ntcaHd8bH4uy/VxhPywKMmTFV B0I5eK3pudaLxho9jdT69NtPrtpdHDojDq8uxjS4qeTQrg8ZbcYyC+wIfYGzwHCPubZ0D8zww4k KIuUg1Q9jn2si7ioJgxp+NMRw2zpcNYia8gwpscKoZSEwiSRYATtiUyZXc50hjlWohtEWaoEF8b Zue8AnlqmBFzn+FPvgi10247w5bPSRoh2EwjH6/lj10Wc1GPbQXmWDYTKo7KQ+Z1b+WjfSceoaZ qKxmxqpy1 X-Received: by 2002:ac8:6f08:0:b0:52b:4f1a:5fde with SMTP id d75a77b69052e-52d4bbae79bmr27114281cf.19.1786371675747; Mon, 10 Aug 2026 07:21:15 -0700 (PDT) X-Received: by 2002:ac8:6f08:0:b0:52b:4f1a:5fde with SMTP id d75a77b69052e-52d4bbae79bmr27113101cf.19.1786371675218; Mon, 10 Aug 2026 07:21:15 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:14 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:16 -0400 Subject: [PATCH v3 05/12] mm: remove wait_on_page_writeback() 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: <20260810-remove-wait-on-page-writeback-v3-5-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=1451; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=6dxbAtDCmrnDYkfOuWrS6UKuWVd+lmgUjReNrbBmSH4=; b=61yGVyVUUcoA+BeFj6z7ZvMKTrknl5Vy07EqPr8fQbcEitcS02/CCYCNWVboS8DvW4Ni4Bvq1 Ka4sfab8C3RD10XylVk59bT0fPLpe6Z6WhfUVMqvXYkJBpnLyaK94HK X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfXzltzx8917kPW AwzjqJWpgSUA3ughgw1HF0KzDR8dRk2doPBe6uTZX+lA7v+xufzPo8i6f7FntaadFUNKzVytlAC IGU5/y7uOwpYT4C8GxkTse7Ot2WZyn1EW/ftpNZlvGCa+Vbgnf4A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX9MeWQqmvUikZ X237WX5GbJ8lypW3HKjpx4V/ikS+VyFKGi9887IeQ0kRLFRi3qkSKdne2PCDjX6EIRxiFrXP7Bc DwMsvL4LvZJH6KVQ7FY8z+XhrubmD8iZ/TZ/VkUQpWfQ0WVIXvQkY3BmhRdsXN3L5bihUnTgd4E PL6ingeWDJU617UYTfWGq+N0HUdCRGJ4C2b8VzhEGdruAMwVs/Mc7nwpwqXNPe1Vn27rz16OeG9 o5RNWgFJHCdl8eFtpPr6Bs2zfSsxrBoFPDw5oUddp6Dr9CyYfgwqTvMObqrIZFoD7M5HR+OUV6H wknRaPe6l4dV4lwSZOiaNQ0q5Kn5SFDcK9APR/rIS3iBOq8Wk1W9KJVLm3Ql56U0NdwjopeYue0 DihZMaBHy7gFrurmCRqLg67jD6xsa9Lp0rhdgdGWIVO9Z3aJRqGtw6dN2Fjt+7TvLnvr5RUrVrZ VuexVHdjsZS+Hvh+iVg== X-Proofpoint-GUID: K3Z6-kNDLH7E1YY3MQT6J6t8TQCKq7Xr X-Proofpoint-ORIG-GUID: K3Z6-kNDLH7E1YY3MQT6J6t8TQCKq7Xr X-Authority-Analysis: v=2.4 cv=MuZiLWae c=1 sm=1 tr=0 ts=6a79de5c cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=JfrnYn6hAAAA:8 a=VwQbUJbxAAAA:8 a=qBqFc3eaEPVjc8k8qNUA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=10 phishscore=0 lowpriorityscore=10 clxscore=1015 impostorscore=10 malwarescore=0 suspectscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 The last caller was converted to folio_wait_writeback(), so drop the wait_on_page_writeback() compatibility wrapper and its declaration. Reviewed-by: Matthew Wilcox (Oracle) Acked-by: David Hildenbrand (Arm) Signed-off-by: Tal Zussman --- include/linux/pagemap.h | 1 - mm/folio-compat.c | 6 ------ 2 files changed, 7 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 2c3718d592d6..3748dde2b97e 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1240,7 +1240,6 @@ static inline int folio_wait_locked_killable(struct f= olio *folio) } =20 void folio_end_read(struct folio *folio, bool success); -void wait_on_page_writeback(struct page *page); void folio_wait_writeback(struct folio *folio); int folio_wait_writeback_killable(struct folio *folio); void end_page_writeback(struct page *page); diff --git a/mm/folio-compat.c b/mm/folio-compat.c index a02179a0bded..ae0271591d37 100644 --- a/mm/folio-compat.c +++ b/mm/folio-compat.c @@ -23,12 +23,6 @@ void end_page_writeback(struct page *page) } EXPORT_SYMBOL(end_page_writeback); =20 -void wait_on_page_writeback(struct page *page) -{ - return folio_wait_writeback(page_folio(page)); -} -EXPORT_SYMBOL_GPL(wait_on_page_writeback); - void mark_page_accessed(struct page *page) { folio_mark_accessed(page_folio(page)); --=20 2.39.5 From nobody Tue Sep 29 08:26:17 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 9363F3F7875 for ; Mon, 10 Aug 2026 14:21:23 +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=1786371694; cv=none; b=URFWfrVjXZZ4F+01wrnzpDoEEXoODh7VY4p7QCo1D5LOvv72fNvPcoN0bFCtv8Z9GVFc+O6KJqQ61v57JnOUqlG+YZ47vYqHfD6oyav6go4ut1xcrddW4EjF8AGSbbu3y+yfhrX478zwW8nSAKFCuz++X2rNQGiEwsdqsWOEfG4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371694; c=relaxed/simple; bh=RB6EAm4khz80XnHvU3JzY5JD7tO097AT2T3aOYQsk5Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uVAYvVnbY+9+1Sfs8E1njbJTlJWA+JgH+hgvoeSXC4XVj5RGEu3uyF3sTSWLW7El2lYCwrVmYRVqY3kXwRqheRhv03KddTVqD/EOJvkB/49/ncJLkGkE6EaCF3V5HEttLsCA6Q7WDCOlS7us6pxpFBeRjkDGrObN4zILhWCj9yM= 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=V7msvAJD; 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="V7msvAJD" 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 67ACaCnx2898532 for ; Mon, 10 Aug 2026 10:21:19 -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=IjHt At6xPrS0rFFojV7YCtn1FnT734JGQcpGFzyUn3s=; b=V7msvAJDQO6Cp0c3wmcU OsBbKNzMS8p4Jxu8pTCQLs8bvpvt54iQ/MKjfLvFb3+Hia7gYfRahFqsF7i9LqTy uaddPdJTZfQZe16KitfFHl3vdC7QN3+WXSuoCYd0Ot3lHNw/b44jSYDKTmKeVGzy 6ogFrjvZFadVt2A/WLbYx3Xjipg2BQPOTgI/b/dQhUaPy7XjFG521zhpHHd88XNv xkV8RvV7liSGrNkJeCC3qM57WUq6DeNKhA/z3tlA5zYcn2za1oDF61c/MvzLHJPg I2L6sfzQo2n7M2ms+DxO1sw2KZfCyurkO2Rm5l+viziasFL20v/cTBUi7V+nwgvD EA== 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 4fy2a4b2yu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:19 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51c19493ac2so21357461cf.1 for ; Mon, 10 Aug 2026 07:21:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371679; x=1786976479; 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=IjHtAt6xPrS0rFFojV7YCtn1FnT734JGQcpGFzyUn3s=; b=GhFHtOleuaOtfDELXHL1xHKsoDYbVFgyEnYs+g+Uw6n1sG8NZQXvVkWuFMrOhu2dpu Y02piInnz9vfMSXniusMnekbC/n4HyXK9K/eohCQknPpcWsWsBuo/31xxB7arSlAcRzR id5dAtA1khKvag4hb3NpivFrm84NzDjiUlEywJZoNlnZIPMTNxcIUNuXkNnHxeVY7dca g+riv9mU2ix9OvRXjkfb0QAZetPPmxQketuQASlx6AVKpwE7X+AyZTZAxJNU6MKbBqT8 7nwASvkvLuFPBGio84+Y2zd9DbRIiOhYmX2s49kGOqm+nsw0sm1yRGABwkSwbNa5pHL4 9dkQ== X-Forwarded-Encrypted: i=1; AHgh+RqPoZ25NGsgOr8QSQmyDfIaAnhWbwlnYjigHFtDD2FEKddZZmC6U14rUo4p8eu5nQwRFMwes0ItUIVgWcc=@vger.kernel.org X-Gm-Message-State: AOJu0YzFHDm7zm3Dr2CEOo+BnYBgYQtjGlxdUxW3TxqGbD/FEkLn1FyT 9QcBuYLunpIoh0n0IBhGqJCSoSw9caxf6lSjwJxWhykvOsyWQGkW3KSm6gYshRWm3WUgzxgF3Pu pq/tzHM+DZTd83xaIJcjZxBeFx9LopjXKW1UYcthseRDSEb7eUY7DRqvoizFSdA== X-Gm-Gg: AR+sD10f8it940Koya4tgDgtFyi2joln50F2FceIzpj1B7GjEQ6MbOsI8ElgefJFb4U 0n6hTNCjUtHu+0v+hzsFxUqcbPBzRwCBo17icQbV+xthihLBp/b/oIXEf4AHKA06lvhnpDKlIjG SgUQ01sgXVNKBERNWYlsduxD5OxMynsOlkZnhv4G953Gpra6dncWHtIIn07nagC4GbXQ7RSJRdS BSTwu7NuwdVBijRfbXVEw6rI+VwjpMmg+Hh2lrfGpE9yvtMtL4mT1Mxl4TOLCqr31Ho2zB9MbWo 2dqheHrdabhXZNfNU3ETmwKO2wTgbjwUG9r0xgyRny8/mDtOhXtsG/4S4DfimBIBLDQJ1bbpMEM 9/6etZiNb X-Received: by 2002:ac8:6f0a:0:b0:528:320b:305e with SMTP id d75a77b69052e-52d4bc980b2mr25354901cf.35.1786371678752; Mon, 10 Aug 2026 07:21:18 -0700 (PDT) X-Received: by 2002:ac8:6f0a:0:b0:528:320b:305e with SMTP id d75a77b69052e-52d4bc980b2mr25353871cf.35.1786371678214; Mon, 10 Aug 2026 07:21:18 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:17 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:17 -0400 Subject: [PATCH v3 06/12] 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: <20260810-remove-wait-on-page-writeback-v3-6-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=4666; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=RB6EAm4khz80XnHvU3JzY5JD7tO097AT2T3aOYQsk5Q=; b=2BYn9jC9xqnkpmGWEmWnzu3nuFMYF00OiM6zRyuG/a7lH6IXJCYQWgiT7LYjcZIK1HYQnpMw0 TnXJAaYK7n5BTN+QpVQmimzFaXlk3oIPuNmUL7EPbH/Mzj24wYByM5G X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: Pn1XiS0ED3osOT8KgwzF9OxXaiLj5a6H X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX4al+iOIz4SFp IWCV7LGq/o6apHIlv8rfj/NOTbLHkNddw1rKtVtMEL4DcdKdJc6TIGu49lCuUwVdkcnJ64ZnOqk 7LvxIEwXAPV93IJcisv1i4i2WGfDvShCuXXsQ1qalpeX8XPt5dNn X-Proofpoint-ORIG-GUID: Pn1XiS0ED3osOT8KgwzF9OxXaiLj5a6H X-Authority-Analysis: v=2.4 cv=FfkHAp+6 c=1 sm=1 tr=0 ts=6a79de5f cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=4S3DF5rXG3rfafK4-1MA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX9Y9YP5B0hO6t YeIT2QfNUd6/HguuqUJEr7h5b2y4846Nyd11T2LkF+e3tC7falS1vu3n5ANO9lnUhDxXbUGMCC0 LlYg2l2aJANy3z8SMi8pLstVQRhLFQVVbSnVZeBgaS4BWm7t+JZmEDMcHgn4n4ptfRAkRJHLjKn wxS4RJGvk8qidjMBDnSl54Eei8A2E9snOJAVBlJ1DgJD9Wudb+rRqusL/a6MYK/6TKGhfeb8ciY K9sChg6EKdzW+saTSds741QIGtNO9P8NU0hB52WOCZlRIQWRa1+KK9IzQVq3FmmBVarQz+lAF/7 AD2LTLAinJRb/nF5WS+wXqRivMgKFVjTRjo2ka9VYrz0bIVml4icOucn+x6H6Am8M6wLHrnX7kd kH786BH1AizKZqTSI9mGS7KZ+cYCPCQwaw2a7LCjFNF9sGgtqwX52a0fV1h/t7A6RS4S3T7ZcNR H6dDyxiZhgJ48kDU5fA== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=10 adultscore=0 spamscore=0 priorityscore=1501 malwarescore=0 bulkscore=10 impostorscore=10 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 c08fc70321e6..28f0b16da2b0 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) { @@ -701,7 +694,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; @@ -709,7 +702,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); @@ -724,10 +717,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; } @@ -1578,7 +1571,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 Tue Sep 29 08:26:17 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 5E6433E558D for ; Mon, 10 Aug 2026 14:21:26 +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=1786371703; cv=none; b=QXw1bqZDZ92VCMmyC6J8M1jelvJPoN91I90WhmgGgQN5EokSL8bLgb2PfxjquwIn1E+RdZbhb9L0I1V25fJ5wB3gLGmN9GJEOeelr1CfpGvXXILI1USElGMPB3GEvGsFwSmAzQyZY2Kez3n2+Pj6GkHeBeoNihdsUlf6WZ5dCFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371703; c=relaxed/simple; bh=kLEOqEnFcXW+rNVmQEljA3h0yllVd5ca9DQ3khlYlWQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=smx/Mdxnf2EUC+Kwm8h0RZcApmniUHyp2S83Qf/m2+wIk8ozRKqe4/44fji4M0ULjzR/T5thGWcuLGPgXFDU//af7CQG8+Q8f7QjPLc4p73uiAUh/NFXe6XYSGHY7ZUf3cWNAlUeGekwHZAjCHIAntBaF03/K2CL0+I8t/Mxyx4= 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=QE29lpQB; 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="QE29lpQB" Received: from pps.filterd (m0167077.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67ACaFEr2933214 for ; Mon, 10 Aug 2026 10:21:23 -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=9wYX /ZIYKVfQPG27uMx8tOqEdGsdSAkMZMuyFrH1L8I=; b=QE29lpQB/ULYlNngi21a /hTWjHq6AZmD1jtPW4qIsTEUVkjzLRzyD2DepfK0JzhyI7UnmEptrsJ2EM1Jiatp 930l2Adj9Cl8YlIXCq8v70vsP4kPoYlVYrCjZhD7o9N/Hg5Hawttp8xS1pxz5yyA tU0Hfq5fWnNyb2QXDXQW//vSN9M515bDPdIKyXQ67MfGCz63VTGRJlhEumOFuhXq mveUu3P3jcaaBXDl9JZensPr9NK+G+tKVBC8MLzutth5TpqpZLVlicpuw35fn2Ww fdUiRmfKanF+tCI1U1Da8edHrJKxx4LyRA4ArOgQi3zLi1t5TGtiFFWlnjHOlt9B Gw== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4fy0rmkcgx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:22 -0400 (EDT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5174a23afcbso23007991cf.3 for ; Mon, 10 Aug 2026 07:21:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371682; x=1786976482; 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=9wYX/ZIYKVfQPG27uMx8tOqEdGsdSAkMZMuyFrH1L8I=; b=Ysxnt7GFQJCkEiZ6Tv9SY9fHsioy1/iW9lKjcEbomz3uHHryo2q2bV2Lg3iIkkX9s1 1NxudAtjRQsqKbRyHx5LPB6RhC0Iqn33aT68If1tbtrkk44RcPChHX4H42DuCrgCIT0g aV4U22b9XNGvQHFD8bwvTzOYKevyWNxcmalNwp4BujE2s+hMtGa0KXXnHEYbmPM+jeZz 09yONookVH9a8QsgYW0SovevbI0XmNmnlk0s+XFnUdW/VbW4F7aOV/9f78sXghyMHTzl fsN9Kod5WTMvUmQfXPFA51CIgGnC/3Yiq1C3F8wclAZFBxcKEfNml9e6T1vQholBUMmd k58w== X-Forwarded-Encrypted: i=1; AHgh+Rpyn/3rEazP9OJ45eA1H/FcyaPxP9Bx3aA7I/+MoSaz9gFu2BxnD85jSOVyNOMtWQv73qheLhoua/mxJ0s=@vger.kernel.org X-Gm-Message-State: AOJu0Yxje3Z+vujqj9mvUUgxkNIWRgtqjqswlPKOCvsbWUAyNFRb8V7O HzdznOE24cSXn+UdU5X351bLl726aJG5r8wOE/cQ9zxWMeh1knuzCEeKwLV26oxUc1WuyaEQJRN /bwW6+3aGCmCWdfuaA6V2Elgq6iZDamkF35A+zpAlJUmW62JpmLAVF55z6mrL4A== X-Gm-Gg: AR+sD11IeURye9NkXmiPiWv+gq4FrroRl7dMFJlyi3qdN9ZBfox+Q8ZTnJ+bp3BDeYH IE8ppVukG8SFNjXTjjVpTjzNPSg0Bh5xRYT1J5s5VcnYABdoWPaqajy6WmiSk3KQBUKF9vExFYt wQ5iHvFbOTGTDmbXaibmiNkDBIEUUVW9aBWqmRBiAuSBCw0LhanBw195E3eMQ56Y7DxszrOSr+I yvQPdDgKQtlk7nYzEdnOiv1W3kbYcokkZpmBaIu2NdNC0LPZF8YKpBRtG5E8YhxGV41y0+QDCmu qOegJMggTC5CK/SvBgFBHlkVkDu0ePx7brz9weT6pP01VhNM25CDChJgRP9vWEOBU1F9+DTS0OH ajP6IFS7f X-Received: by 2002:a05:622a:58c8:b0:52c:dffc:4645 with SMTP id d75a77b69052e-52d18e1a66amr253262261cf.7.1786371681871; Mon, 10 Aug 2026 07:21:21 -0700 (PDT) X-Received: by 2002:a05:622a:58c8:b0:52c:dffc:4645 with SMTP id d75a77b69052e-52d18e1a66amr253261341cf.7.1786371681258; Mon, 10 Aug 2026 07:21:21 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:20 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:18 -0400 Subject: [PATCH v3 07/12] 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: <20260810-remove-wait-on-page-writeback-v3-7-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=4661; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=kLEOqEnFcXW+rNVmQEljA3h0yllVd5ca9DQ3khlYlWQ=; b=joNh9X5mUvffrlxkKTmBkr0iWmzW7a5lLjSbuFRThbu6aArrCyt6TGzZNH/GWLmWekE58e/D9 Y/+qkhPxIWUAoYE6Mj5KUz7ZnB0M9pwSraQitcVWKcL1lN5xiSjMjtw X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=P9gKQCAu c=1 sm=1 tr=0 ts=6a79de62 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=QOCMdifcju39GKoXhKua:22 a=RfODlEta0-z8xtihUo8A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX9eWMLMdUud4/ 57sxc+WTUe3cukNMhPIJTEjzuvzNI1uDKqGIj6mRgtmkAQZ1Gb3IE9Be991myCsz/WF05R99KfI qnXt+00motBke+qWyzXUXRZpwqSR3+/foi9Vps5s6CXFRyAgIUTf X-Proofpoint-ORIG-GUID: I9ZdUvqaRe2qUZSUiGwsN8inpCQ5HmhO X-Proofpoint-GUID: I9ZdUvqaRe2qUZSUiGwsN8inpCQ5HmhO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX3CDOgq7yxI3i 75SgyAZODNTni67gVQCjp8vB+etDG6uHuxOa1pAqlYKp1RbtPyHvjukNgDL+HF8wtzUc8v0R6Bg piwcV/ADwzn/yWxBB+X01ep4VaY0faVF64og8MYIkeIXNq1t+EAw4XD4it+AuIu0ecL3HlDaTQ9 PI29ImHfxY5uRxLJ2GEH/hVcwha5cuL8zkj7T4lFhBqy2hKohdpjVsyDhDTadQIhg1u5Bee7i74 GK69b+mh9XhmvsL5Cwh/HRB0Q6H781NAFbGy4ZfyVgXHLTZDUdKU8MlL4tcj0+jXPpLR5DuCYJY YI1PqaqmZ2Lw7c0gZ+XI5Xik3AnDksyRtlvWF4B6y99Sg5P99kvRsYZmNF10HMmjMAcIRW+KB1w rbT/Rs838gwVBVpy2UFpHRl3WSItn6AKGlnIOetpX3WpC2GJ3C9E+wDujsDq3VpmgQmJ5dpishR uQbCdb/VDepGwO+HsxQ== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=10 bulkscore=10 lowpriorityscore=10 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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, while adding four explicit ones via page_folio(). 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 | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 28f0b16da2b0..a3324da08123 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -553,6 +553,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] */ @@ -580,6 +585,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) { } @@ -1448,14 +1457,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, @@ -1479,21 +1488,21 @@ 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++) { fscrypt_finalize_bounce_page(&ceph_wbc->pages[i]); - page =3D ceph_wbc->pages[i]; + folio =3D page_folio(ceph_wbc->pages[i]); =20 if (atomic_long_dec_return(&fsc->writeback_count) < CONGESTION_OFF_THRESH(fsc->mount_options->congestion_kb)) fsc->write_congested =3D false; =20 - redirty_page_for_writepage(wbc, page); - unlock_page(page); - put_page(page); + folio_redirty_for_writepage(wbc, folio); + folio_unlock(folio); + folio_put(folio); } =20 if (ceph_wbc->from_pool) { @@ -1519,8 +1528,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 @@ -1553,12 +1562,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); @@ -1569,7 +1578,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 Tue Sep 29 08:26:17 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 85A673FC5CD for ; Mon, 10 Aug 2026 14:21:27 +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=1786371704; cv=none; b=arZRU7w9DA1LHAC6GgxYbb5pfOz5NsctOLj5ZwzyxW0GDniuRq97YGZ97+SU78lTgg+lWFsJWsFrtjIhl3XufuSJyzuT6WtybK0hY/OQemnRTE2xJ8rH3oXQIaK+hWUfJaT6kgvpGIXSaSHJjXVzF4zmUxM6xQ8BmE3AHIGOSqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371704; c=relaxed/simple; bh=GT6KsnFlFKH28GmoGfMAppH64tmtgEJSjAsPDSSVHww=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S9++rilBroINR5V6IyGM9bTsM0Q8zsmfcAAJqKctB1ghHb0rGyWk/7lkVynUom5Lif7iHoU8SqSo21ciXW22URwGl5vm/jjT4LVshON7lmvxpaQVRLgxlHxDCvwe3Uc8oVhncE619HPsO6T2E0GIcUTlwZ8hfFAtfvMa8CNazl0= 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=dLmpK/OL; 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="dLmpK/OL" 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 67AELI8r3538924 for ; Mon, 10 Aug 2026 10:21:25 -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=IVyh 2I0xknPiazMq45DWF306MKF484odlddz5jbEe2k=; b=dLmpK/OLQz8CU/TbBRcD wffnn2Mb6OYdhpCnoHsIMBQCQxCM2lOU95CMLabWmepCtZvxKZAhrqWQh14IpFyx zuMHFDaY1FvGUWkLbUOavcfk2cvFAdJsSGZGuy4wGxHZYk8PuY0HEdt5+pAv/zYI M77KIk9rNd6/lpD9p8mUMcv9ZqdeJnMahAHeJgkPYsqr8TqEDhVdnWVN1AxT5Wqn AId7tMIW3zmi5qNzbCmq+0Van4AMFJuZ2a82w3pU6fsDl7cBmHwlHKVGENOqvo0m rEQoiWjLBF3P7s84IxiauMhiMiJpt7yb9IW58R3+v/vu6liLLu78R69CEDr4FqW5 Tw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4fygb6g035-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:25 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-51bf321d786so24351141cf.1 for ; Mon, 10 Aug 2026 07:21:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371685; x=1786976485; 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=IVyh2I0xknPiazMq45DWF306MKF484odlddz5jbEe2k=; b=NW6CNqU2KcFb/HoX6bE+RsE08CfyZ51c8ZJkUKAhCXk8SxA36YvHpyQU1T4O4m+rSI +HMy3aVzmuPe+FdVRhW/8R0JhARKXZX0RZTPu/u24TnIXlNOy4pW6vVHRSA+O7K7iO48 yvtfPDEsKOKewzHpc5T2dMS1ZGlUwCiI1JpvDOhE/PHmCjOSBCeesy16SiKJW5UjAJEJ gag20O13qX5vtLVzv+3OTVkXevGitm3oGTTIlbehmHFEjpS0BzWpqhAldjiv/aWqjhPH Z9ztx3q+VW22trOaFpWB8/1XBooZttLvBQdoQCTR3FqYkrU1bVXDI9wmiz865iO6Fd5L 77kg== X-Forwarded-Encrypted: i=1; AHgh+RqAw8iSOo0rTkK64gxHIwcYJ/GIEWPKmJr9urpQ8k0MtF1MUXNCKF/cW7PKNXS0jmPYuTZAIDj9TVix7CQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yyx+DU70T4HnoHXInl22R2eGHQF/Y8EQt7CRdfh+bcOtTToF/Y2 EJGwjTiPUMVePw45nfQHbekKaUrr7jc0YBkWXBkOzdrkFiqe7RUgY1I/+OAgadopk2oUTivrlUr fkycTZ9xuuImYO252Hc4RR3VPGhBembQp2Yp7VFk9IV4qENdb5liyp60VHn0IIg== X-Gm-Gg: AR+sD107B8u6I0mszLIHkUK0KgzFX2piA3RPGPqQN55eqS+K0EyGRynEAR+FiNHMUdv juGCq7/PtxK7C4PQFirxT0rtqz7aDhYVZhDD3JOKWW6gAO+Ocj4+1uxmUvNZ9plSftrh5h+5Vx2 cddEDHgXDZXrFF8Er6SygYU5A952Rq3Wl0FttS43jufAobjXgrlQJmVe2wDwVmfIJTpnNTdWWrP qFkRL5hwnI3cnERk9ZvdA0SHhpPsFMxHF304+9ltt65Pi+k6Df+tHGW0CqpS1d+QCg8az6dLNck CFZ7SxEEjlhwseaaAasCv1yJO//Iyatm7iemuFeWvsgkjTBGniQl6R0V4Da1pSOtMU/5APFjLu2 SOpS+rOM+ X-Received: by 2002:a05:622a:c8c:b0:51c:2340:bbdb with SMTP id d75a77b69052e-52d18fd59d2mr274381351cf.26.1786371684853; Mon, 10 Aug 2026 07:21:24 -0700 (PDT) X-Received: by 2002:a05:622a:c8c:b0:51c:2340:bbdb with SMTP id d75a77b69052e-52d18fd59d2mr274380581cf.26.1786371684393; Mon, 10 Aug 2026 07:21:24 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:23 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:19 -0400 Subject: [PATCH v3 08/12] mm: remove thp_size() and thp_order() 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: <20260810-remove-wait-on-page-writeback-v3-8-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=1262; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=GT6KsnFlFKH28GmoGfMAppH64tmtgEJSjAsPDSSVHww=; b=byVHWSYhAVOyPGElt43i+q4xX+4IztrMsjuV0Aj4ZkDgjduVsEwlE1w6aC03ZvxffCRtw3I34 YJP87fwzSOrBu/eta67oEU9hFHy2ow571dm4QIVUtQyq6PukSc9Oav4 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX81L5UlYuHgqM UNaUBpUtFS1qIz+KN5c2+OH2KzvhOPVj2qERT0i2vUfmrIHXviKaNLk0sYuogNem30VgK/S7Rpo 06xhvCQdEVBsSTM+wbEA7fu1UN/ut5vgYviCezzMB+SEQxQbgrbt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX5Yc+GC09EhLN 2u5UWDwSxzka0UNmQbBoKM1WM4eG3A2f4lB3etZUY1xQHb1bBaD/UI2OiNoKEPpM+avcAF3Stik 1RsZLYWHHXlOp+TH+AhUx/wKKbjoR9Qo5YVF2iE/w/1aWtV0AleSQoZzgwt8gF2rRvdUVKvUS0k 6+z77uKDebzch9dYGMjsitiaMDwZn4NlIJIkEkgcewMrNS0euEddKnwIxVaqr3Y3yXEbMkzLewF DI3p9WYujEPE17jhaVZDltWFrvPVGnD0+xmEiTEuYQxdeXsB7IPucwhMOoo5bjkV/0sGIJPGWES AiIeRcpGJJE0+02KhhGDAxb35PcWGz6gLEiuPnNqOIM/V3HMzXzrTW1MEGbkWPVaF7xDXzNhNPR 1z/32NAu4sc+sV4Z+TEUjex1LdJUoqa5XVDAGq+b/t278VMZpl7SFJ/BnFxY9FieIBW0O81T5h9 hOxcSjJ47mzYxTwHSJA== X-Proofpoint-GUID: O3gJIvfkz0syiv1Hqg1t1bT8CR6bnymP X-Proofpoint-ORIG-GUID: O3gJIvfkz0syiv1Hqg1t1bT8CR6bnymP X-Authority-Analysis: v=2.4 cv=MuZiLWae c=1 sm=1 tr=0 ts=6a79de65 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=VwQbUJbxAAAA:8 a=5wpFShScvf9Uq2YMFBAA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=10 phishscore=0 lowpriorityscore=10 clxscore=1015 impostorscore=10 malwarescore=0 suspectscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 The last callers of thp_size() have been converted to folio_size(), and thp_order()'s only remaining user was thp_size() itself, so remove both. Acked-by: David Hildenbrand (Arm) Signed-off-by: Tal Zussman --- include/linux/mm.h | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 485df9c2dbdd..48e821454ca0 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1966,27 +1966,6 @@ static inline unsigned int page_shift(struct page *p= age) return PAGE_SHIFT + compound_order(page); } =20 -/** - * thp_order - Order of a transparent huge page. - * @page: Head page of a transparent huge page. - */ -static inline unsigned int thp_order(struct page *page) -{ - VM_BUG_ON_PGFLAGS(PageTail(page), page); - return compound_order(page); -} - -/** - * thp_size - Size of a transparent huge page. - * @page: Head page of a transparent huge page. - * - * Return: Number of bytes in this page. - */ -static inline unsigned long thp_size(struct page *page) -{ - return PAGE_SIZE << thp_order(page); -} - #ifdef CONFIG_MMU /* * Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when --=20 2.39.5 From nobody Tue Sep 29 08:26:17 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 7DA243F788F for ; Mon, 10 Aug 2026 14:21:31 +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=1786371709; cv=none; b=DUtkbYU7L9Lmv74//R7JhWP4z+WIoiAj4NEY8osxKm9pL0cHOcv+sxMOr9MFVZkU7m3TG4L0XcdURrKiPE9eDyvFFpL4XI8Z5U5HO2zqGF1R4rJh/y634yM03hDWvHy1EpDfyGJmlIiBjM7D3mpaES5Z7Oy/McbyHNxB1bpqVew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371709; c=relaxed/simple; bh=nPmPX7TOd6iviTDoGDogGRf3WQ6WG/tn7FBA7wKc8Cg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ll+WZNteqUm1YVszexDG3d0Y49FsyNEzbhtI3W555JpIj8uxu2iTuAnctwHvB2UvDM+3J8dr4sJWtwcwXecefMuWaiCw3pwTSS0uywkYsGbIMF2d5IsiOLL9f9Z02tGiVj1JsWN7OU/Jh0WDoJanExwhzQCBsEvEiLqUB3L+YEc= 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=JRWSYZBC; 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="JRWSYZBC" Received: from pps.filterd (m0167069.ppops.net [127.0.0.1]) by mx0a-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67ACbOs93845142 for ; Mon, 10 Aug 2026 10:21:29 -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=S3D6 qH/ZmLhiW03zXnR3WbvGewlE3ORw28iMnvFcpFU=; b=JRWSYZBCu8mCmTGWvbvU vcg0D3UlltsT26b7Dm8dsoBNf7JUve2Rf3wjD1IGOE5C9j16pqyNDU0ezcYckvwc D3Waz/SlkjxnyGgW33tX+qEMIzPzxINHd5uVbzU+cUrZAbcWnmSr3EnYBtYJI0o3 ERZ5M42fdtlYu6dz7fRDYPZioR89JsquAnO5/OtDICrbd9VXEXfH5Xnk2KEV2SsW CLLp/Hje3WnV1q8CXfs4PsWzBTDli793kkT5BR43TwtTuTHTFNEvkFGzJuA3Uq1J swB9IoY0ic6g55WRvljs2HHbAugTMQ3MF97vNlXzv0SK8utjBw+zMceq+dy3G4vc JA== 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 4fxyb9bkv5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:29 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51c26012cd0so17966561cf.0 for ; Mon, 10 Aug 2026 07:21:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371688; x=1786976488; 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=S3D6qH/ZmLhiW03zXnR3WbvGewlE3ORw28iMnvFcpFU=; b=bGVoJIrCVF2oe7nPuhTOk+/G4zIXhoAVJr7aUMGIVSqeoGb0miqQhxr+NBAPoJXY0B lSRJ9Ac4cwZPnJxOJJpa7Z/n7KqNS7m0yI70/hw0BvamSNcBMyDlHgpu46bLPQDAQQXC ZPPU1gM23hn7yfUcQFVHiVB+fKhQCrX6ckVAwdrDCJcnBGcxHIe+DMMPA4SKBeuQmXx7 N0pnRIfRtcPZED5qP2/Tzycp/Byak0jlOlezg697fvIy3X1s6LnCdiM1MP/d6GRJf6aU DUmH8xFJy+2QSTzA4S+i504cuZ79OE3UcKN267M+YSQ0bl1sIx8EyuGPoPKCuyKVwcaF DZgQ== X-Forwarded-Encrypted: i=1; AHgh+Rp6RXEqUUCUN199nF4+zahoguL54cFyjkRVkaqHkG7nl+yWBv1gH+Ui0fL5GiuN1bzp+yV02EOLPxoexNU=@vger.kernel.org X-Gm-Message-State: AOJu0YxkbsNZdSYXf8/dk3aiq9tfkDq3wCf1Xo5E2Nn/N7Y+DLX5jETb Inu0+OAVIhsO7UZR+Q3iEOm7U9+kX5uduZ1O22tWQaIB5R5Sv7zpaSexOo3Ie6kKYuTx/bFCAGW nT/QelikKUOunhzE1XF1hw4sna5oKqvU4BDUUJr9FwdEWZodFElzKjAYY6f18gA== X-Gm-Gg: AR+sD10tuhWb0tZmKhS53DJ83caSz33Q5lub4oXABBE2n1BuOcLLM7OqoLpSbkt8boq eGTg7ePL9pnSeoKXhGyngbX0+XPVyCo+KZF7k0NwvOP84Ho/xw1OaY02NH++ePFlB4lnRfwuip/ SN+iwDJeX1A+3/jvr44LACBpQIKMDC7PLea6IOP3Vhwdam4NEoCRtAuz1wkd2BOgnSL/zcsQtWR NzZm7BV8eSxkn5v4Et2wdYHXIHU3g1XApwCuIWKvwzkDcH8x0gaKfHbZsboU4GccFDygis6UcOX cMtBR9xrJxvd8QEGYHOhSyl9VAoGkWe6Jsz359vGxPHAzO7oCWyRVKFwEqA2BW+vGr6/N0kaVdx QVkWxEdFh X-Received: by 2002:a05:622a:144b:b0:51b:ecbb:206f with SMTP id d75a77b69052e-52d4c10b153mr22589541cf.32.1786371688051; Mon, 10 Aug 2026 07:21:28 -0700 (PDT) X-Received: by 2002:a05:622a:144b:b0:51b:ecbb:206f with SMTP id d75a77b69052e-52d4c10b153mr22588901cf.32.1786371687575; Mon, 10 Aug 2026 07:21:27 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:26 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:20 -0400 Subject: [PATCH v3 09/12] 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: <20260810-remove-wait-on-page-writeback-v3-9-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=2482; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=nPmPX7TOd6iviTDoGDogGRf3WQ6WG/tn7FBA7wKc8Cg=; b=khqDuSvEeY3iayitcAW/vunwtinABTC4Duk+Il2kJMRDY3Nq/xhyvNiLwOwy1X/owlcNbZVu9 Ak1lnHZ3pf+AG3RpWIeXjwYuSfobiQr4Gh3ucmIBMR06VcopR7ZiCb8 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=QKxYgALL c=1 sm=1 tr=0 ts=6a79de69 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=vHg950cVU3XL5QtsloQA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: IDwbOAvQfiV290Rs4LeS6ndKdRNNpd-w X-Proofpoint-ORIG-GUID: IDwbOAvQfiV290Rs4LeS6ndKdRNNpd-w X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX+h+m0rAbHh/7 0wvvy6jPJ4AjxYGw1Z3NVorHUvAu56N20e2JiqfZSR5xHOMV+xqCemf0OoGdQ+hXRu69duNuhMM 7nqENlveCPHupiciB+X09kz3ARurYGc0JvS6mYVQol4K3hZbp+lsed+plM6fhGpf0IAy9nma6kP 1Nv0bcsZHXBkHrGsCVLLE/LGQeLP8Lhh0FRnsRXzKBUWbRSM9lbSsiBNbZPxCGJjEVsFW/1dGEx vn+FaUSDA8xI0LNIfb5KYOxNDSspU4Z2Pw27QTJ9Ez2/qltNQeNEr1QER3yCxYR7X5lxxYcy+SE fBmRc7oEMyh2KjwGV4UtsEccxOQGI+DSX56jbkayvVwWolNuamVsYn5z+mMG2/a3dBlJSSgAYkp YY0IN4SS4zj5YX4456QCrTbsADmDIpPHdOw27UYh5b2K1NCTy/GcAm5JhHopFtoW7P14nFeLt3H K0brB6eop00LVw5obYw== X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfXzZijp1+DDAXh sfHM4BahNPSyn/JE7B5vEXdGlpGFjK4qVW+PapIGbLTBpZgwift07/xK9hToeQ8weFJMsJlf4yS 0906v31IPeg9V7+YUdgee+0xpDG68jgCkfrMdIKymm5hMS7Oz1Va X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=10 clxscore=1015 impostorscore=10 adultscore=0 suspectscore=0 phishscore=0 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 a3324da08123..ddb12fccdcff 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -558,11 +558,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] */ @@ -589,10 +584,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) { } @@ -743,7 +734,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); @@ -825,7 +816,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)) { @@ -845,9 +836,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 Tue Sep 29 08:26:17 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 27A853DB62D for ; Mon, 10 Aug 2026 14:21:34 +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=1786371706; cv=none; b=Js6YUHxeBFmWcZkYnAvFlyjOtXNPwYFrIOrcQLZgr0FaVmTQgavfIDcsPt4xP3EwO1WK58S9tbLKLenl62vhvl13us/Yj+trVHeVsSUpm0c6Fi33T75z+EQMubHVaES01kahFt9b1M/hdeIJ9nwquKz9OravvZfq28gU1ulLmNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371706; c=relaxed/simple; bh=ar+8uUIKlAkAAFvZ1bMinInPdLeZqUCbyUCUmYHyjco=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IG2E7NjnoCLUM+bNA4kBml07KQFpzeyF7PFEEN6KIKmyhrhVT/rVFUCcb+tPlKfHqqFrENx5Gghls11s0NIXyyJLNtIlxJaRwFNilq6LIf2/A2Yvg6/k9OI2qPmQRt8N9tKU6HFUa+hKbISbfms53GPBNlD3sRtIkvLKxJxaTv4= 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=EkS2ZwV6; 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="EkS2ZwV6" 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 67ACa99M2990304 for ; Mon, 10 Aug 2026 10:21:32 -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=IS2K dOnhS+pv529qUIIXEsI3D6umDLAIzYcLLhsfZ9U=; b=EkS2ZwV6b0f6O3aHEd2i RANZAvOHFeRb++OZt8dEvJ9SYK6C6bR+Z3Fge/Llme7CX+RLXehAh2eHaxcIDAWP qPoweieRpg7zjREbedTtlOdIRp5LDL+B0NE3WnO5pe1b+vmynjIHoSwZXqPvHYof k0Xg+94f1zCZHd2NHGouhJGEL3poCkMLZDsCvV6amfAvAly1QOVo65vxtx8KN8Gi xfVMTaR8tF1idnY/zoWMWja+gY9um/BYVaBv3bB/Fav/WxU7gvQQ069ZXpCLvAWt qxaYENigWI2V5jr+KF3sYtmWbrCw5Vs34qiCQtGiQUOHVpAlBoTTS09RhvLOoka1 wQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4fxykwujhv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:32 -0400 (EDT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5283df62d68so23088581cf.0 for ; Mon, 10 Aug 2026 07:21:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371691; x=1786976491; 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=IS2KdOnhS+pv529qUIIXEsI3D6umDLAIzYcLLhsfZ9U=; b=VyyByI1ubo4P7o7BDRlRweeXZ4AQY9D/0Ih/totHibJOgpcjwds8LkNAvo4Tvjib5l OiCqkgm6cQRXwLk1seWVvXCQhFWIeexSbM95A3tnJUlfmDp0F4S5ZK9ybVgjcdEL2DCZ u2EzlKdZkWAHlc5cKJRIonUUlOH7NiGOYpSkf3fOu6uYaQoYr0ks/Xv6GziMYdfRIQWc iU3M2fiEf/omkBW46IN6oZ2FONdQQDcpUrIV3uvU8bleInThkPK0BJi34HhQc+drYEAq AT44B+i2DuFo+9NpzEYl10mHzszNby6RkQ6XkQml39d4qZlYMC7prKQQIlXQhgTUgGaM njoQ== X-Forwarded-Encrypted: i=1; AHgh+Rp8lkde3+LZHs/3sts6e8SngoAaHvK30rJyDi5G0FvylaDkqX+bn7VpC7xDp9x/hWFop1hJ3ZRXpnqi4x0=@vger.kernel.org X-Gm-Message-State: AOJu0YzFMkGhY53hqYB/Bv3lZStfiM71fY07K33d4h5ZY8FUv1P2z3Jc kB/36haiiippo18FQmGbD7FkVWFK26rJGRg+3M+HFBB51JVNe3mmqyuwpCNBHAX5X6GxsiJjmQ/ GODsEcAk5gmtSXpOGh916xCTA5BDH0XIVNjMCR1CCbVPhvpKI5N3bUUjXEpum1w== X-Gm-Gg: AR+sD10SKV2GU9Fny8/wsVJSQuzokgK5LQSMO7BCZxuhTAArT5MFtS0chQl6Kk4v38o bFWuNGpGbdHCvRAKTF6u1TTvgEEwBIVs8Bsl7uMf4EwH2b+JOtditD9fJcgWk42wdSc1tHiBsho dENEXxzaFan01/OjOk5ME/BlURU5bToT4qCfjtlGqUtNRa/e3CICHPY6wnXhMl52F4FfnUOoRwB IuU0Cv7xPvt4/lbqIJ4clkGrQqSYWamovqNoAxj6Qom0b8WoC5xWIIQ+OHL9C6xEMCz5wXyhUJo rfZuGeiDM1tffUCBRiA9mI36K2pam14yxJPCe0kvbsRI6rUGuea+Jpx5VrKTP5Fr2ig/QHf/fts JZ0RcrQoa X-Received: by 2002:ac8:5803:0:b0:516:dbf6:f8e7 with SMTP id d75a77b69052e-52d4bb7c738mr23828121cf.17.1786371691359; Mon, 10 Aug 2026 07:21:31 -0700 (PDT) X-Received: by 2002:ac8:5803:0:b0:516:dbf6:f8e7 with SMTP id d75a77b69052e-52d4bb7c738mr23827171cf.17.1786371690810; Mon, 10 Aug 2026 07:21:30 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:29 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:21 -0400 Subject: [PATCH v3 10/12] 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: <20260810-remove-wait-on-page-writeback-v3-10-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=2393; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=ar+8uUIKlAkAAFvZ1bMinInPdLeZqUCbyUCUmYHyjco=; b=ghqy9OZjRc9FePPnWqoKALFu+1yEbRsD9SmCqfkGncI6FOr+Ae3idCTnHhOGXi1vizO9BKSFX eZ1AFKyjHVlDx2T3q4hy/XrfPLIc+/L7SleRQUkxj9VLrFPVOhA3JyX X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-ORIG-GUID: 8uX5o4g1LRRTss-lxRDXUm-9xNjPEzNP X-Authority-Analysis: v=2.4 cv=S43pBosP c=1 sm=1 tr=0 ts=6a79de6c cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=azVShVRs0zEubeQ0wG0L:22 a=PHYVD-oPFUEr7kX-Mb8A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfXw3RvoQgXyqwu 9JnJmAePV4e30w1qxCT0Iu942nqoC0LjvxR+RizzbwSgy1ETpv0V1fDdmINKtHroNKDsuqExdqk hmR8CM7k7AqjfQSF2pTu/Pv5A1ay8hnSRKjCCTFPm+HeW1d7XmDbX+OVr+2pXpQJuai8xzdmrvv sK8YHNjrI2HTv3Rl110GMrW4YMCwSQQ9iGbIvjgC5ouEWu3NPZe8o0Qu9n45y8I8CKSO1vzVkXw zPde/9EGNQ6XAs8XsGGNvHJg8rqp7HfAQewKlZD2AiOVyva6gDTqQ+Xx9pMQqfe8PS4s0Q+nyWn lFGj0jwl1njp9u0TtXcFmvJEsQU65YGb9zrpKOK50rwSAsLyQ0CvLQ+uBh48OC0CR96RbR9lxXb hN6CUEIffKgHHiwIwTDYrtNen7ori0ytDoHb1MITFQAB4orwcCk+JVQoU4LYkv0BXi9BRn3ScR9 ZeIUWqalF+YTKYO9EHg== X-Proofpoint-GUID: 8uX5o4g1LRRTss-lxRDXUm-9xNjPEzNP X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX4OInPp1FxIYs C9qmY0Jg3y13moOCZHiJk731D+SgZ8xqLSb6TTQBmGeVRx+lZZLv4LKOkwGdHlVA+X5lnNiRLYG 17d8EU75bIdpYgiH4j+sUlqPCjLgd58U7QwGOuMirHGxrRi7CB4V X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 adultscore=0 bulkscore=10 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 lowpriorityscore=10 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 Convert the page cleanup loop in writepages_finish() to work on folios, resolving the folio directly after fscrypt_finalize_bounce_page() has replaced any bounce page with its pagecache page. 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 | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index ddb12fccdcff..708343a8bf35 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -908,7 +908,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; @@ -955,31 +954,32 @@ 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++) { + struct folio *folio; + fscrypt_finalize_bounce_page(&osd_data->pages[j]); - page =3D osd_data->pages[j]; - BUG_ON(!page); - WARN_ON(!PageUptodate(page)); + folio =3D page_folio(osd_data->pages[j]); + 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 Tue Sep 29 08:26:17 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 A852E3F1AC4 for ; Mon, 10 Aug 2026 14:21:38 +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=1786371703; cv=none; b=VFCgfnFjeKzQHWpYXHIgIgP6ek/N+Im1wxcGKBTEdPce2R/HE+PiphihIZMdBp513enbLcZ+b5U6CKuEhca5T9Z4YoZDMgAPSL8Bvxs6eAWWYZlA+8TwwRbhTLHJUF2kEOX9WvMmsaUAZKZyh19OHMsZkXxR1B8OwcbHvhrJlco= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371703; c=relaxed/simple; bh=eEBEQRS44uRWq+68HnHuSJkJWcepL1mJ0SSpfrhNU80=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i+2vka3PChYs/NLUv06zJ70IogbZ1k2ZFkz6iWOl2oVacQ9FejicXuNXPTaS1rpL0kL5mOcgU+Od5RI4hAW8bqWDRNeP9FEhqpXPHe9a3sobIm3k4qCCcpB4PEJWkvJWd6Zg/w2g9Je0uQd0eOdsarIUN9P94QCjP3uOsP3xrBM= 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=qjq+35LT; 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="qjq+35LT" 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 67ACaMhX056447 for ; Mon, 10 Aug 2026 10:21:35 -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=qjq+35LTpjf9J2w6F2hB vecXljYKiBnAzD5aenYJHzWhsNXgP9xHEliMM9O37gGKVD1vf/Se7su7wn2XbkLZ rD2Jym0BqslG5QgoaHVZ61V0B0C8zhmW1wU+QrjXQYIDVxiVIqKgSDWpi/1WUXHy ywTqc3FxNJY4ahiAjXPHYZJOy9kupo/J0IxL1BEaXBInVqdm6ONnvUYHFuTpUBSM bfA8k5gOrjl2wE7RFonKnU2MENdTTsZEevpboN2Rq7OQug4eKv7jl7Smq6U+kCzG b8RYvB92ovczaQwSBwLkIJDnlZxH21dFvqcBi4PRdU3TYYLfd7kGAt4/+bWKd9of HQ== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4fy0frkdf8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:35 -0400 (EDT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-52d28f8737eso37895381cf.2 for ; Mon, 10 Aug 2026 07:21:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371694; x=1786976494; 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=AJvXtDaX5by6QV2ykMxivPyGmkL/E36wGuG7NPrBf2ylG0/TwymPx57JF6an3XLHff fkhT58GQrvQ6BjCWLJ2p2hxyqNYzH+t7/DCsAEkczQRQJfVfW9mukp8wNXDFM5sKKKVN iJaz4Z1lV6vF1DqDEwFGZ5KxZDXQz3fGTcX/YxqCkWTujj5+Ix3+xYCyL101bn5ZT88k sBV1j2dGS3YjKlZbpVtZMXmGYMBiwoRW7noNSCbT9YqNxOvyI+HGfYW5i8PlsJwsx170 SkJlyTzZIpXrcQkK9s30vm2ipRhPVc7cozwIRPsQRc1PfppH5eeN4KJk6AoxbYG2Egot hpIg== X-Forwarded-Encrypted: i=1; AHgh+Rq8tpu8rn15AJ0+tKAWyjCc61JmuHxjJYQ+PY/+yAKGpe7OlrWwt4vwguXrrh4h9qJu3ASVmL6coQmYMTU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+GnDaTErQRHS6y6N2jtKFT/6XeW84Zp8xrPC+RyKHpB0WvYvX GqgUwp2TPpb18WP8V365R0RfEQ6lV/sNKQ/JYjFl83vUMOj/4xpHKXKVLN4oL4snYI5CSVnfyHV eGwEzdgAH2I2nmO9go7rVKxZGzJjmvaqnOYFK0U8DJxalUTkYl3L1rliKTLUnVw== X-Gm-Gg: AR+sD10G/av/5W+3SWK+WdHUTOIXem+IMaL/4fi7BuZmqfWAhYGKks/cSorZGw2oYoS pSBOjeqROUF34BpY/9XzOyRWFQX1AyIstCjLVigItQOum2OobQ2FfVkYbi+pa0sHmoJRnMEyBfo svaG24Ta9CxBqzM6sIeZDCpBF2FS/GFT0y5cYVSDPleGkU9qbnZR72bYMrhLtRwQDNQ4XLETR4W XmfwfakbuO8eJGGydSlKlNo5kbqIxY5PL0XeLg0nvvACk7ow/3NTQQaAcgF8Dqi0Wqld7oEv1a/ uBgmC+0BFmwW4avbQSNO8wK1ZbulZdxQ3h/MHo7NjWaVkkvHQ4yQ0iuRAapAJLBIDRyw3Mc1VyX p+xT2QoCr X-Received: by 2002:ac8:6f0f:0:b0:528:3ae6:14d6 with SMTP id d75a77b69052e-52d20a50232mr221693311cf.36.1786371694398; Mon, 10 Aug 2026 07:21:34 -0700 (PDT) X-Received: by 2002:ac8:6f0f:0:b0:528:3ae6:14d6 with SMTP id d75a77b69052e-52d20a50232mr221692471cf.36.1786371693979; Mon, 10 Aug 2026 07:21:33 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:33 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:22 -0400 Subject: [PATCH v3 11/12] 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: <20260810-remove-wait-on-page-writeback-v3-11-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=1581; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=eEBEQRS44uRWq+68HnHuSJkJWcepL1mJ0SSpfrhNU80=; b=igitKHwKICJe64WLGnQtJ7juQTX89Q1kNusDsmkgFURVamzkBrRPYcM6WFXlcOnjVGCWu9jAc HjyznGVPVaGAnp/iTFafK7Se035x+xGTYGst6RxsqK2bKINK75nE3GU X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-GUID: lJtPQvxSAtE6wCW3m97h_ghMtKyuY785 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX90pYTLxlkteH hpD0qzj+knr+AMq3lGb6spcY/7UVto3ZPZ9ACD5XOEsz5dIwlg55PUMN8rSeSoNidtgl5Tb0B+L /ioLWN5FmNauJiRgpnBU53UvRY1bS+9SEixTN05OLl9Wy8Wki0dp X-Proofpoint-ORIG-GUID: lJtPQvxSAtE6wCW3m97h_ghMtKyuY785 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX+FgdTt5oGDmN Fns33KN394/RUL+NbN+80beUgujVVB5Qjx0ASkxvVMqse26k7vsaiBUO8X2vyqOuGYL1K0vrZSf 04wYjEprqcclehCGLORURWWDHbCmON7dU5qCrnyo3z1ncdxteIlwgP83yeonkooj8M5JpxTBWKS 3GYRHW7J/pHZlnhfSz2f2RGy1bDTaWi+Z33EgjZSvl+lU+bySFyIfIcYbxRIrAfDI3JOsW9xy9R 5NhYBmBN3QKi9Qw7a1j544G87bgTKzqKSXQsiGV3ZoUx0GfIE7ybtUppgooc+IZY5ANfSf87ooa aaR+iufiYujqq6/oxzWwWe/mQaX9UjVIcgB/lehfxFO31UBpV21SkCjGRqhAbRaPRHRutsVp59i duM2HIGukZqZsXMEEpBZd1PZxhMbeRsTiz0GszWhZOVg/cPq0vXvcETNZOgC5KNSvcEz2DWKDj4 cU0HlKVPj3m8UpfVHpw== X-Authority-Analysis: v=2.4 cv=L6YtheT8 c=1 sm=1 tr=0 ts=6a79de6f cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=79PYxaXUQd1wl-QFWJnA:22 a=jfg2DRd2ap2c96lsYj8A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 bulkscore=10 adultscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=10 impostorscore=10 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 Tue Sep 29 08:26:17 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 235694052AB for ; Mon, 10 Aug 2026 14:21:40 +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=1786371713; cv=none; b=fRRfVje2l0ohgW0v+HjioYmyDs/9Q1bynMNcsiD0BY86XRDtV75g3DxHZtmvLvZwuTUcN3t2rjkeWBhxcuos+gwQvlJb4rg+nEd9BtqCd4J17Wt5sgmbDCC/6ZpjhHOgpDSWOmsuzKhd0FSkenpTnWoRLu/zFRZoFMV+TienhYc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786371713; c=relaxed/simple; bh=H+WPEAg6fNk21OMcWq4m8PpfVy6prUL5jC+rlshnioU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pBB6Wz0wC/HOGroCHRDx20UScVu7cVFhlfXzO4dci5EkR3sHfZ/Dbk5g7xAXZIK5q9QyccVcS9VkzyWiGx/aQHo1uqE/FQJ0KfvLNgosfV35M49KQ+mkh/kpweu7Je2KB5Mk+worYiAq2Dlh2ygvA+fl5fsfihSh39yNkihWzdQ= 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=bojn0z/I; 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="bojn0z/I" 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 67AEKc6D3095332 for ; Mon, 10 Aug 2026 10:21:38 -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=HS4+ +7SfsgCqjVhck++B6W9XvkcEaVeM763sEjq4goQ=; b=bojn0z/IAr5WNLmoq+w7 vS/X8WLw0/NTfqXqTGcamUIQWo4g/1L1wzi+AIV++Dhbx53xF/eodzujqjggv/dp Wjl0FEdLtxLDhDIo31SXiluw+6npK4Acz30nLDsWhvE/jjhT7xs4fRSt1DLPX34s a0p8FYeF/EvPTQo9DDd0DA1sr543nK5+qGslCJcvF4AH9g+k4Zqi5OnxofRnM0cf dC/eTYsHibBWFmdQWofYkVJ1z30MDCp6hzDaDdibLrbeqEbrlElFkVTP9CieoFIX yR9YAZg9zzfGmOkedQz15nZ1R/gVgQxhGlD8I0nopJIAskQHX9nrh1vLNO2JGaZv yQ== 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 4fygar00ed-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 10:21:38 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-52769fc3f2eso26673671cf.0 for ; Mon, 10 Aug 2026 07:21:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371697; x=1786976497; 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=HS4++7SfsgCqjVhck++B6W9XvkcEaVeM763sEjq4goQ=; b=HYOieY5lQ4a78TXTNwW47ujZ5tJGQQl6k2tt/++6WKOK97pbugWFYkJuNeRpxnGkdc PD5HCrm7XcIVJhBMY1AqlbPjBvpPANCt1OAWaPAcxYBWQpnFFBsOOn3i3sjKiHtBtCTJ umOLUkTqgR+TB6AJTdq2tfTrVbuzYIe79lQQQ9y14+LiffugFDLd0xec9LxWn0b2U8Vu 1G31zdxz+t/DJLhCQhYgQw1ALKfbEqdSST5wnX3aj4Ob9sOkUClBBGccTXcIuT2kM2aC zQiu97Ib3aYlzbEqlipl9EyVE39jU3vqRTWCoMa9rv5mglR8xqHV/BaiIKQq1mpj1Fj/ aidg== X-Forwarded-Encrypted: i=1; AHgh+Rp050OyJLsofdeCd5Z85BbcGxsjOSG6Mt5cT3PF8pVQ2jqqqXi6hwKkXxpbdG1Lf8Nf3lZtFeEa8x2YU9M=@vger.kernel.org X-Gm-Message-State: AOJu0YyhI5mzwbwFLFGB14PdhubiJoh/2T6aZMDjLWr/U12nbSeemATE S42qoj0Gin4X/tnmJCRfTAZvY2CMPZomuLCgOUvEL5O7IXfJZG8S02Z3TNXb2zPdszOSF4IkDCe HYyl6fVwT2nvGMbf8HGg4EZXMu2F/h6+e18ouWNg3TZLQS05/e8mUAMH6S1jvlA== X-Gm-Gg: AR+sD137gzxj1CvS7LHq0Q9VQ7qotp1sv74mHhhNSv1dvUsoRU5iAwCqNdC4Fh4m4bk +6XXxZMQphy9twOTze78MhH/eFNl7Kn4MGD8wEJOs/1D7+wYImOEDFc6SP9GqTE+137jeqeRXsZ dMlq9jjDxhRviz4Mcrt4tX9Piv67DUZwgPg3vKHQcg/uW4pfTj+/oBquP5WeZ5L2h9K+sK2Uy0D POXtqQE5nmVV2cG0ii3X2sQoWL5hXbjNGKeLt1DOYTfPu7OLeAoB9DQ3TL4TuD4xg22h7LSjcyU 6/VZJUomDoh5xAU9ZCdaCYZTT2U4TkK8kubaRbGlIdhoYfLecAvYC6BqpTLMUprO8EBurQhlLU4 y4ZyjZTbQ X-Received: by 2002:a05:622a:4811:b0:516:d60f:6438 with SMTP id d75a77b69052e-52ce5e01448mr479946521cf.0.1786371697312; Mon, 10 Aug 2026 07:21:37 -0700 (PDT) X-Received: by 2002:a05:622a:4811:b0:516:d60f:6438 with SMTP id d75a77b69052e-52ce5e01448mr479945641cf.0.1786371696835; Mon, 10 Aug 2026 07:21:36 -0700 (PDT) Received: from [127.0.1.1] ([77.137.77.155]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48002145589sm37383983f8f.1.2026.08.10.07.21.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 07:21:36 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 10:20:23 -0400 Subject: [PATCH v3 12/12] 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: <20260810-remove-wait-on-page-writeback-v3-12-dd7531704f26@columbia.edu> References: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> In-Reply-To: <20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu> To: Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , "Matthew Wilcox (Oracle)" , Jan Kara , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Christian Brauner , David Howells , Jeff Layton Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786371655; l=1302; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=H+WPEAg6fNk21OMcWq4m8PpfVy6prUL5jC+rlshnioU=; b=Wb7zxOOE2mdK7NryczQ1B0RD/gwzEja+WEduJUoRi/Dwu2V70eerTkzJiLplKw68Da/YSBGCZ nq/6m0GxSXwBAU0HM+984/XsYO0YrPj3RTxev/kZTfV8Wr3VvludnS1 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX5bcZn3nUhHaS XUsBYx1LLh3SyQHtfGF76lWuIMHgg0DrjHda6FYwhWzq0q9POsoeecowchCl+gf24XYIk80slPC MEaaZT9FsVihSzTYNIKG0EG6S8XTUUvU9X9elhzF/suJdciw+BZ/ X-Proofpoint-ORIG-GUID: AKl6HF3qUpIhkjOHEA6rVZEA6HY3eBEe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDEyMyBTYWx0ZWRfX9X7uIWH2Foa3 zcYZ4hYpYu11jO5eOshIvBJkT2sHZhihTfCxc82R/mHRngCWW8iQD53MU8rrpL7e07npH/wtLCv UytjOosBX4bVRB1kIv2OwRNU8ep7ulByxyNE/6se6SX/xppsUgVk5Aa+OPDtE3Rmbr+UGUTpiQB h3hvp1L3wkIm/zg3JCFhLSbV/TUX2AswDUDtk24uWSHHmvC83EHdibr9vVMPq65isYESfu0xSkK KWq/mFgfCubWOmDWgmFZUDQciIvl3gqw/ZPYkJp5VZ/nd4IthICJBIYl60hxMbulAVMhJj3+HNo STh5uDDL9nnDqBwttCGDECxPV+uoHpX9Y90Yu7wrP7BBTeI05kgpsz1o4xdctVw7UdaWy9Yzyos ub8G8GANEh0lijE9CES9dQJ9ilqsF/d6u+STt7p0dHmOwVIrxG8lj5VhxnFdCVEGjV5MkDm3JxP jc9uDNorq8bxkAHBVAg== X-Proofpoint-GUID: AKl6HF3qUpIhkjOHEA6rVZEA6HY3eBEe X-Authority-Analysis: v=2.4 cv=c7Cbhx9l c=1 sm=1 tr=0 ts=6a79de72 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=zHmcO6jMd5r4EZ4U0P0LQg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=G--0XuH5328wxK7v7Suf:22 a=V3EFW1AtJEMGhprvICUA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=10 adultscore=0 malwarescore=0 spamscore=0 lowpriorityscore=10 suspectscore=0 phishscore=0 priorityscore=1501 bulkscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100123 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 708343a8bf35..68018fc097c4 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1164,10 +1164,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); @@ -1351,8 +1351,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