From nobody Sun Jun 14 09:53:27 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03E5B2D978C for ; Thu, 2 Apr 2026 06:12:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775110330; cv=none; b=oz3rlFyoS1JwknqBJwR8slsOxAVR9po1U9+8GmYWbBhEXRRvuHIsCmpcx8xuwpFrjasFtWH9VdQW6F4SMqZDwlSeP8DpwhUHGIwewMm3gJrBJWLOh4xZqF/+VVk4TpFjJr8U5aybQtiGAxcZqlAry3ObnN0urVQ7eB45uxrpqFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775110330; c=relaxed/simple; bh=hQdNVmXDcA0QczdAfjItergKXVwvp/yc1hF2c6ADrAw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=j8zUlCZfNK4G1+MMC86JgNFZiRKaVnwqnonYhNn2iPEgeo9nVVJC/QF3u43UnhZTlnH0X/BziEdMeXSeTmGb+RBZYGfG97EcNHq+3bv+anJWtc8m+d7nJ80sUCUcJaq+zS8AXJOQk03fqnlnn9cPhisUiWmzm1m9jOnMt6H6uDI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QutTDsoY; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QutTDsoY" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-486507134e4so5433575e9.0 for ; Wed, 01 Apr 2026 23:12:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775110327; x=1775715127; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=UPdVRThctx1We1OWKVI8BrURZZc0r/13gnupvF6n6rY=; b=QutTDsoYEz5erM7IvA5q2GGlp5drq4zdGK3ZWbOrDgtwBhjjXh5umAXc2nTYegpn+r zlwj5GxX9CltOm6ee8z/MRIs3y/WpI3Cg0uOiKaP/bA6o4Q699iBshoIo4G2LueL+xap MioFZjQJEtCW3oXnyZQvePXuicHre1n+Hzpj2XlOb7s8MubI1FOgERCV1FFhUUCfL2B4 0ozgAg6yVkgQ3s2wp4vD8ZoKT/YDDUhNB2fpg8tBgZbU+2Bp5mc76LOFyo7RTfQQkMMV jl5+bSplHOZdwCW7ZDJa90nCP0C+hMimqatfnZCaVpkECiOQl+CmxlYlUlkc74HWdUoa 4MDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775110327; x=1775715127; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UPdVRThctx1We1OWKVI8BrURZZc0r/13gnupvF6n6rY=; b=sIQwnrAFGWjk9y8v1bpq8W6NXEazaKp45vN1flgTYYXIicp4vNelG+BGIxuhphHqPN OVnFakVUb/OMnnDP2R4rc0PLlENZkXKHH3BAmxQRHDF+yF2GaSe3Uttblo+L5SYsklV8 YlFQiD5Ggn9GrdCWC1K1rPQMYXSCPa0H/9vJqjusLFB3zzyTs+rcCqFZ7HS9O6RKEM82 yDLQezFc2LPbbJ8GFOMzRRw3YR0Yp5bVyQqA9jEIuDr4HtPSz/gXv2SXzjDJgIpHCA/c mCMd8r0GgB6DTHQXZBshKwKblaMtJzQI9P1Rgd6FLg3QM69QYfmeow6bdVnwLk5oI6Ob b20w== X-Gm-Message-State: AOJu0Ywrjiv5kHgYNSW/ky45RXowa/W7KPdeXwc/ffUDKRX2WHBZvrwK Xe4TSVhenAo7bQJEx7aq7b2JeA08tCbgEEYgcTNR7wWfQVAndt5GX8Fb X-Gm-Gg: ATEYQzyEZJJbqkvtjofZXo5G0/l62vWUS8tA+gVR5GXItBHzBCc/B4PAOuwfHCTXaUF lPxtMKcaWOXF1lwqsbYTuHc6n60XNkXJTzcNSQmJaKQRQrKCr54smE0NhFiA+UtoiFW2V2ka5yF WmE0JZy/5p5VXkzlCKy0mHN9sRQ2Svg0O+Y9LF0jlhvADFQ4moUy2GxtzjlXT7geOGnYwJGL7dr 0Cx+QSyRR0vncp0EUPNIxjdt+wZ0R9b9+TamLG1Z8UuAqGEW1GlSR7vZRmQRLGA6OHSobZ+kYgz pjWdRfL84jG0to7+YNlvkWto3N6NIJhZYy/fMH1adgwgpsaqouSaD9OUwoad+dXkr26+mZvOlld CxycZFYXIO/TWiiYjzdb4ieBNuOeLPia4uXqOAjUqe99NOIOpdsmZz46P/jFxDDQfWldtsijTXm cGX1hpV6t5Hv0bWLe2PiCiqX+a4qkX6WV9ji6OcGELTdQO/ZoCC46G9DyodsAuex5kKZdYCUf4e 2V+No+XVuf8 X-Received: by 2002:a05:600c:858e:b0:487:1520:d107 with SMTP id 5b1f17b1804b1-488835cce64mr88940365e9.31.1775110327081; Wed, 01 Apr 2026 23:12:07 -0700 (PDT) Received: from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4888a706062sm52452115e9.9.2026.04.01.23.12.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 23:12:06 -0700 (PDT) From: David Carlier To: David Hildenbrand , Kairui Song , Chris Li , Andrew Morton , Kemeng Shi , Nhat Pham , Baoquan He , Youngjun Park , NeilBrown Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, David Carlier , "Matthew Wilcox (Oracle)" Subject: [PATCH v4] mm/page_io: rename swap_iocb->pages to swap_iocb->bvecs Date: Thu, 2 Apr 2026 07:12:02 +0100 Message-ID: <20260402061202.35097-1-devnexen@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" swap_iocb->pages tracks the number of bvec entries (folios), not base pages. Rename it to bvecs to accurately reflect its purpose. Suggested-by: Matthew Wilcox (Oracle) Signed-off-by: David Carlier --- v4: renamed swap_iocb->pages to ->bvecs (Willy) = = =20 v3: use sio->len for PSWPIN accounting = = =20 v2: convert sio_write_complete() to folio APIs mm/page_io.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/mm/page_io.c b/mm/page_io.c index 1389cd57ca88..e524cb821d04 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -327,7 +327,7 @@ static void bio_associate_blkg_from_page(struct bio *bi= o, struct folio *folio) struct swap_iocb { struct kiocb iocb; struct bio_vec bvec[SWAP_CLUSTER_MAX]; - int pages; + int bvecs; int len; }; static mempool_t *sio_pool; @@ -362,14 +362,14 @@ static void sio_write_complete(struct kiocb *iocb, lo= ng ret) */ pr_err_ratelimited("Write error %ld on dio swapfile (%llu)\n", ret, swap_dev_pos(page_swap_entry(page))); - for (p =3D 0; p < sio->pages; p++) { + for (p =3D 0; p < sio->bvecs; p++) { page =3D sio->bvec[p].bv_page; set_page_dirty(page); ClearPageReclaim(page); } } =20 - for (p =3D 0; p < sio->pages; p++) + for (p =3D 0; p < sio->bvecs; p++) end_page_writeback(sio->bvec[p].bv_page); =20 mempool_free(sio, sio_pool); @@ -397,13 +397,13 @@ static void swap_writepage_fs(struct folio *folio, st= ruct swap_iocb **swap_plug) init_sync_kiocb(&sio->iocb, swap_file); sio->iocb.ki_complete =3D sio_write_complete; sio->iocb.ki_pos =3D pos; - sio->pages =3D 0; + sio->bvecs =3D 0; sio->len =3D 0; } - bvec_set_folio(&sio->bvec[sio->pages], folio, folio_size(folio), 0); + bvec_set_folio(&sio->bvec[sio->bvecs], folio, folio_size(folio), 0); sio->len +=3D folio_size(folio); - sio->pages +=3D 1; - if (sio->pages =3D=3D ARRAY_SIZE(sio->bvec) || !swap_plug) { + sio->bvecs +=3D 1; + if (sio->bvecs =3D=3D ARRAY_SIZE(sio->bvec) || !swap_plug) { swap_write_unplug(sio); sio =3D NULL; } @@ -477,7 +477,7 @@ void swap_write_unplug(struct swap_iocb *sio) struct address_space *mapping =3D sio->iocb.ki_filp->f_mapping; int ret; =20 - iov_iter_bvec(&from, ITER_SOURCE, sio->bvec, sio->pages, sio->len); + iov_iter_bvec(&from, ITER_SOURCE, sio->bvec, sio->bvecs, sio->len); ret =3D mapping->a_ops->swap_rw(&sio->iocb, &from); if (ret !=3D -EIOCBQUEUED) sio_write_complete(&sio->iocb, ret); @@ -489,7 +489,7 @@ static void sio_read_complete(struct kiocb *iocb, long = ret) int p; =20 if (ret =3D=3D sio->len) { - for (p =3D 0; p < sio->pages; p++) { + for (p =3D 0; p < sio->bvecs; p++) { struct folio *folio =3D page_folio(sio->bvec[p].bv_page); =20 count_mthp_stat(folio_order(folio), MTHP_STAT_SWPIN); @@ -499,7 +499,7 @@ static void sio_read_complete(struct kiocb *iocb, long = ret) } count_vm_events(PSWPIN, sio->len >> PAGE_SHIFT); } else { - for (p =3D 0; p < sio->pages; p++) { + for (p =3D 0; p < sio->bvecs; p++) { struct folio *folio =3D page_folio(sio->bvec[p].bv_page); =20 folio_unlock(folio); @@ -559,13 +559,13 @@ static void swap_read_folio_fs(struct folio *folio, s= truct swap_iocb **plug) init_sync_kiocb(&sio->iocb, sis->swap_file); sio->iocb.ki_pos =3D pos; sio->iocb.ki_complete =3D sio_read_complete; - sio->pages =3D 0; + sio->bvecs =3D 0; sio->len =3D 0; } - bvec_set_folio(&sio->bvec[sio->pages], folio, folio_size(folio), 0); + bvec_set_folio(&sio->bvec[sio->bvecs], folio, folio_size(folio), 0); sio->len +=3D folio_size(folio); - sio->pages +=3D 1; - if (sio->pages =3D=3D ARRAY_SIZE(sio->bvec) || !plug) { + sio->bvecs +=3D 1; + if (sio->bvecs =3D=3D ARRAY_SIZE(sio->bvec) || !plug) { swap_read_unplug(sio); sio =3D NULL; } @@ -666,7 +666,7 @@ void __swap_read_unplug(struct swap_iocb *sio) struct address_space *mapping =3D sio->iocb.ki_filp->f_mapping; int ret; =20 - iov_iter_bvec(&from, ITER_DEST, sio->bvec, sio->pages, sio->len); + iov_iter_bvec(&from, ITER_DEST, sio->bvec, sio->bvecs, sio->len); ret =3D mapping->a_ops->swap_rw(&sio->iocb, &from); if (ret !=3D -EIOCBQUEUED) sio_read_complete(&sio->iocb, ret); --=20 2.53.0