From nobody Mon Sep 28 20:05:42 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 B6E8A43CE4D for ; Mon, 17 Aug 2026 19:15: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=1786994128; cv=none; b=JNizZp4jFKwOwEe6XUIlQ95rdury3bcCx7irleDCcFLHgsplUODUTth+ND1ueFhbD0+RFxQIMm0wSLrCen7KUKL1BfCYNeRcJEuZt3GmP+oo+1oXGFkSkbrTFcxjvBOYbMFvbKr6e+rH0bxfQAT7UbVkZEjOOgLYEz0uRsdXXWU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994128; c=relaxed/simple; bh=PR2WJRorXsFJP25q+ha589sxpEGLHSUrsTYvs7exL2Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kYzaTNvIbsUQbao7S+WsExgHF21ZNgELtv5Q3UzHHHXXGQdqC1hbrVTrDRMtVZDarTmWX4+1/rgO4FTXEA2Gdwk1IwDpcpEqfs6aMevAGzcw3Omm3gQd/T792Y950d196Cs9TW6FerkMlY/VpzOFeOg8WNCs99UNkdS682nYdPI= 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=LCWw5JIV; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=SAgjDAug; 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="LCWw5JIV"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="SAgjDAug" 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 67HIYwAN4004791 for ; Mon, 17 Aug 2026 15:15:20 -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=Dggv ESa2CSpFGON8I8M+asVXtRP298nD3FGbSrEXKPU=; b=LCWw5JIVGwNwlQ264hw/ 16CXJ97dztxkuxphSfp+yufad1UQKR+KFb1x586lzjDl/e+ek5Kl1iQptAt1xg4M cqHM/YeA+9lFNfY/a1WJZT7yrwIb/1DpDAW2mSiv8jYy67FcjGnAK2v2ZVSOJEAC kZPxB7w9HhiSM8Q/HIFgS2tgl59CjWuVy2/4tRqJhWpU1hmDGXZHE/xAWo02IRs2 FOuJ5JwmYvwtw3wvHDY1guySZR6t4z84TpTV9IqvwyoTBCXGY/mOv0aysZXDcF+F zewbiYLDc6ifqu4QB+knUGJlLDrDe1C6moCgZLImDhe+OeIYJaScAO07TwSANqkk sQ== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g43e0anb4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:19 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e695a3b28so25517285a.1 for ; Mon, 17 Aug 2026 12:15:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994119; x=1787598919; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=DggvESa2CSpFGON8I8M+asVXtRP298nD3FGbSrEXKPU=; b=SAgjDAugL8a69tJ9fzGRVikdlDwoC7BZFampgk8MKyQ8RaCDC0CnsrXReE4mYVncpn +dLvQTwus6//4YxEOBfltQ2P+7b4NADuFUjvjfURABDMuckra458arkrRrYUNlHbxTBH 8IK6YoF4irAi+bfGh832DohHb1zxM3xfLxHpuF/LJfZLmGNbvkpy51Bp03NNCnxSeGEs PJZcXre4Eb5N2gNZh+acI2S9WbbldjrfrwmoQpDuwBT6I6yRDyFXp4hUwMqrVCbsKprc 3JKLVQSIIsbumdiw6AUsDdbE+5ofNByJHI+fo35mw277zHXxoxiEPCvmHVtmchGYWjix gAcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994119; x=1787598919; 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=DggvESa2CSpFGON8I8M+asVXtRP298nD3FGbSrEXKPU=; b=JUvi7U0ILuaXn4uq3UdNpsJ9Llf+i0LuxcEQkLNvqaLyCICJHjK7tgS45M+UKqhKnU S6INcbJL7fDGrqHX5or+d/yXUK5hNsg3bMbCtf166HhHWdCIRAuB8cMvulRx+Q0ZoN63 F+kdACwoAVch60+ZX1RADLfQuDjukZnIUVvN3t0Y3OE1qFfj+QuwKXibsoZiZoRxT4oJ KCZHkkEl/8DgRXBJ3Ttiv11ethRexoEFXWWm1w1A0gPzjiBUDI24OMmDuLXTDz6fhZ3b t68UloR2F803uE3a9TpVBDryEy9x0RBemFh86OmEZoGEs3iJEaamPitFU9CDiC7iZYPm Rz7Q== X-Forwarded-Encrypted: i=1; AHgh+RpkHasmEF8S6QrxbBqwY8opRd0Sb8vdyBCIn0Bt92RtWDEUlnQi1Fpn/RRSL0BuDjt/BlrsL1G2nSmYNcs=@vger.kernel.org X-Gm-Message-State: AOJu0YwqURyqD8oBhxlMsCYsr1LLaIA14P5X6P6kaRcVlbqKp0bv5aUl LvaryxEi+qhqNhi2PvbSpusgtBbhto3fVt8akPHFlBRrCqgvtPgRT02inDO9ntD4vDxRPGH10B9 GGkuXSTas4C4bYr9DhFRoTDNJN3RN+bnTKtQQakXbet4/c6StSL8wjOfQ7Lpq4YgrNd7t2Q== X-Gm-Gg: AR+sD11/NnrlZJ0rwa3r11Mf9OXe6znuDLlYWLal8Tul1TWVVYEp5erKJpdE0/5IDuS eNt49qkPv92bA53/xWPYCPESgMcr7devJAv2OytedbLNB/G2edw62V6mgUzGJ20Cq65mZ9WzNLM Q8rMy1Ty6YPSEFoIoiq4rH1jdzaP4VYmL5ClZ0JJWkTvdWeTvSSRANAYs3/xWojnRWMF8u02I+1 VDXQ+pJlgbrKwnz3+nKpCZusM4fDdYRDZ2xFylXs6l+fD76MmCUJIlWj3VjfiJiKNaFbF3GFLeM fu9vxGJUd/pzPVaEsSQQJn+z33Mfd5ttlCFyGe+aIymL5/GgOkqYlrkiCz3xSbIMV6qCJQ== X-Received: by 2002:a05:620a:a2cc:20b0:934:b798:c245 with SMTP id af79cd13be357-9370667ddaamr124715885a.16.1786994118875; Mon, 17 Aug 2026 12:15:18 -0700 (PDT) X-Received: by 2002:a05:620a:a2cc:20b0:934:b798:c245 with SMTP id af79cd13be357-9370667ddaamr124708885a.16.1786994118444; Mon, 17 Aug 2026 12:15:18 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:17 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:17 -0400 Subject: [PATCH v4 01/10] ceph: fix error handling when the OSD client is stopping in ceph_submit_write() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-1-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman , Sashiko X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=3647; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=PR2WJRorXsFJP25q+ha589sxpEGLHSUrsTYvs7exL2Q=; b=MiiNBNV2/TEXmunVAfFweNzSbK1tOrILyKq6hig9fRhHD4mptc9CP13bSnvq9tUhn4BJarq8m zyRitg3Xmy9CS5XcwYpEcwgBOKrL2PtxpNzgf7r1WjjZkGT+5QUzJJL X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX3I8yiypF6FoR uZGEeLOik0G0XtyZmKfBNugDFbuBj0ClOVIKXayAc5JE8SzO8gujI9rcnlHB1DzPRhQmKLLMxOt apsJYGSyBh+oBuAzNXX3JwxJjGxyMIOkNY+OfJ6+cMLDhf10GvbYeilJais4DANuavC7IwbaYHL Y7+YiR3lrnD4dFPYS1SCaSwB9ysDFl8TDcMmRTXOdUVHigCgA4ggcfaZTlBsO3oMpFbIw91oecV wPrbJFWspN/TM7xZqivUqXw/uV0CDpbiEdlGBaX1Fm+d/Ymb+J2xJczlwvqIjZK+r2UUGrjX30w C0UIwdvlsjBqgUrA7UW3y94CN+Ci9byfkQXLriAQbMQzukPqlqDlmfwcvOpzPyy0mt62VbDGIS4 hZSAkumG0vbmDgb0CXOIkzRZVWu8ylts97879NQGwlrzelKNQNHrakCbmzO0VSCa3bqIhuYLK3L Blw1lU7FubI8Yg2pvyA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX+m2IyxqmFSZk wehn3/tVSArwDo40cEOEiaVDmCiA5vIP+QdiysEwlasLwgGxctC3c9MNRs/eXwBN3EIBkdA1eae Kqnzqd0unLIJREsavw3SGJs/At+sNUepAEI7dNVwIbWxnSnO02IX X-Proofpoint-ORIG-GUID: X0FJgQ-gteeITEGC3oEvS9VP9wclypVB X-Proofpoint-GUID: X0FJgQ-gteeITEGC3oEvS9VP9wclypVB X-Authority-Analysis: v=2.4 cv=HLrz0Itv c=1 sm=1 tr=0 ts=6a835dc7 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=c92rfblmAAAA:8 a=VwQbUJbxAAAA:8 a=W980AcPXFMIW1GselFUA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=10 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 bulkscore=10 lowpriorityscore=10 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 1f77aec8e960..d5a349daf4d0 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1482,27 +1482,28 @@ int ceph_submit_write(struct address_space *mapping, BUG_ON(len < ceph_fscrypt_page_offset(page) + thp_size(page) - offset); =20 if (!ceph_inc_osd_stopping_blocker(fsc->mdsc)) { - for (i =3D 0; i < folio_batch_count(&ceph_wbc->fbatch); i++) { - struct folio *folio =3D ceph_wbc->fbatch.folios[i]; - - if (!folio) - continue; - - page =3D &folio->page; - redirty_page_for_writepage(wbc, page); - unlock_page(page); - } - for (i =3D 0; i < ceph_wbc->locked_pages; i++) { - page =3D ceph_fscrypt_pagecache_page(ceph_wbc->pages[i]); + fscrypt_finalize_bounce_page(&ceph_wbc->pages[i]); + page =3D ceph_wbc->pages[i]; =20 - if (!page) - continue; + if (atomic_long_dec_return(&fsc->writeback_count) < + CONGESTION_OFF_THRESH(fsc->mount_options->congestion_kb)) + fsc->write_congested =3D false; =20 ceph_undo_wrbuffer_claim(inode, page_folio(page)); redirty_page_for_writepage(wbc, page); unlock_page(page); + put_page(page); + } + + 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; @@ -1736,8 +1737,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 Mon Sep 28 20:05:42 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 E02543655C4 for ; Mon, 17 Aug 2026 19:15: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=1786994125; cv=none; b=V6qUVMyrbSOsJEx4G7/Ohi4ucVWLI4+Fp9XLdA08nbBfJI52kDBGFN5xugOUD5nUqLCBGZfFFbiVK40qHtOXe/Dv91Px3PHBveMIHbI1ixWtBlTCmP00iM8KNhVsL2ytCVBDGGvn+Kc+V68avES4fEp73DqRTRJnK6J6P5Pac0M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994125; c=relaxed/simple; bh=O9Tsg2DIkPFDuC4WYkkc9VidXQakooPjbM/qwj4bX2c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AeO38UQbLmfpGy7nC6w7qmLo3HW1STGKljDM73J29s/eKFk7vSw9EOKu7/pVyKIT3B/hoVjDh0lWWhnzGOqtKFo407S7WcxX6I3uhNlnYu1OGTQkvgRhENODJp5b3n4Ov64kQeZ/DGooZzz7392T9VsNyPSh02kyfO1/t2N9w5Q= 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=Yq/lpFdX; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=Cyr5OLD0; 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="Yq/lpFdX"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="Cyr5OLD0" Received: from pps.filterd (m0167073.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67HIvdAC3766559 for ; Mon, 17 Aug 2026 15:15: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=uS52 otnHr2tR2+z+5rHsosAozZEXrniXB9g7aN7M4kc=; b=Yq/lpFdXqUaFQ55y/cvY twJMhBIiYbKbykI5gtEAqvJgymqbZgRI51csQSJmHKmq6f0Hm2tAuq3J3+CZhnr7 YNGpEpY61YiVWnjhq7OXI4VuZDEDQdYw4+sTBqEgd/MeO3oX9QisFYZ0o87SQSrN UEmCGAiZGKIv5kSWOlY9k1Tk0yqApjzW4Oteetqj4li77Yp65tqtNR01hlnllYk8 UEtk+H5+ZXqsam73z01OYNRFfXqmpaNDfwlAQ935bfMF9S7qnk1sMtHPSL2YCswc l/WKybsXR++Ol+b/w17QlS+o9wgmfJSnbq82uPFsirfcfB6E0V5KSW5kr2Rmfx1c nA== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g481r85cq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:22 -0400 (EDT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-92e63df032bso27825585a.0 for ; Mon, 17 Aug 2026 12:15:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994122; x=1787598922; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=uS52otnHr2tR2+z+5rHsosAozZEXrniXB9g7aN7M4kc=; b=Cyr5OLD0mDuOw1zUsX55YgzluFaL498FQ9VKQyVfAsAle8MGpUlk9jJJvGd3DP6o73 /sgjqwkm/u8WcSo/NI9HmvXS6dZ4QonXZCRaKR8ZXBkVZXZ8D6HThCTKeSxlrUIRRrS6 VrdaDNuiEfyril/e10TUzoP1Fi5DNjFtq8bUAKyE5s8N14n9JmsFn0khfr1RVbft05VJ BenpxwVpmQsQS/7hzQg0BDl1x1/WMG45spNBB1prxUGKaAmpOYml3iAFYJRG/XlvaCNw 5vT5h6FOs6JMwsdAzRYcrntwI4xJnVMS0LQB/ITRaamdifDgn1rkKylf3FaaM9a76UgW /R6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994122; x=1787598922; 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=uS52otnHr2tR2+z+5rHsosAozZEXrniXB9g7aN7M4kc=; b=YC59bvxQxRa4GF+w0DAOW7Pr15//x7Iy3eV4sYHCObva906AVydZ5AakXq0vvdvsbR Q7fdjxs9l1+Lhd/ZQhdaZUK5FvrF1szSKNkXWxlbm+8IGETYIP03PqDW4+w5mg06kI8O TOBVFmtqNUrJpFMkXIr++WyrTmZMXm53mBn1DuBW1KhynDxbnEiA+3Ij7gLKKVj5Sbk6 mq9NIajBQbGEBWFlNBhEJ23V9CD/71RfDpC+MSuoN4ZdFGt4uVQXZOpxjvkoS9feUmYX 5/Sqinq4FbIWCzQ4Wm91i4D6tVBrvgVxwbBuvfYZmc7VlHC2pnUpHyV4qzp8opVcrxdJ m2/w== X-Forwarded-Encrypted: i=1; AHgh+RpKN2loA0jXAPGF+ll7xjqTG5WwHr7QCWMnRDqB9mX8LRG3iJUSxPwQxTz/vn7SQTq4x+yB3qnnGXx6m6A=@vger.kernel.org X-Gm-Message-State: AOJu0YzlfRixJVKBwGYUXf7r2dbMe8wVtTYZbIy3Eexp725V1i7Y31Kw CBZIHY1rKJG9R3oLYPZ8eICFLxy6gDV2j0zWpMxDojSC17UV7Vefq0dw3g/s2NJCs7cwsGBJh5H /H981CuTtOEzLnykGxTeoO2I6xNDgGq5rZpuLwEvWH2V4ZXzNQNKJdT6fq1RI5IjEuhkEVQ== X-Gm-Gg: AR+sD11hnhQpK4KdrBnIXgMnDwrdMaYbQrPRfFlbWji20pPN0JGtCtbntCaUZPrEoVo SDXx8JrZOy8toc24Cg3hPOWv/Z1BV3mL3MrR5sDRcVjRr37SrMbmnUD+45tDrPdq+rpbaulR0Ta /VSRc1OPkcVPjNMeUNq2JJZaNpnuRla45IZ0QrVQBdTW1KVTCNgP9/kI5NrjQ7xHluLCXO8bBYk S26++L3L04HQZ2A5mpkBG5710Qc/1SXAqbY5b+95UtmqMjeEBJv/L6o3fh4DCCiOMZ56hqCdqdv 5A8D7FG9dG2VfUBbq6QyGmx8w402Dot1xoXEtEeh1lZnpk925a4Mnr1ToPBDQTsFi1wuhIyMvq/ dxY7rbFQQ X-Received: by 2002:a05:620a:990:b0:930:9cbc:7121 with SMTP id af79cd13be357-9370652b374mr113513785a.3.1786994122240; Mon, 17 Aug 2026 12:15:22 -0700 (PDT) X-Received: by 2002:a05:620a:990:b0:930:9cbc:7121 with SMTP id af79cd13be357-9370652b374mr113506985a.3.1786994121673; Mon, 17 Aug 2026 12:15:21 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:20 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:18 -0400 Subject: [PATCH v4 02/10] ceph: wait for pending fscache write in write_folio_nounlock() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-2-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman , Sashiko X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=2448; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=O9Tsg2DIkPFDuC4WYkkc9VidXQakooPjbM/qwj4bX2c=; b=5KjgFa4rHDDNlNqr+ukt0N/yZwdNnaIHVZ5dUE/zMfXBKfQved4VywnPj/KcWF7B96dD2zhN4 DZ9pOPzoGwYAjgco9ug4gnjGQ+YsGH5kko0oyjpSRbqsGnH5dvb0sGf X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX7S+vZY3scW1l /6BYFaez7TN/l6eWpE5fIgNSWW/+9zYN8afzaZ0OPSFH4NIbY2lhzWaszBubB9dPtQxnKBOLUB9 wo+0jMHOv5b8ssnvyzM2z7HyGt4mME4sSwg1FnCSLwMg1TEBrDgcYhujFvDcvT6oULOBkAtiT61 zeSYksZ/VP2RdVC3bh2aMOe5RFQ6jsZEfEPqs6hzdnz9Y7ap2+2JjlIQuIRxpiDOHAUP+X8xYoJ CGB6itwn7PFewRc8I+fT+WCBtx7XhkKuSS5uHzObZj5vBeT5YT7lYxQFG/iNGDvDnRX2yqDC6k0 HK96zjv8/bZeDHmv1pz4iDKnDeJezhLv6ZwetDhK/OtzICtrSKeShjUStjXrLuH2rscDnKW65Q8 RyF7DcXHLnTcZ+TpKjO1JU21pegEbLDXc9mS6O8N2/+4KLh1H4CvPq6c/PIeDW8PX2aWlIwh/PA aA57MZPBqdu/vbR4RwQ== X-Authority-Analysis: v=2.4 cv=PKw/P/qC c=1 sm=1 tr=0 ts=6a835dca cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=jHxIr1HyPKZ_Q5_91PL3:22 a=c92rfblmAAAA:8 a=VwQbUJbxAAAA:8 a=zYp62tllrndxtlEyWVMA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-ORIG-GUID: 66xT3NIGrM50nqGPX1_3slgE93eQvkdp X-Proofpoint-GUID: 66xT3NIGrM50nqGPX1_3slgE93eQvkdp X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX/lOS4Ld8gA8w gA7Lp3tU2dQmFBZDL5V933qFjA3fpWcEHDOKM/+iXjNRMxLpDPX84WDNmN1ry7m6Y27uhs3vTCQ RExgrNMpQstIlxk1d3Tpa359yaNKS065yG1XLtEyoHcl7byE8D5B X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=10 phishscore=0 clxscore=1015 adultscore=0 bulkscore=10 lowpriorityscore=10 suspectscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 write_folio_nounlock() marks the folio with PG_private_2 via ceph_set_page_fscache() and starts an async write to the cache via ceph_fscache_write_to_cache(). PG_private_2 is only cleared once that write completes. If the OSD write fails, the error paths return without waiting for the cache write. On retry, ceph_find_incompatible() would wait for writeback, but not for PG_private_2, before calling write_folio_nounlock() again, which would trip the VM_BUG_ON_FOLIO() in folio_start_private_2(). Wait for any pending cache write before starting writeback on the folio. Do so before bumping the writeback congestion count and allocating the possibly mempool-backed OSD request, so that a thread sleeping on the cache I/O does not hold either while it waits. Add ceph_folio_wait_fscache(), a wrapper for folio_wait_private_2(), and use it. Fixes: 1702e7973410 ("ceph: add fscache writeback support") Reported-by: Sashiko Link: https://sashiko.dev/#/patchset/20260804-remove-wait-on-page-writeback= -v2-0-81f0ab065284%40columbia.edu?part=3D7 Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index d5a349daf4d0..f1f4caa8f9df 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) { } @@ -783,6 +792,9 @@ static int write_folio_nounlock(struct folio *folio, ceph_vinop(inode), folio, folio->index, page_off, wlen, snapc, snapc->seq); =20 + /* wait for a cache write left pending by a previously failed attempt */ + ceph_folio_wait_fscache(folio); + if (atomic_long_inc_return(&fsc->writeback_count) > CONGESTION_ON_THRESH(fsc->mount_options->congestion_kb)) fsc->write_congested =3D true; --=20 2.39.5 From nobody Mon Sep 28 20:05:42 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 4A77442A141 for ; Mon, 17 Aug 2026 19:15:28 +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=1786994130; cv=none; b=KyJ2qvVvngwmK/Ad/4fsT2E2lXPcu5f9So17OCZnlm5riua/mNz8WlMVxyn0vIL6DGoiiuHE0SQdWIK7YaFuShbWeKASu705qSrkGM1/TF3LpVOgJTqhNMnXus0DqZWwuR5LPsh2u2vCSvyryOa9sh0kBsVzam/KRvuVsOyYzgQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994130; c=relaxed/simple; bh=r7cObkaVqRRIL+wdtu2/yPB7QQoopFCx7t+aV7SgOc8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GV0EPbwN6Eg2vpawYUcLjb1s6dIpZhSk/tqFOywdBpj+6MJiXBTuwsqm4qldCDgFoKmBPw/tRste7XaGVNEJy/ONJLgX+1NM0MIV1tpT7gdxpuupEOpMkeBj6IV7Hr4IJ7LvhJNcnmDEcrfBoTX9Cxc93BSjGlDD2+3pqWu7Sw8= 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=N12JWwrf; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=Axo4APgi; 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="N12JWwrf"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="Axo4APgi" 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 67HIZCtB3617976 for ; Mon, 17 Aug 2026 15:15:27 -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=Fr/Q NEus+gmPbGxGS6P4kCT2ytKtU2/npzD38c26G7M=; b=N12JWwrfNxhrI6dS50j8 yaF/X8kkPkIb3jI/CTI8yAsr8/Do3b8Kl2+S1Iug9aK11uLpGQFWgW482DZfvdOJ eCQJnMuDFbXCyXrl34NCRbGdk3y/t8qB7DoHYFJcaIJwx/n6IAyizBe4vHqEHAwv JyYRlJ1pX05m4RhBZm4nRqNuKJNnq3opWqAA23rL5srK2nLHVPZyn80At19GbEy5 y88n+HlVzbB5Ai7kUwjyuNCrg+GIuVwCprksf6xRjsALEPqR7d0+pQ8t7YT3lic7 2xkozZgnRP8GSuinJNgmtgSIBhJNaarNa6n92UuU2OHb70TCdKdVo6Mra3WvMlJk kQ== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g3kbte2mp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:27 -0400 (EDT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-9308eafb465so623818485a.2 for ; Mon, 17 Aug 2026 12:15:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994126; x=1787598926; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Fr/QNEus+gmPbGxGS6P4kCT2ytKtU2/npzD38c26G7M=; b=Axo4APgieOoz8uF/3mrdvYHz2rXW3B+TroegwZzx6T7g7gL1wVhZXUUEHx9c2bMvOZ JvZEXTw3NTQmOAI4/plxVq1u3JqjuO1vivgr/0HByCO7sj4QDVMgTQhG728GWErbRqJp KesCaSua/C94JHSF9HP6/Eq2EFNvMRTM2m2/q5g8mGz2Xn+wcpqoaUBacAEieuNUWFx5 y6wRvYlUsDR+B4iT3aJ7zBrw9Qbcy1pbhlSQhS5uBbn7nSfOcyyo7/JXTwkE8UlblJ3h 1Yz9ha0u39tcSqyyEGrjpSr3r0/eXKRSejEOWwJjs1TXoPxSvxwBQ58ZVP/aGT/suIKc BLIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994126; x=1787598926; 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=Fr/QNEus+gmPbGxGS6P4kCT2ytKtU2/npzD38c26G7M=; b=jIUBNxs74tQeEnYkrjDymR6y2/yUky4F/7hKZrjGTwhXNinnMtSkyfwfN91gx3ecfE jCS2Dx3W38dKczgbSaGjzvSYCXWzl26zNSKcC4tysgm2vuvJS8YYIS+c1Kn2XxpqMbZ6 NuFd3wLIzmaTPsFv6zq0f0owR1bFeb1kvQm54dFLFEptpoGONp4KzpbQHK1O/C33EWbO oJRp5VRyuXtc4WTVPJMyiqwPMItRPcZ10S1/nWTAUq0SM/Mzhril80QBzdxgJyAYmfwy 5JDpxoXOhNeS6WOVnQDmBXnXTmw/Qt7y6FX7UjPmek3EtyZI/m7evDHDgLE9EO83OzEd mamA== X-Forwarded-Encrypted: i=1; AHgh+RrMGv+Al1mA1kEvd0E/tjeI3ybzug0NeWRMY994uM0EXgtMiY8wRGeXGciu3srpThovrBBRqEc2xcfoq9Y=@vger.kernel.org X-Gm-Message-State: AOJu0Yyb39fw+sTWvmzzMmhNSwNSNGKSwn9RX5Qjff7gFcFSJQJB3hkJ AWHYJQVcmdS8CfEMMs0ocDl9IMoxot/lr9qTzzbAJyqzFZHXBxS7VO77mc48UnT5us+3BgjNSbn 5+z3rRqaCjirM0ZgX/Ls7Lbi0NyBWi0t0E0AhRpC0DhGHuzFs7egKkBeHHcJvg68gN0irkg== X-Gm-Gg: AR+sD11+Fu1WiM8Bc9S2AahNVhO6OXa9gZY3YRnddcvoTZJrZbLOTknOM/0RyNFvy4m 0oQfAD8Y8QI9hfK2BNwIQbw7TVJSaltEUwTGhply/vC9tpfhAhEQEz2CaDsp7ckKa8jKaBOfvwv YXZuBq0BAO/4C27+fqqgAnzQbHyp81AT8uSTmUitu3Na8AQ/yq2rx5fsKM/QOYWxYSJfxlbG0As 4Mc0qRMbrJh0r9WnkBBKxMyP1rBYmwVmWODMVcs67eHgxQfcHV/u9N6303qizpnD0v9a1uIVcC+ jzfulirOuPvCXLlGLy1HnCkfoevfQvQE+JeUvvrWjeStZShkMLUZ9B6h60CyT9np2BcMXJ3xRRI /+2FG82VG X-Received: by 2002:a05:620a:7103:b0:92e:6122:130c with SMTP id af79cd13be357-936d236d3admr2634575985a.34.1786994126495; Mon, 17 Aug 2026 12:15:26 -0700 (PDT) X-Received: by 2002:a05:620a:7103:b0:92e:6122:130c with SMTP id af79cd13be357-936d236d3admr2634567785a.34.1786994125824; Mon, 17 Aug 2026 12:15:25 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:24 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:19 -0400 Subject: [PATCH v4 03/10] ceph: add ceph_folio_snap_context() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-3-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=2021; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=r7cObkaVqRRIL+wdtu2/yPB7QQoopFCx7t+aV7SgOc8=; b=qvfXwcd+71pgd5Ui7KZL0V6VYseBVVLGWlAU21ogyGiBVWB5xn3TcbFuBch3EiRGKffdXoJqp qihhI5u3EaDCzyrd6mNyEW6fAIUjT6G9CShNL571mtRopekHEAuEa5z X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-ORIG-GUID: Ri58zUVFY9_USbpMwa9BS1SXjeyKw2pw X-Authority-Analysis: v=2.4 cv=McdcfZ/f c=1 sm=1 tr=0 ts=6a835dcf cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=JfrnYn6hAAAA:8 a=Ikd4Dj_1AAAA:8 a=bg0B0yAPDd754FioS-UA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfXyq/58fI0FeUP Ly1XWg9Vtn9EORSm8uV8jIhtc27cCRbf3JF6veYnRECTwWEZW3zWDdP8620AeiNZgdlvUoO1Lak u6xO2+jvDPN/z6JWxClT4P0jAL/KFv6xkB+cxPQSeUEez0RyzUpt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX7RJVD7ICF4Vt qIjkuAD093CGEtpmBc5DxSircoy42kzbftYmM1uFNnepPnCcpX0pXPOFUgGpV12wCJo36KOMyFx HcXi76NeFJms5lywrG/UVYfxGMjCpsJrBwNRomUA8glQcAu3yqS6pCXGmbZi5XX8QYnQ8NQ4Flk /A7oNuhePCj8QBJif0wc9iZ06yOTcYdsM4jaHxS8wWdTFIev3tJgYm9lTCvitAqvE4fzaP4U3QR dSrMbrnejpRo5fPCPuWp2tfGAUfINgzIsdeBccmrXE3PUMzMcN5XQkTAeYdFxzTN0xquTkgdrHc EW3aytK1rqgPRdoHAKu9Q6ZuHZZz9KH7IRQkzQUDAjHzp5HkLmq6Hdx1T9y3ynpY6hFp7HXRZYi myQCEKKyUxb0dU26F3qbNYnUfNDPHiaCqr1hwch+toZl1W/7ypJdBQrui62MFIsQIXvLuJjaUd1 bBMGrq36ZGqs90A6f2Q== X-Proofpoint-GUID: Ri58zUVFY9_USbpMwa9BS1SXjeyKw2pw X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=10 lowpriorityscore=10 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 f1f4caa8f9df..60955060dd1b 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, @@ -1851,7 +1857,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 Mon Sep 28 20:05:42 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 27CAC3B19CF for ; Mon, 17 Aug 2026 19:15:33 +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=1786994136; cv=none; b=rCiischCLC52uPy58R3jypz8+DG0EXOaXFUHVbVG2nWIFE5X+huMjNUyowlYEXYx74vqsaraUhqqK0gwQWWjDXksiWnew4mWp1GDXP3c+4MEjUoMMcQZXvmxZ+uD8mEpDUH5KNxw7XR/qDje0geGmog7g9Aql4lW9Fg0jYEUc/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994136; c=relaxed/simple; bh=CtACIxblCkTU4GIVsMywndtlFj4/darbY31uUhcppE0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Y/+UcSQrMEfgzTn+Xp6rNU25NWDD6bxRXCq6yuH9v/Gbi7JT1R87citCQhcWqmn+OexQ0OxugbNjTG/9FcVjPU4C7rbjwHjct/IJszqjHsyF6t2IYULukoxqsgB0UhDgXE2+wqKX+eo6Y6y9et9mf/WYEZ+YIsBiZL9wCMY181w= 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=Mpbf+hhx; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=xlglK4Ht; 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="Mpbf+hhx"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="xlglK4Ht" 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 67HIYwAQ4004791 for ; Mon, 17 Aug 2026 15:15:31 -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=AIiE lFGXP+TJuv/wEXsiRAFNhkPhkbHdub17m4BLpvA=; b=Mpbf+hhxQOXecHMI5xg1 yNQXNUCmCIeUEA5Z1GBHaN+77T3R+M4MSMfiXf88p782FXBku4ajZGvErbxUmLIp MCDiwx/pgOW+u7jddimLk20iZGmBZQqFxZ5JdkOm/INw7222tmMehpb5JMc5Xmwb PiUflXIIHDyvRwBnJCeU7MxgblcpifMs6vaeXYqolMIBihMCxS8vyNAzb3RTyos9 CgP0BlpWx+ArAm5aZ6i5Kim/rN4pvmSaB74UKIyboxUyXhD/jAxTTHCOEF4PGzrW hc8nQogU/PmRHw2qkSssBDVnERslfvwTZsWnpm2LUIZw/6cpKa66sotnUMtFoSjZ Kw== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g43e0ancw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:30 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-936d067836eso391541585a.0 for ; Mon, 17 Aug 2026 12:15:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994130; x=1787598930; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=AIiElFGXP+TJuv/wEXsiRAFNhkPhkbHdub17m4BLpvA=; b=xlglK4HtKwbyqts5tX8OVGFPgAY7mXL79PWTHWtYoD/qBtaCi2CcpUCEl+Rfaiqe8w uqoifhXnfacBUKhrQbMEgWm9PcvVLbR0zZzSC+f3fZjEvxLBOEoAKcg4TIIcUuwV1qQj o7ujvGheogaNKQ0CS/ZatunLYJ2ritzTclR+5+Vdfiptu40AOxIe4huxA3sC7rPXnq2A DbSNGM9MUaiEXgT6dYj3KoOa+gJLH6GvWzyD0dq8YTFmP5uKTLssPpIhEutY0KO2ctB2 46EIi1szra11VwoDWbuZrXvNjquKJZ3mJBlmRnonKhi24mwqlvzjw9dhu9O+2mMRE19d vAuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994130; x=1787598930; 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=AIiElFGXP+TJuv/wEXsiRAFNhkPhkbHdub17m4BLpvA=; b=gvmY2xng6h9xDACbWZri9O27m2hG7TuPkeZDwNqPjX2MdDfk2WxtOyanQZ1cYQKIO2 bAcHkl99w900BEsbA5x7IonBy3H/ZC/cEJduB2i4rE/YYDZobpiWVPc3dkh/KMLIr9n+ A9MSWeEhibN7HWHZVVdWpX78iRajY/sTAxW34JdOJAHQTvEjfAbvRxVDSdpa3qrO2e+F rAdqUNUlidETWgt58d3chumyPGYJ94Nxz+gDMfY1++b+lNVqlDz9pNX1kyCgR1JQasyR 0bDcxsHk6UiVONI5CptNQpVFom4VeR4TR0ghBkI9LHO7H56i/KaZNHCfsIB4Jpis7cLj 1qTA== X-Forwarded-Encrypted: i=1; AHgh+RrKmIEcTseQ98dsUPtYV1/VO6hA5eg2hJ2ue+To8fn0y4k3AIYVGoqh247c/b6U8Sf5/wn/jJh1ojOxx1k=@vger.kernel.org X-Gm-Message-State: AOJu0YxrpC24FmEOwEM5VMorhTs7JyVIbMZ/DsM48vfG9t1ipHXxds/w KkVFSpXQMzQdS+umAG7A3afFRPjXNpBoNWwiQChez2uyvlDfBbm3yXz4cS3zf+5XhEOdGXjwb+R sLCEt1LrFsNHKUM0UtxsUhddEtNVAI12+7M2crE4W4nq+BHxfjl9wARRdRWimNGziPxedLg== X-Gm-Gg: AR+sD10410YXIK6reUts0QWeqxF8N8itHNHFrqHMrm1GR/VL/Gf0kCbWUK40qwjH3tr rkHC1vA+V11Zri7gbsFc1Qqq6K+V6R4Up17FRknc3akdArKGAAZxOq2nxdomKCi+KaY70Wa4DF6 2RO3fe2ahHM0T3p7iX3ANPlHxQ1ZuZR5+eGd/qw3UNeeEjnxenNgIKyfmGilZG4Q5qNL7rtgaEk tXPTrsueibeqvgmoyz/iPlQQ1KxHLyBXxXsN+Xria1Idy/Jd0roFBITUMIMIMgzFh6BYguXq5zK peFfBMmKazxnaZiE4zZxq3n9CumEh6Oso+V7Ojv5PPhkyEJyXBEfIf4y1X6IqmKMhvgZXzqieFR HgNKhxgII X-Received: by 2002:a05:620a:480e:b0:915:e9c3:f1a0 with SMTP id af79cd13be357-936d22840f5mr2649155185a.12.1786994130018; Mon, 17 Aug 2026 12:15:30 -0700 (PDT) X-Received: by 2002:a05:620a:480e:b0:915:e9c3:f1a0 with SMTP id af79cd13be357-936d22840f5mr2649148185a.12.1786994129555; Mon, 17 Aug 2026 12:15:29 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:28 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:20 -0400 Subject: [PATCH v4 04/10] ceph: convert ceph_wait_until_current_writes_complete() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-4-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=1518; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=CtACIxblCkTU4GIVsMywndtlFj4/darbY31uUhcppE0=; b=nIMGKfsxXx6M6GzoWM4iYtnVdPx9NR0aDw+bCSaFBNWhD63LVG3atj+/qqu8/Yz6tEBDnGsoN 1ecdxtRxUCeCpDtJIU1agCfCHEGVsNVlqr48rrktcXV72oraquBe8/y X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX4u9oihl4GmSh +UZOeh1+u37uxd6IWuPIwEU1bB5DWV/VKjQQ9nIccCf6fzQZqIgm2Gn+UgecllQKG6q4PFZzn/1 VenJNnrMneZQ30sXr1ckDoWTqxVififtalWXg8tVcMIoY9lqKfMBulC6ifzx9/PyYMz26WD0Mqr ZKKl2Jm1taXabbS7aKlZQcODz7W2qMjogHatdf98bcJkJl0kr6pYEBI2DU80ROsKYmX6bmX0x9x IwwsWXHIS2z202vEp7YCD2NWQ4GR2Ugm49+OQEeM+rj5IhhfAzFcCkU0nVdFo/o5GdAZQAxyQcA RcczE1eSgabdDGwVTulaCsStO+VGjoiXLFPm0QXnMf5JcPWzMRd9qmsb3pIvBNo8xtppLWV/F5t LWxRZnUCREq4iYc+xgTC9wl/V3yQZKgAoeLoR3BBqSiiT499Pt2nTvC4RRUjcjCpXaL7q/swMUu 5W9vHNLvgg/hHaVuiPA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX2UfkkSfnv0uY a16QVSYub3DtfATFcm0pJRHnSLP753LkNkHAJuOeVjLSRZsg1Gcu2TA8KhSWXg4LbvrKCv4BxBD ai16tLDeItLulmES2K2Pfu9mZJiTt7fReQNJK9EXLAElOd8Z8L/6 X-Proofpoint-ORIG-GUID: TC3wdwIxwEEqWkkYtnTPsREItN0DE-DZ X-Proofpoint-GUID: TC3wdwIxwEEqWkkYtnTPsREItN0DE-DZ X-Authority-Analysis: v=2.4 cv=HLrz0Itv c=1 sm=1 tr=0 ts=6a835dd2 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=JfrnYn6hAAAA:8 a=oBeIbaJldBQvbLH65vwA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=10 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 bulkscore=10 lowpriorityscore=10 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 60955060dd1b..5efc8c7c91df 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1648,7 +1648,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 && @@ -1663,10 +1663,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 Mon Sep 28 20:05:42 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 2EC413B2FD1 for ; Mon, 17 Aug 2026 19:15:35 +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=1786994140; cv=none; b=vCIHfXXeaYGsrauF1gcld6vAschLccWFgxgXVO3IoESg5t+kPYNvwkBUJAdUxqOWtWeu/+CBhhyDs7CxPJe/8UGwZpfyc5aOQ55iNZP1xnKS6j2OOziF/I2I11PuAcSScyyPBskn+5ELrl63GkYkKhGYHuas48epMTkhZJR2lz0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994140; c=relaxed/simple; bh=CjGUfQGtk1hGuYgE8mlbsK87Dxg0IBB0DZ7ppRlE9ac=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bhew51MshE+VOstqNZ06YkIGgvdNQhuLgr2Ge+btQOhZX6S+rdIpwkraW8o94Uo9adrhmemWjzm9jAkKOalX5IrhsTzNsNUS297weMvTE4zATxyH3keRI7vbZRz3W5Sl6F9WFujgoEipvwyoA0oMAFx8iXLXG/4RZflKMhyKjT4= 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=jULaqmw1; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=IksjeHHW; 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="jULaqmw1"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="IksjeHHW" Received: from pps.filterd (m0167073.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67HIvhae3766647 for ; Mon, 17 Aug 2026 15:15:34 -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=eDdl k+dJjpkXdKVusIRsLy1rhBsPVt11GNFJest4++I=; b=jULaqmw1ftBKn5QXmpnj YiVfI/c2EPl8LF/ilqtT5U4ebUDZoyQ9m/x6rkF0FswWW9VcKD0TJXKC9nYwbWe2 w0YMjjCWXDzWrXdnVthu5P0/gFRsYGlJRw3tju0fhP1O5glAky/2XBdauZD+HjwJ ZEMH/ITPKocDa2EdtJMZM1x8mJCOTexiUP85TrpEBqPA8eeXhaiCMM61MovySs6n SUip99AOgKo+k0/joqaEqvSjDL4mFrjt6yFDQrjYVL8iCkqGQ97YxK3dg51fiNGZ rxe7mKbjlo1FbFkhEqFm7FGituAitLn05MAM7veQUmqwVk/8j9xHgCc6QXmpHa6p Qg== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g481r85eu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:33 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-936aa34873bso343710885a.3 for ; Mon, 17 Aug 2026 12:15:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994133; x=1787598933; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=eDdlk+dJjpkXdKVusIRsLy1rhBsPVt11GNFJest4++I=; b=IksjeHHWFTZognWBZ99N4o09DYArPXhCN+E8Ks0UotIsmhgilHg4qpIml4YFIwZ4a7 /zW3xyhfecFeRr5Amu9vd9KsPhDbHWAdT0wa2wWAA4ZaCsQM+3kzZl/9ojk1Lj+hKao+ TfcRZ9c4v646Dh4HNl6e23UuTFtnXjFEQ0ok1FBp6AUK/Y814EpolGYG5J+4Ko+47Ou5 uwHFLS6sOkJyO5Wm5je9DaS3pSzM70ChXHZWQLiazqoL2+1QmdB9lkqMMYLbLyy4ELv+ xpWRvpdCVbSIuV8FIdWbNNi1ohk8kCfmqeLcfBFw/P7+UxSegVSGalyPUYvuZZtFcy3w NtVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994133; x=1787598933; 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=eDdlk+dJjpkXdKVusIRsLy1rhBsPVt11GNFJest4++I=; b=ofMF4vKNEi3gtzJrRe5nQ3GauKwScHsa92K43jobjHkTPGXjxERMS/1daql7GFtGT5 11QAs0d0NOIaPUZzRl82xR4pQ9wFJoNXLcXA6MzuBJEkkAQgh1C+kwSejLhpt3jxCg1u UbSQm47u/Pq25TZy1z/QlPuYBF8rQAkqIAOoEjQKiNLJUfHkh+YQl7Qaetg+1Eu9GZJS QlncWe0YNotnuH0SzGThyiCbfiQ6MPlMi0sx0L0v1gKQ4/DhGoL3+NjpoPDzYNyu1YYc 5l+o0BjIuULcEhJYeBk/hGL3myZsTkCBfZyzXY1uqGlwJavGgtF2i2dx1GH24yak+epc edHA== X-Forwarded-Encrypted: i=1; AHgh+Rr/hKqgMoEJtD4DSeDD/BXc0M9d1UpoO+WAr1Y8bEhDTKSWnAoxfqo1lfr/zYwp0XXf6e+zkGbtSzf1pns=@vger.kernel.org X-Gm-Message-State: AOJu0YxycSXV4flGwmr9OG+pQxDaM5XZHaz4HqkmLEFTKIejTTlQahsQ ttmdgkcnB9PmMowA2qHdbXLUnhJaRWO6empev40/OPZ66AirZLwrYrk9Fd2zucRomP8L4ARUa0Z yZyas71yLOTl+eATZOoosPuevScFnITPicb8TwymeAPV8aZXOM8c0jbg1SQ+o45/vNI4tZg== X-Gm-Gg: AR+sD12E8hOhYk/qGwsobN0cP52IpZ/GDbUwlaVKlsgu6NXZTMz6SyplijPRkvdyw6O j0vwovX9a5qRdUnWxOzC8NKVesSoE2kswBHt9DsnLyGEIiIowmxPPFWLw13+3k42My0wQfQM4Uy bnvDOQH/k2RviDkq2aLJDOTa/XgLiYf6egfd/oB5bMZlTpmwijw4Z7WwUW+q1oYF9B8z/VNU1aX ACGOoADVdHS+3+LyNFoloS+jlFKVOZu61HmaofwaD/Xy1sbNGCpbI5wSMeNN0hHUEeL0R2u8ib6 XvA5j1hOy5mcbSE2Hg3tVZqXnhmM5ubkNc2GNers0hULlb9F8CfZknkUTIlLHYJvSOo5q1Z8Zjk dMs24K1TE X-Received: by 2002:a05:620a:5be8:b0:930:cb79:ee65 with SMTP id af79cd13be357-936d234d4f7mr2386077185a.30.1786994133411; Mon, 17 Aug 2026 12:15:33 -0700 (PDT) X-Received: by 2002:a05:620a:5be8:b0:930:cb79:ee65 with SMTP id af79cd13be357-936d234d4f7mr2386069385a.30.1786994132905; Mon, 17 Aug 2026 12:15:32 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:31 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:21 -0400 Subject: [PATCH v4 05/10] ceph: convert get_writepages_data_length() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-5-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=4666; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=CjGUfQGtk1hGuYgE8mlbsK87Dxg0IBB0DZ7ppRlE9ac=; b=KhVLTaoUXjCbc7TXQHxw+1ii0RoWMiuDhToT3bEe8ZCyATqgjx9FKeOWObd6DwkbPk0W2Em74 xPeOjr5sfrPDCr4NF4569Y0rF3FJkVx0J1j1f5Nmpgg1Ql8RB3Ffztx X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX1fxsRV5d4VFg 8cRCY248OajpI6ezzhrKQEAqFT/9NVWfr48yuPlh5i18QlSS8KVCL+SPU6OaeM5d3Wym+DRvBn1 GYFG9NmjbhKYrxUoWHNeIhOGVi8jeIMdwDYo8Yn0UygweFz+cjsCgb+ljwQFCFqdVxCZD3uiWfh NcWccJ26Rl/bkuTlr5bvrdGSeGSSlKEQXDOH/T7wim4OtBH360HK2NskF2NgPO1n9nLix9HCR2a zaPq/xgAiEVIHojEh8dsRh4vOWTPlISk8DaHfwDUCIftK7I8wGSzDtSA/yUittEf058datC2GSx fGIe9WrSBtwor9kpF/CvRINBbpOuP6fKSW3gCnz6Gv8CQaNIPvF4wYCQuAqo/2LpxYHGZFKifyr Uph/eSCWfY0NX9dh69HcGEjKhDcH+gUnJPYjkd8oDEF+Cvgi1FnL6NS0bGIDjTns2zzR49W5elG +T5HcQXzjMcBGc/4Zbg== X-Authority-Analysis: v=2.4 cv=PKw/P/qC c=1 sm=1 tr=0 ts=6a835dd5 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=jHxIr1HyPKZ_Q5_91PL3:22 a=4S3DF5rXG3rfafK4-1MA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-ORIG-GUID: nV4TO5VL537OuWmTYxtdWyUfqzzePghO X-Proofpoint-GUID: nV4TO5VL537OuWmTYxtdWyUfqzzePghO X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX32q1RmLPFIBu oqVjymLoL4VH9aPW45zVyK4c/69fr8IitpQmsL3BC/WV2JSvxNTCacRARBk+AG4pRY+RgUzc1O3 bfz/kQqkK1jV2+/q5+257ZjbFZtQCSeDrtOpe1x/TVKWC/Vton4s X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=10 phishscore=0 clxscore=1015 adultscore=0 bulkscore=10 lowpriorityscore=10 suspectscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 5efc8c7c91df..a34849374f65 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; } @@ -1589,7 +1582,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 Mon Sep 28 20:05:42 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 6E1D0423786 for ; Mon, 17 Aug 2026 19:15:38 +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=1786994140; cv=none; b=Kv60t0b4Jt4xW9v8sqbItbhvcJBMeovpWIz2dCx6Ag4DWM8Bny51tiC3KXp+vpcAkXhHQ6kTziQobi54X6+QgsD78X+5/CxIIJrK3ClkxjsKEAdkODrGUD/ylZTOF3si4F5tYwikvAqHThEY1CqHp61uIAahZHILpb3v+rUdr+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994140; c=relaxed/simple; bh=3Yr47TYe7cqBT8sK97KQzuLWu9tCzz5B2cD6geWhTi4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kN3/wAvgv0SBWUU5cyIh/dTP7vPtr3JmFfA5EQew69wFY34rlp1ZzKxxQz96nPWiaJ91HBCwxv8o6Nt88aaOZQeG74QW149SXQ1FPCfUd6Pg4srkmtRE9ukdySKRKlXY6q4pygtSlZLTHwYM/UF/iNjAaFbNJKD501ZC4rw1tPs= 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=lRg4L2ed; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=s4fObNcp; 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="lRg4L2ed"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="s4fObNcp" 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 67HIYwCB3664367 for ; Mon, 17 Aug 2026 15:15:37 -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=cv9x 6z4kwz6bNvCwiXVm4zgaYEgf+1gg2Ey2bAsoUhc=; b=lRg4L2ed+Jsa2qHswH63 KcodI3Hp8a4vPrVCD4k5YIU72t4hpEtRkrS4qasMfGjF3Mr4Sq0B7UE54JO9kkmS kAGoo3cloL+bXCOdDvpTRPS8BqjS4xLlI5o46K82KXQHVMk7yz/mkLZidYD1mqpl UxmIZQscOgNneKO6nlbvFMnTr3QpAEbABExwB6Pc87qYdC+VtKxYC7hUoDrSJLkd sXTg66q8bEllO8ycecl+3HJTG8o66q38vFjq60xj4k0l7/OFvfkiDOA6Kx4eQ1US 6NqyJ0pzPdJgXiUEC4WwIiF8pqrxknFDhszQQI0zDGFiZo5tKCe0ZvGIq0zmZDYO Aw== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g3mkfnqhs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:37 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e63df032bso27869285a.0 for ; Mon, 17 Aug 2026 12:15:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994137; x=1787598937; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=cv9x6z4kwz6bNvCwiXVm4zgaYEgf+1gg2Ey2bAsoUhc=; b=s4fObNcporOsOmyzwbnfWITzmy10mUhfEtV1auH0SSfiJo5DMSHoWISGRSUoRjLoTq aotGZ0ACtBr6phs9ZV36w935kdNNZosT0N1vMXDwa8+jpIoVLoo7WTRR8d93fwSghMc6 tyintB4icStbTOt0HBkZxY0ic06wGS5GxfSTSpot6PrI2JDIbvOZsttNXLFGCHagqaxq YXtZtbOePZVmNkEN4NJyc6PH/btXp02HKHgIN9eHOOM3/COG8nKeE4MYtRXd9tkGw2Uq lZpy6bS5X6ZM7buKBOpH0T3vhw8w0ZvXHXQn3YncYmRx1DR2XlZFDuNgy0EL3bzD/O4p Wd6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994137; x=1787598937; 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=cv9x6z4kwz6bNvCwiXVm4zgaYEgf+1gg2Ey2bAsoUhc=; b=mc1sQsIzym1tcjfhufqnIXLyymEEZ6WMjQ6hoiIXjH0mX+UPjHXqEBWON1NZbiwI5G KSzaCD5eRIulKqHfDf0T2yxZWQ6GpKYZWw6Lpxl/XWr71Ou55hKHTbAz9nrluyxAn0YV KLQE8LhKa+9kZoMpVjWAViYtqlE5YPbIctO6UwKMRrzJfRkPBDMnQe5aAXWZ07DQgN/g EcCk3T8UkWKau3SCZrbw0ld3haTpaEaWEWPmiZWmP7H9+yu06zg+7BEM1tu/lHpVCdfW 2ym7+6vmeMvxrIWXD1AgZBILkKog3EdCLmsn25E09Xrm6paOdWpCntlz9t9G/Pz//ymC ZUig== X-Forwarded-Encrypted: i=1; AHgh+RpnxordoOYazubWSiqTDBm2yxmhQpzZsMQ62ruFUm7HlY/CnpC61WNMYGa5z8EzihfpCIRMxhHytLSQhHs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywjincr4lxo9Y3Iu7Gs5l7XNQHrPu2kwoXUE2nJYs82rtHQVV1m W7zYVxl88NazecHwQu0cpi9412uMh6LeTH8MwLitQ11Jd6BmXrG9VgBH+b6szzlrcgqL84NWp1i LbTJdJBnUt4SQAvNuvdriZH0DJZqi2NqYESwJ8Y8P0HYVfdkYPM0xOlLaLEf0uJSUWcZ4PQ== X-Gm-Gg: AR+sD132q50D0vxHxpmFod+uHxLCu0zfbu5CK8Hh/2RxB38EKizlYVHqB4v/O2oJdFL LM5kTsasfumPwEcoCsWplx3X+GU6Ce0jtGopfB7v/0DxhtiHDYBYG3OZ7sxyXJDJ4CSkMdNtwO/ ND54ke9oSNo0tFmLQ/fGIBdZk+2t7jeWXVPPZQeOCiXIrdOna7yq1WP3NKdikqhXa+iANgdjYZS SyDOrWf1W5eJpDSu4hM00br8qGO7+5uWrlkbQst+SmuZ+0fJO4iQAxMUnoOStLWdqUrK7htfQ/G OpySO8J8qfn6Vgts226N8k5HsDgisVxEPqc4FtOzpzfNugARHPah87utqh5bL4J4owGDAqnXAa0 uZrWuC1MJ X-Received: by 2002:a05:620a:2313:10b0:92b:6e09:b0d9 with SMTP id af79cd13be357-937066cb326mr126137485a.21.1786994136502; Mon, 17 Aug 2026 12:15:36 -0700 (PDT) X-Received: by 2002:a05:620a:2313:10b0:92b:6e09:b0d9 with SMTP id af79cd13be357-937066cb326mr126132185a.21.1786994136084; Mon, 17 Aug 2026 12:15:36 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:35 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:22 -0400 Subject: [PATCH v4 06/10] ceph: convert ceph_submit_write() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-6-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=4837; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=3Yr47TYe7cqBT8sK97KQzuLWu9tCzz5B2cD6geWhTi4=; b=HevgqnjCrhv7I6rtbygRfzOdftYjeffz3QrWztwIqA4nnzsdtsyhS4Vf1/OT/2/P9RAjsOas3 +udOFxtguS3AMtcBhXi8TgPRbonGiMlS/BouQqru1fUXtT3VoqirO/5 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfXwS07L7E7ODmL pzlSO1VOXt/jH4A9UxWlVyQuQ1jpsEokHTDvNu+xnP75s2dpyAY+53OucwAGq0ilrTd9PtP+rBw h8hn5oLMpvVoIpp4RkbphlpmqZpTiMUBAt0qVeOzoJLCJcFpazA5 X-Proofpoint-ORIG-GUID: ZvzIQ9McRkOI6-RvqA6pHm5jD_k2aG0c X-Proofpoint-GUID: ZvzIQ9McRkOI6-RvqA6pHm5jD_k2aG0c X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX11mRJTewbD4b m0KXAbQ/gOGUKeho8PVKBtn0SQXeHumyYO+uY+wNsm4V+n8amszvD+h0hNpJnJXGtsi1b99Kna/ 9Kj51+oXhEEY2XXatlnT2dAVFNQ6UvHPJuG3RThwDPLMyWdZqpPkUUt3RixPPEuD8FjpaiS39X5 x6kFIY/GMRk07GDekdWnRSPlfyMgqEAHR1oMtOtU8hM2pwVRn8euc/kj/AUZUkuBcuCEK3xsbSI 8AXxH5ZIw/cmSwVbTUD+15OpncTe+31klO1UjzR20iNqvHTsesztnbPJ4ujPS7DCavvc0PolDOP FNDX0ntc4dyhZc3Ro8KYd+G1gqEZoca6zA7mMjohGACXHX7vorwAX3Vjz3tPJiI6MlGVY8xB47B BVaWPSmTS71O0jKBXc7HhOvy7PvUMfy5QiYTfWwPtlsjZo2WEZGHKZUrIifIDDxur/H40hqFK+w uHs5AGIzEULTibEtkWw== X-Authority-Analysis: v=2.4 cv=C+vZDwP+ c=1 sm=1 tr=0 ts=6a835dd9 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=azVShVRs0zEubeQ0wG0L:22 a=RfODlEta0-z8xtihUo8A:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=10 impostorscore=10 priorityscore=1501 phishscore=0 bulkscore=10 clxscore=1015 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 Convert the request assembly loop and error path in ceph_submit_write() to folios. This drops ceph's uses of the set_page_writeback(), redirty_page_for_writepage(), and unlock_page() compatibility wrappers in the writeback submission path. Add ceph_folio_start_fscache(), a folio counterpart of ceph_set_page_fscache(). The remaining caller of the latter in write_folio_nounlock() will be converted separately. In total, this removes eight calls to compound_head() hidden in the page-based APIs and one explicit page_folio() call in ceph_undo_wrbuffer_claim()'s caller, while adding four explicit page_folio() calls. Note that get_writepages_data_length() must still be passed the possibly-bounce folio, not the unwrapped pagecache folio, as it checks fscrypt_is_bounce_folio() to round encrypted lengths up to the fscrypt block size. No functional change. Signed-off-by: Tal Zussman --- fs/ceph/addr.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index a34849374f65..2d89d3d51bf1 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) { } @@ -1458,14 +1467,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, @@ -1489,22 +1498,22 @@ 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 - ceph_undo_wrbuffer_claim(inode, page_folio(page)); - redirty_page_for_writepage(wbc, page); - unlock_page(page); - put_page(page); + ceph_undo_wrbuffer_claim(inode, folio); + folio_redirty_for_writepage(wbc, folio); + folio_unlock(folio); + folio_put(folio); } =20 if (ceph_wbc->from_pool) { @@ -1530,8 +1539,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 @@ -1564,12 +1573,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); @@ -1580,7 +1589,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 Mon Sep 28 20:05:43 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 9BFAB3B2FD9 for ; Mon, 17 Aug 2026 19:15:43 +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=1786994146; cv=none; b=A3ne3KOGLiHoQhDcQDL3tBaYzMr7uQy1B7HET2o//2A7Q4xg9y8ySjqZ3FnpCDB6cKOkfSfU7so2AhihT0lq9by1IoYFGSYCIQZsqyJjfiko1DSj4d3E/JlFPkbQVFPWSP5rY9dua4U+l6t+r8sFGbL04Ahu68R4LJTkjIMIuM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994146; c=relaxed/simple; bh=Py9gUMYDLXU7l1TUEJ0L6HzvJXCNw6ptCakw/+crsQc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IC9fK/99ipYkn+JN5RwZHDy3zrCBjYbd5S528LTrQX+thIrN0FykEIlJGqdcQSY41dnPyM34QIw/M/zGB1BJHtcNaQFi/IbxvsI08SZUl7Sxu7pgeuXCMplKUfBRhtK/8zDgymxWm9RwgcJwapIKGMTbQVgP8oAkdZ/qWTO1Gnk= 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=aQ2iaOWu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=MWQUkMAJ; 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="aQ2iaOWu"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="MWQUkMAJ" 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 67HIYqxd3617440 for ; Mon, 17 Aug 2026 15:15:40 -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=GWf7 W7btzDJ2DedURkbQJEOrdsj9qNB2OmbEzhz1xwo=; b=aQ2iaOWu/u9y5uDpTyJk mg63Q43oqYRBLEtM3bWQdOMGQBnMy/ewC6GuzPhp4gssH294S97auQcmFiFDjGWv I6MHFNLOkvfeRi8xBXTzbgU+S34m96INXoYVTJtqIKpvMFbqELHEM04yUPhHn1Q8 A/R4xZyBdvl6tzrqDd89Hj83LJSAckC08fdZ5KW6RxoY9mzgRGhGQwLbdKqmyJY+ kOvaQsdXalqU5ECHyfxCLy45SrMcZe7hLbtkcYQhaKSUcMWsaH/u09BAgjlxxAi0 0GJxkbF08m7yAvyuL0AA7bPuGZW8+sL5md58v10GAM/+CcXWDe/BZAmvvr/kehSY pA== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g3kbte2qq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:40 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-936a796a23aso325974785a.2 for ; Mon, 17 Aug 2026 12:15:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994139; x=1787598939; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=GWf7W7btzDJ2DedURkbQJEOrdsj9qNB2OmbEzhz1xwo=; b=MWQUkMAJwL7Tixx9u/cxj5qMp5LaHyRU3lCP8L4Up5tq7KabnAodNe0Od7LGL8W+ge 2Imn8CQ2KaC7fVc5MaaZsuT70zZZ8YMhPpi2Y4UnFrRTmQFBQbFXDMe/HwmrLpOf88My q9QIiHo5KFxrIolEwdeCiPegbtUg19eQVqiDxraWPwoD8NtXC3Ain3Ir7vfh352atYyy Gl7R4LaimNrKIaI2yZY5osCNS6OZBYuynqLYnowkpvHeYfWwySt1ROGatj5x8uJcMtw+ Cxnj3IpDLfjLiiv0HUq5lHWsD3vlFKTcogm0ySk8malQdPSOpGFyq6lVQpT4jg875a0E 9hCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994139; x=1787598939; 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=GWf7W7btzDJ2DedURkbQJEOrdsj9qNB2OmbEzhz1xwo=; b=R17L4HtHIXnOVyguB1bKu1vwY3WcQokOUMR6I/annbhXPo46snytz0VZY9pd7BtVaI 2H6oeDCDbzY/csejZncQ6QcP2h6ALEt+KkhSbsPy3hoUDqX+NAwnMi8a5ZgadD0gzJ/e YxaNirrHXMxzWuDLdzHKHxRPG5IOxgnrrEWLV27kbMdXcLLnAPsbhIiM79HaFxZIx4GR D/KXxfFx4VQUKfebkmPX9h2PgkvUAZlP1L8WdTFo5Ismm4AWV1BWG7uREegBKgK8wxvn jhXiSClZInMI5iLsGNY8DjfS8LFcCO5PBst6Ad4LemjDQEECOfAXTf73pOQS3oui9rma 4CMg== X-Forwarded-Encrypted: i=1; AHgh+RrHxJSkCWPp573LOuO145hqSVEE+aFdoKSPlTFET8I+TOjJutFP1iCqjlWmv7o424xISUTJ1agRcoY31Yw=@vger.kernel.org X-Gm-Message-State: AOJu0YxyUI1ByBe4pt4ho5ws8wfSEqqWbU21IKc8B2uuo6Q4vxsUQg2x 4WqtJ4JxQSvnGHUwGJ9+obfsfPgdCX13C4teWH9IKu/G4eIK/9Uws+WjEJorQwEE2d9HirvC/88 nqOTX5WqYqYP+I445Sg9pQtARJjuNCaPKpVF3wit1vf1Q1l0QB1JFzeBpVrwBhJOPoy9EjQ== X-Gm-Gg: AR+sD1248q9vHia0q4ANdHWkUv7039qBwqHBrj4F+bkDji3OvbvcUdLJPfx81B24lsO sK9H/S660MF9tLbK1GLBt0JzwsMY4zL7MixChZ4fUz4hXi7cCe2PFVQR7Qi6LppuNjj1iHpni9d qMlMidJxbwisuWtR3m0mBJMv9D7sI+9OnX1i+56OlwYQBDii/d4jmu3jCiRV7M3KPseFLwPwV26 8hqamcScRfPDr4ZRwWfLyZ0uCdVJ+z7tqSeos2XAzhFHHGfe8AshWm7ArPetlOSsfrexGRsDaPZ cbp5ZL/PRRhSNsQMFd4dLxQb26xh6UaiwYeHoM1ElqIuHhg2WU/yE1v0IFyfJvyUa5VwjsEuyGx 8OdXfGX03 X-Received: by 2002:a05:620a:a18a:20b0:936:31c9:6c57 with SMTP id af79cd13be357-936d2145af8mr2163068185a.7.1786994139714; Mon, 17 Aug 2026 12:15:39 -0700 (PDT) X-Received: by 2002:a05:620a:a18a:20b0:936:31c9:6c57 with SMTP id af79cd13be357-936d2145af8mr2163060885a.7.1786994139218; Mon, 17 Aug 2026 12:15:39 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:38 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:23 -0400 Subject: [PATCH v4 07/10] ceph: remove page remnants from write_folio_nounlock() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-7-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=2482; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=Py9gUMYDLXU7l1TUEJ0L6HzvJXCNw6ptCakw/+crsQc=; b=KnKavewnMLt7GfgB/b9gNamxCvAKCVliqz/Nl42GLPbGPgNz4HqeqCOPrXbTI4+qdxkMA50j4 O4CmW/Hz5AbBwj/z9IrdWPBS9SXjRb5arFT/T2ZJwzAs+6gmLmK7RuD X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-ORIG-GUID: E0j5VsN7KzwJrguVn4m7rQAccQWYUi1- X-Authority-Analysis: v=2.4 cv=McdcfZ/f c=1 sm=1 tr=0 ts=6a835ddc cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=HpS3TJQ9O3Ob1ozEcmik:22 a=vHg950cVU3XL5QtsloQA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX/3fPZW+fb0Ms oGAP0zrD1uQ5euAp+9yLr7Ld5wdLg9cHMyy6iRrZj7PPlYNGJGDgTRZiuobNzpwqbh997h604op 2hfhslhMQUqKJKB7VXxv3xtGxR6qBxkPdLsCSa1cQtqTkYjH8Ygn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX3jZ/dGCYPN/t OMCxygfguUYmpKEpSIoTaReWMazXkx0YnyNE3Ncod9LeJkVWpInbf+e052mMPmdV94q5b1X2Bm0 Jsr2WHn+MECxtbgnzJxV606HMK/5HfCJwKSXVc/l6/GW3Ufd8FNj5m/apEwDAcFtB268V1VQZX6 dXZLNBD8YUUG+pHGIi2AYmxMy9+ItPbKMeDhGFTiodx0QVg2dR5fQgohnTCVNLJ9fij887iL3Es tPoPAEifmUmRJvm2urO9erfgIawGBs8XNJrQBY8aJtTTh08W+ZsRSanSuMcZOBv3DuiA1zzGNx+ WkbZQHKERp5NT/jIUOCeHsNFxhq5WVvZRe3xxwtof81FBJSmm/ALIdj+eEmET9ypCVsF9g5A69g 3V4igImJP16wDIgI/BF7VOWuArE0/spCdA6mpEaNmb5NfkocMyCd1sfSRoLisRqd4/HPPo1e2Bm O/pVPjcb6SGI117wLGQ== X-Proofpoint-GUID: E0j5VsN7KzwJrguVn4m7rQAccQWYUi1- X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=10 lowpriorityscore=10 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=10 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 2d89d3d51bf1..756d44eae838 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 Mon Sep 28 20:05:43 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 C01F13B14C6 for ; Mon, 17 Aug 2026 19:15:44 +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=1786994149; cv=none; b=KgOj3emxaP2b/m2AsTB6/Re/gv5CDUSAFlGZjNd1nUgkR8RUCAoVRitl0fiE8FVOxImiLyeIKwEAM0bt6x2Wm0hhU8Hw6u7oH5LV8f/k02KfFeP784fCBYLdQua7aJc52nnVtpewNyW+CiGGbqqm3BQ+yGzs7dCXWOLH4wf4dVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994149; c=relaxed/simple; bh=T5FG3fhAKz0kMpG0eGKGX/d3+iEP0nP9oBKuJs6wttk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iI5H0flMER2GpkpSS2hhj13GwaesaXAeydWVr1dqFJASYbf5M/TlhLVrIcAeJvQSIc9q2D/IDygRBzQKIynL4TDGnBlyuTb5mfHst5qs5ZMOdHCQ/zjpknL1PvymiSHvpIOEQbRh18Nqh3dl0Jh0EnoXtiJp1ZSbbD7SQgccztg= 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=mReR1FnQ; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=ZoPClzu8; 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="mReR1FnQ"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="ZoPClzu8" 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 67HIYik04004559 for ; Mon, 17 Aug 2026 15:15:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=m7Us 8fWg5hhgUppSV1QIr9mJ0JyWe8U/fZpzI/jv608=; b=mReR1FnQTlF6SCUrq+I+ w9Dr5AfsKfP537a6YnpqVF3IM5BdSZxosqPmm1LPD4RDlo1F0vhiznlaSuseTS6V 8C6IaY7irEu6js9XAEepKTfr1/XhgYJ82F/SSDc3gWHQoiv15C/ba8yJg3e0o1/E OWhSiOShuavAEq1LkP5dYyjm+SRkWUWMgtqfWXASa5hE1+erxZNjjzAnNfuZyJ50 5SWoOPLflO+ly4COXffaAjIDUQ+WKoTsSr3rxGB3CWiXqEdbG5F7PAzVBf3E60R1 yMSCKyHHNQCEUJez17zlmFtK+N8ROHAT0BErtwz9Y3VkdRZyDDCpKIrqVAxG1vbK tw== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g43e0aneu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:43 -0400 (EDT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93494527488so634793185a.3 for ; Mon, 17 Aug 2026 12:15:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994143; x=1787598943; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=m7Us8fWg5hhgUppSV1QIr9mJ0JyWe8U/fZpzI/jv608=; b=ZoPClzu8K62G0Ste8u5nUu7PzGvjlt9T41lYeX/C8jd+UwbJE80+w+wnb043L0OWlw 2vB5YpwcXIqwd6WfowU9VgOoaGjwsCIwYWf6m9UkioSSBRnEYn+6d4DpITWFU7u+p2lA 40HvvAYnr346hNc2HTf5Qgy68cP/66Aig7XCnXxjijOrBK8NplssA+USFpe0jOoHG2k+ cKAkxZpMZ0iWRvxK4D9l30mSNGgr/QROjPiVv/z8LSJFgQWTbGvR+gyR1B3gTJJZ3Jg8 +7cyN5WcPsqOel1r2Mo4+qUza1Rdh/VKkBqVNhp5KUV0wzwtJOyySLSGJzox3ajRGSjQ FX+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994143; x=1787598943; 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=m7Us8fWg5hhgUppSV1QIr9mJ0JyWe8U/fZpzI/jv608=; b=XWm+1uxJj3ZZmss9lTaLH2TimYzRJcETVN06uKqlw18BTULQ0Gi0dfoYtggboJvl3a g+dC3ZtunpC4TV6srXOmTgYYde3hnRm19tWRp2dVmH0uV3TGOX0RkoSRon21Da20Nv71 vOBFLEJtrFInHi+iCjo3gWq7Cf3XAn+2AkWLlS8Ma0AeW3ZEtxYpjLMkfAE3RXjDzsIx n/XD34Oqg9+7WHLtG77XA37HQKWbDF+6HBEd3V5s57vvKC6EWnG0jn1R+DK6quV7D4Lv cSxhg19REQ/1KDGq3+cD0KyH/4gjYFX5OOOrLbWVxOOvA372eCqdCCTFNSETM7xye6Mu M6EA== X-Forwarded-Encrypted: i=1; AHgh+RpjiiA9FwVBHqri1T6aL6YWU+udlNTDdeSZjGERBbZm1e7od1z68hcaAmPolCOenyfX72RkVECQzEhGy0c=@vger.kernel.org X-Gm-Message-State: AOJu0YzvdKQtdtPQEKWZlKhxO411VyPNljt3tuqpOHNm35vCeptCKel9 1QEsiZPWf9JxmnUaz9Xp3Wowh6szWAJnMqoEEsqgxDNnl73lheygZ8uqr8I8W8PEyRh7hVUrZfJ UvErEWuKPs45YplXtiKRkyKZdcCLBGlUeHwEGajaANAX3MceN+Tz9sEKcvU/Qpu1+0conqQ== X-Gm-Gg: AR+sD12jPfW0uJmAp+GbUKqEIrsqwYiJUhnIT0+YRSdxnUeKEQ84Jz+xOIoSimRVGBJ p1kAMkNirC+O28hqZ1y1Bh05y4letQQBALiST0c8LaBzsrEomveBMPLgBpKvZsnbGCfLrxsCWQc fvB/CDfjBow2a6R9s3YuPGPIxmeNboM7ULeEkdQUhgbIELjIQWeos10ZfG1WdtK8W8sR0C7N5ls to7ip+0AjaQA6kQMgKAKSpcM7ip+PNG3gvsxtxQpVrRThf5M+/aVn1dbbGGZnsc66/ij490Zhxl 6Hc931z7Odiw39YgqLIhggof2vJHvEgYzqbZs9RNi0uOXa44gCidF/0OMjUf4d2NqwEQXKRJs+Z Xb630zEfZ X-Received: by 2002:a05:620a:2814:b0:934:a12b:1d41 with SMTP id af79cd13be357-936d22ff13dmr2810092985a.33.1786994142843; Mon, 17 Aug 2026 12:15:42 -0700 (PDT) X-Received: by 2002:a05:620a:2814:b0:934:a12b:1d41 with SMTP id af79cd13be357-936d22ff13dmr2810085685a.33.1786994142313; Mon, 17 Aug 2026 12:15:42 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:41 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:24 -0400 Subject: [PATCH v4 08/10] ceph: convert page cleanup loop in writepages_finish() to folios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-8-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=2393; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=T5FG3fhAKz0kMpG0eGKGX/d3+iEP0nP9oBKuJs6wttk=; b=zjQ8ZG3NiJuKlvbWeB6va+eBvsFwnY5+DnPdg2m7mJ2GbnShZ7+f51yH0VqcAoCHzAULhHKt/ rYqDp3ZLwv0AtKip2NM+8iOyszkU3i2/9/PfK5kFRTkM205RbtNKtbx X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX/I9cuKWLsTnF mmxof5gG0Lpatc9goMYZB13TkybjTkoAN4MQE8EgDquAzCgyK16MpMAaKmz064Ai3r1iz3pjJuR dkDyzYRxZoJKtckpZhE/dFyaaH2Bp5MuN08B1Zqel00Mhyt+FVrdOz7XlbwP8/Dm4ryPO7jNcLH 6NgVOF5Qlfg6J0if44qk95oNM5ZZSvx0gvYhOdzHMm6Sk9MxmAyDcmOGq7U7hfNZ+YByNeg/WSR cOrBz6LMevWOEfpICtFcQU9O1rPDWNfReIw4up4huxQ7WRjyn8XZoSAlQ2lPU+YgpuQTfCH561/ dljN5ZQPO+2s1BRU/j+W/++qxpS+mebu8OoDVx/UVn9he4zOs77MehxN7b4JojOZU8SdNTOf/gF b1F8v7gy9dez/hF51G9KauFysB5pAVpKDeBmF1JB4aFJ//NgWBbnKOcn0FqPIHg5PVqetS3xcoc Ae790xMMIwR0eojs7QA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX3a0oKzCVDRL3 qxFPQ/sfJTRBwSQ5tOXMygsdyUYdzJGNsBUIE/9CQJxcMTy0n7UiW7xluIpaUNlGw83Sp5ytVOc 7uVLtnklnZm6cNBG/G9aDVG6ndQqNJDK4Yvg9XIZbs12g/5mMBhu X-Proofpoint-ORIG-GUID: 6jTqclFJkBEQHH5D-ApJuA57AYVFKLHM X-Proofpoint-GUID: 6jTqclFJkBEQHH5D-ApJuA57AYVFKLHM X-Authority-Analysis: v=2.4 cv=HLrz0Itv c=1 sm=1 tr=0 ts=6a835ddf cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=BpGzv1V74M3SfeTrGa8v:22 a=PHYVD-oPFUEr7kX-Mb8A:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=10 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 bulkscore=10 lowpriorityscore=10 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 756d44eae838..e1ff5d9fd121 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 Mon Sep 28 20:05:43 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 8C45E4477E1 for ; Mon, 17 Aug 2026 19:15:53 +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=1786994155; cv=none; b=gpfD2XAzowBTIi4paDiukEMzRR3AvVWfegfRWro8KjacM490xuSaHYBVqP5Oh9io1bvm6Cidpl24xyPryaXrCh7bbyI4lclRWpzojjJ6Qfrw0J6UlxBUwvjetvzEjJRZQhtLFnYVKwdMkZg+wjAyUVmb9Oqrj6afdQDqTtR6ZGc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994155; c=relaxed/simple; bh=eEBEQRS44uRWq+68HnHuSJkJWcepL1mJ0SSpfrhNU80=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CJh2Nf7TvcIhySdLcfUuJpXbpaYzN/lmcwZ9NTZ2UJeQ/IScYac8Qomqi3UPsnP31FIN3co8iGcmZhk00eFCYTo0VV/gvtgJ1fbNLPS4ig4LsseBMEAijXIkvOU8bANcm991TFCga7sF24W0h9Jc0sgjvodTxFL4BcmUiAmq7G4= 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=TeHYh2Y1; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=GvpAXIYO; 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="TeHYh2Y1"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="GvpAXIYO" 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 67HIYjRY4066982 for ; Mon, 17 Aug 2026 15:15:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=aLyb lFTyCRkRNvHlbjBlieXQYnfG93Mvps8LThXIpPg=; b=TeHYh2Y1YenO8IvrhIYW C5kAs0PM6N+jzagTsty3cj6nEqEAxWKoa5R83VA9O7e03R8Gx4GiC/zcbcrDJwaL sZpNxHPoAtP4gmH+uogz+ArpuQVxTHrSgoVqVXNmjGKWUw4mfGaIGw6/4CdE0fep oy4ldJLO4FFVeyeTx7wnuDkGx3an7i8roVeB9JjozUPn9UmoSX8yoavIWv1OESV1 PNwlvwyEOkYJdcO81iP57RewLN9BUk2kr0ELwr6HD6zZRNgLFy1Wx8j0+pLtBv3y FRkH7mbbp/ryM1sAo74kkUwJto4vpCd3fe1xD7vmB6MtqmXwPBs9ZtzSWKZO3TWU sQ== Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-00364e01.pphosted.com (PPS) with ESMTPS id 4g3jk2x5be-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:46 -0400 (EDT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-8eac2620cb0so36763496d6.3 for ; Mon, 17 Aug 2026 12:15:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994146; x=1787598946; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aLyblFTyCRkRNvHlbjBlieXQYnfG93Mvps8LThXIpPg=; b=GvpAXIYOBOaWnq3nDPxCRDaWtLGYUgZRRCVPOJSxJU8Roajxvh7aMFZzSL+w4k5Gzi V4/Kd53K+Mv1K1vQmtRKz/wZcnsdsBVdgBpq56KgwS2ZVNBTGkme7Gm2WCDRrEmwifHt na/vwli7aCl4jGLl0EwP/mdhS8U4KgmPc2n8Xi10G1MSK8SkmnEAW/Sill02J4nf5WyS q8ebYqXQy5yVKAkAKZ/Y+7vs94jsbXTiG6+VFakjITRnPeHRlkDvC7FviCM66mp8B1GI Er5lGKqNWuPeKJLBaipoSpGZYjfLiB6Srpwf0OzjBGq+p/AvzZEWif151pddqTsJmGxY 5SNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994146; x=1787598946; 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=N0C2nzcfw4pQsDhpqaBpIk7vmN/80RYoMoiVyaq6EZAPzl8/wy0WzW23Tzk+NMHYbI Yq8F8NACG94IXo2KLT3dx18Ue/9XfcNZOjCz7UDI1T34LBjcFoZHEZv26aygOKS/Sd9m /Ioq/KmZpLDsBAeXe4RWBNHuNoBD1kf+xIJfCEP51o9xkV1nydmstC1em7zK9IYrpCbH 7EyX6lIdS5ZpNoFKheIcU13UXXHhhpQLzw37NUhhoO1gjlI9VXnS5gfzgtqwZVIawXkn 5awKgxfkoAUHX2DwdeWBuWhu/AS4oQNvtMJdkEbpR9068irOin3M3d7MxOoXo4tvcTfr I8KQ== X-Forwarded-Encrypted: i=1; AHgh+RpJgm9q9FTM5bOTVK5N0SLizee5B2wuAQR7D6117jX2V/Qj4aTK+cyVSyMojmxOmWrtphca7sVtCepLxDY=@vger.kernel.org X-Gm-Message-State: AOJu0YwHqP7SmefWLtBIM+YE5Y9zA6XdXzJcXVpcQiCpBcac0ahsFno+ VdzKSdQ0mu3JMK1dVk53P43n73cSuz3HBEyuw/QF2cA9YG6TRNB0p8tFSjzlDVK9bbHD1IXFATh +Di5M9g/XXHzZyhO+UAcy87YP1UBg2flCaM/X8fZgMd4yIDpRffOoDzKOf25bgeJCLxvH8Q== X-Gm-Gg: AR+sD13R+jWyWD/s//BgrbDFjPX3PUTHCmAVelDSpaJNFv44axcenSVbPbsOR+elLUJ s5zoVNzk2BrVTe/ofppyNNuMWPtQQSeSlYvUpATbsZzKpXB0lhePUCZGlfETUAXlWvJlqTQDIKJ 7/YIWzdrOcQ589H+72kP7o9T8YJO4PN22lNg31PY/eEZc2OC3bgzyjHURAvc97LTIYCfle823Qd TuqhqQ7WAJaNUeXa16yvHL4Dbz62h/bFX+DoaPZe1Y1COzautGXnX7MiXVe//vj3vfhPWyBGUgq KdYj9v5pwihwFcEZfLczwbWxBgaj24JoKITu2yTLgVfc+ukBadATINt8BK0qisSsOfvgeLR7Qfz kll7pigkn X-Received: by 2002:a05:620a:a09c:b0:92e:6637:db5 with SMTP id af79cd13be357-936d228696cmr2748626285a.16.1786994146076; Mon, 17 Aug 2026 12:15:46 -0700 (PDT) X-Received: by 2002:a05:620a:a09c:b0:92e:6637:db5 with SMTP id af79cd13be357-936d228696cmr2748616985a.16.1786994145438; Mon, 17 Aug 2026 12:15:45 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:44 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:25 -0400 Subject: [PATCH v4 09/10] ceph: remove ceph_fscrypt_pagecache_page() and ceph_fscrypt_page_offset() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-9-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=1581; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=eEBEQRS44uRWq+68HnHuSJkJWcepL1mJ0SSpfrhNU80=; b=qAtAvRG7QqoV4dTYjah7e0qaLWVlsv2EL09mFwD3adW6JVHxsMbDyjXVpto/xGBQ34jOHpmaC Hx6ZlYJf6GyBa6k2yHOfl9r5H5xkqVxaG667fE0uyRk12c/9IGOtJnW X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX+5lxDEhCtZjW xAYmT16lHD8BHasmxA4entVz1f3MCnDtMZXZivsJGRbFgz3HtibaGmumnUzk61cbatFgaMUghT2 GIoLIYIIzlbx/Szkpz1bqC26/MkStOafBYRrhjiaPVJXDCzyDKwEiruDi4ScKBLqcvofBONQNU4 iy89L7vRo5VCpq+oYtLg1/nAcF6+c/6Nt5Mmmmj1NPAqpTBLHBp83PcXh+twMnccp95Rvx07ScD n8Y3XEQvGs4p/Phlk88iPwDX8fnIX/WHSxmOP59//G27RTTiXKX//pOM4fNJjOV+Us6oAtlojO+ Vl7UmpsEBDj+2mwJZkGtMBRvzuD5EAmAeU3BshzMTKkNqBROT/SRVamXNKABgmzvB7wrOAA4CRI hL7rVX0FEohs8/qpZ4ZVF8/mKt+FOt33gCd7B+Yd8jK7DzEi21uPJSRNA3mPN+Y6Pnzs25hr3rs lvZVw/M097sGzeRijfw== X-Proofpoint-ORIG-GUID: 9UJpraFi5HNk9vJFDmiyU-epb8wZT5Cb X-Proofpoint-GUID: 9UJpraFi5HNk9vJFDmiyU-epb8wZT5Cb X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX6CwOYG8cHebM uVP45APNs1e3YqH99OdR0WEf+cAnCE2AD0DOn33yOru4f+BaHXiw7MKR5cmEkAqlEewh0W9FxZ1 nwgbU+aP/d85RFZ68eDe9RBKKT4XqWbkDZFhy3BhtXnvEhmoudVy X-Authority-Analysis: v=2.4 cv=V61NF+ni c=1 sm=1 tr=0 ts=6a835de3 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=JR4YdQiviy7OQf72WyZ1:22 a=jfg2DRd2ap2c96lsYj8A:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 phishscore=0 clxscore=1015 impostorscore=10 adultscore=0 suspectscore=0 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-2608170147 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 Mon Sep 28 20:05:43 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 530B943D515 for ; Mon, 17 Aug 2026 19:15:51 +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=1786994152; cv=none; b=gdF7eThL9+xEn68ob4LUGQoWlS3RdGhqz3C44uEEF5uUJZxdvPO2BuQkqQWJOuUXIpCIHzA2xlcPSnLrjVhXJ/FT6UQaTkx8pVQbbPKQLNAoUQSjdA91OsAe4A+8utG0j+JnJ1v4gPvIE8WkDsB3OaEHlKZG5sXF6NeSXakvqpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786994152; c=relaxed/simple; bh=UQQfnH5oUv5WndyYs4Z+J0hoxAEI77yDbsTq+QWKC34=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ObmpP9nztfYQMtHiU0M0jGner2TesDnWh5GpclHJb2tJod3iEH+9L4gmkUv9psJUdiuvdeqNaeUyyRqeRc5uqcgc+vE2sA72wLXdg6KqS4eDkjbgZSqZ1bSy7WVWtEMXK6Jq4sbyZK4dRqHfzm9N9B6HOpPy02+SZ+9IxKZ61Ws= 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=oJk6CbHQ; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=dn0jlZrV; 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="oJk6CbHQ"; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="dn0jlZrV" 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 67HIYrN13664313 for ; Mon, 17 Aug 2026 15:15:50 -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=rvte lDgcI1kH/2E5UCPRf+p2X7037VcyjW/+hck8OJM=; b=oJk6CbHQWAYPKqC2k6SO 7ruOuQuC6l5zSeQR0kTEx07+l4/MKffLRbjYBCZ0fZH1H4amv1qf+uyLKNeeKqFG ajS6Y5FFHyqLh5AEeWNVXT9z4g99ViN9+Cua86tmzxDN+h8JzimTlZ3jXX5j0Pyk DggTC2d7/1VP56wxGd3yVrbVUHIiXIclL1lNDYE1c3vI4VlKwUgblhst9uHkMpHm xmtmawJ5lMhZ8VJ3F1giL8kX40pEepLQAcjonQFRrfe7fyjZfwSgjV4xgPDV12wU a2B68mj16nhav8JvoFXb+YGPDrYrSfHi/NNX3M5FFpT/tzwXe7XtJeyr7hnOGW8/ Pg== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4g3mkfnqm1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 15:15:50 -0400 (EDT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-9368b4c5964so313433885a.1 for ; Mon, 17 Aug 2026 12:15:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; s=lionmail; t=1786994149; x=1787598949; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rvtelDgcI1kH/2E5UCPRf+p2X7037VcyjW/+hck8OJM=; b=dn0jlZrVTgnTKDdTW8pM5mGU+hWThw9xpRgpIXQ7gBJeddzeiCEnQEaRKo321Rjvp+ rzQI3H0V86SgFdrZvNLUq3A0sXpVncHsptmECz2aLnoPi1TQ4Rbp/EsTSQtG/BRYE0Sn y6UTmO9MFsR/0hfbBtoM9lq9+bfoNUP6ou8hlsKs01hnNsnv/pPryHEHcGARWA03vPAJ CZ9Jmh47fcXnvP+kXJw8tiUTWmLilbiE5SCcC6YCCz5dQSjQ5VfBUgaaMCt5MJzS4HMB A7KyUkXHQUVkkXbton38jqhVjg/+zDxySE+HGKhleMJrvEBbbiRM9asqahpWNp82iTLe v9EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786994149; x=1787598949; 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=rvtelDgcI1kH/2E5UCPRf+p2X7037VcyjW/+hck8OJM=; b=N476R72GwA4lR4DggeBiDBDB3g52CVM2CTp00F2O6LiQ6a6qNQu6/6KIxP4EKvjwwU ZhfrisKWc4erZSBfUuiGEnFcqyPj2lGjjaDoR8xcTkgTixt4ihctnyetMX4TAydUFkX4 z0JCKeMUTx9QPf714+5+8YW5If8r/XeDomZG+ql9vRlsjdsyp+Nfy4/zBItOe/EbtkMd 4C3ENkw7eKjt9d0zksX6QXAwcQ90eRV+HvzdvhbXrv92DFF8vi93ZIIHLcrGMa1xgANt IXwY3QqdP51jrs0z+G1BWoviF+W4gJoH89gCAZxLQqF6W18U5WZLvVWR9j4zsmfz48JZ dkeA== X-Forwarded-Encrypted: i=1; AHgh+RrnygP1NiN2HTRdpM+asjlhGlcJ18Bqeb0bcYBkQJ+RBCLiQfwq9WJyMsOQTqEbfVn1mXqQB6AP8rxU42c=@vger.kernel.org X-Gm-Message-State: AOJu0YxtcZSP0H47PNDZ/4g7PhogsYOjvF7P2JDVdUs4foLoVQ8wTl0k tlc2syfP1KA8w9Wtvgypq0WHQniKQ5DLG9/Sk8zgVvsATBpFa2IIljwQgHk5EkZiru6WcoxDQkR fTDaf+aDy6QsgO0ef21ds/EIUDYISFAOPvD5WVWSZ2KctxtqxQH0HnlYP3MYONNFK/zJXlw== X-Gm-Gg: AR+sD10b5dK2iSRwDfs7VnWp3w6M8XmOtMK1iPKpNwrwpTw4vh4ZjTqob5nXIuEe/rh tYdWGRHYOnsctpIxyDUsTYl0cJ68yjs3FgyLlRv+pbMTsPSJn4AmBEg0kcp+n2EC29ER4ae8A30 TqaUnQDTEFj/aBZh2edQ2cTTNsBCzsklLryHBLC35OqKYLLkYTYcgYNvJ1XvyzZSgD55+UpUiFN BzjgCvJROMck47rckCO5zqVdEVrSzFOx1l3hAoM4DmVA+U+laIPtUWnngYvwolGusW5HMPSHEG7 HVTg+z3VYyfIWY0RxklXNEnVGr9Lc/f1vC7mGC+UMB2rZCG/vmzG2BIBB6j1Zn8GDmRNcJIMs4x m/YGPbk3l X-Received: by 2002:a05:620a:3910:b0:936:af9f:4c30 with SMTP id af79cd13be357-93704b8dbecmr244835685a.25.1786994149441; Mon, 17 Aug 2026 12:15:49 -0700 (PDT) X-Received: by 2002:a05:620a:3910:b0:936:af9f:4c30 with SMTP id af79cd13be357-93704b8dbecmr244828985a.25.1786994148981; Mon, 17 Aug 2026 12:15:48 -0700 (PDT) Received: from [127.0.1.1] ([77.137.67.107]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499961098cdsm194692085e9.6.2026.08.17.12.15.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 12:15:47 -0700 (PDT) From: Tal Zussman Date: Mon, 17 Aug 2026 14:55:26 -0400 Subject: [PATCH v4 10/10] ceph: rename ceph_check_page_before_write() to ceph_check_folio_before_write() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260817-remove-wait-on-page-writeback-v4-10-0e5e53d47eb0@columbia.edu> References: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> In-Reply-To: <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@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, Viacheslav Dubeyko , Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786992937; l=1302; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=UQQfnH5oUv5WndyYs4Z+J0hoxAEI77yDbsTq+QWKC34=; b=b6SAW1tG4Jl7P0GV3rFpdHlh4xB2uPa+WeZWFSPqUDH+h6emiOeLsu5ztyI4BoxstaWB38VyA ugdc1n00cnnCTPAiaUPYSjTX970hRVzSQHXW4Ew0kljQcrR37cPRDJ5 X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX3efrdNJW5FST /synwuP22fUdDvM1OgLFtBd1V9VPG/ySul5gtUpDr2tIv4opbj9uKn1wQaznTPJcZJaGh64w8SH 1q1CA5MP3CMgJ7DqbuAUluwB9ijOOdFxF75dBlCxrAqcpZl1POHc X-Proofpoint-ORIG-GUID: RfaZILbCqiJfHh_qlQtlEfnQQQm3cOwg X-Proofpoint-GUID: RfaZILbCqiJfHh_qlQtlEfnQQQm3cOwg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDE0NyBTYWx0ZWRfX01FfVUyCHYO+ aFvgF0n0fd4QW+Fee//MCyx6+mZ7uAh4f6l2vnxOC1YpV0Qkk7ryeCPTtAuM011QZ+PHWeiGilj CXpA9enuLmORpbJhhKxN4wcOSCmbtAWU3L+Y1wFbgCOc0t0XHxHRfszHYHu0+8WmHPwiQ3YCc5B x/Y5PaJfS058Hk7YUmxopwPpUPUyamwQa7/IVSp3TKx2ovXvI5Yjz79HggRRzT7sbwR61BfjlrO K3p66Hi5zfWca8W4iFUJ1wbmrAptqZ5ulHydmEGUrlUA+Ssyk3U4vYaOz5mERbtLa6hg/uV0buP AtV41ui/3AdyP0EvrIAoC83xHZGCRC08oik6p92yqSjZ0sRi7PSZ6Yud0FmEwfsLzRSIg4CzzW7 FNAVGXyaKbZHjZBOFrOzhZK8HHatJBXPDpVkiQhZSlFBYjkzKRH50rGYfZ3Txr94yrwPGhzxZMs SpjlnhmQ1xal6nl8Pcg== X-Authority-Analysis: v=2.4 cv=C+vZDwP+ c=1 sm=1 tr=0 ts=6a835de6 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=+gpNN1aRt999K7yrv1sWlQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=A0y_DWxS2BwA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=azVShVRs0zEubeQ0wG0L:22 a=V3EFW1AtJEMGhprvICUA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11878 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=10 impostorscore=10 priorityscore=1501 phishscore=0 bulkscore=10 clxscore=1015 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170147 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 e1ff5d9fd121..595c8a1518ed 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