get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2216372/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2216372,
    "url": "http://patchwork.ozlabs.org/api/patches/2216372/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-cifs-client/patch/20260326104544.509518-26-dhowells@redhat.com/",
    "project": {
        "id": 12,
        "url": "http://patchwork.ozlabs.org/api/projects/12/?format=api",
        "name": "Linux CIFS Client",
        "link_name": "linux-cifs-client",
        "list_id": "linux-cifs.vger.kernel.org",
        "list_email": "linux-cifs@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260326104544.509518-26-dhowells@redhat.com>",
    "list_archive_url": null,
    "date": "2026-03-26T10:45:40",
    "name": "[25/26] netfs: Limit the the minimum trigger for progress reporting",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "2786a6ae33f2343fedae8f11e7b132dae6c2970f",
    "submitter": {
        "id": 59,
        "url": "http://patchwork.ozlabs.org/api/people/59/?format=api",
        "name": "David Howells",
        "email": "dhowells@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-cifs-client/patch/20260326104544.509518-26-dhowells@redhat.com/mbox/",
    "series": [
        {
            "id": 497565,
            "url": "http://patchwork.ozlabs.org/api/series/497565/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-cifs-client/list/?series=497565",
            "date": "2026-03-26T10:45:15",
            "name": "netfs: Keep track of folios in a segmented bio_vec[] chain",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497565/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2216372/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2216372/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-cifs+bounces-10548-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-cifs@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=e4uN62Gi;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-cifs+bounces-10548-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=\"e4uN62Gi\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=170.10.133.124",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=redhat.com"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhLhj1MlPz1y1G\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 22:12:21 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 26A6330C818F\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 10:55:38 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1F2413E95AE;\n\tThu, 26 Mar 2026 10:49:50 +0000 (UTC)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C904B3E715B\n\tfor <linux-cifs@vger.kernel.org>; Thu, 26 Mar 2026 10:49:48 +0000 (UTC)",
            "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-134-R25vA0AZMP6MQs6h0YVvDg-1; Thu,\n 26 Mar 2026 06:49:45 -0400",
            "from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 4D85219560A6;\n\tThu, 26 Mar 2026 10:49:42 +0000 (UTC)",
            "from warthog.procyon.org.com (unknown [10.44.33.121])\n\tby mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 022BA1800576;\n\tThu, 26 Mar 2026 10:49:35 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774522190; cv=none;\n b=lCAEroGM2nmLOd/UljLnNmUFLR4zBte7dhJAqtQpH7ELdnLMxihD3ydDcDSpHODMisWQP7v1eAMcuQ/xXR4tukKinRqSglEPu9tD7ad/fqyg95fcBRRbs6MEA6vxevC+5Lqi64mGDyEccrOftujbpPoNl+lj5juy+cj0XDMiaKQ=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774522190; c=relaxed/simple;\n\tbh=sU2zUgwIPPM1gWJtEBg6k7zAgJC6dwFXJciLsxo98xs=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=GDaxM26skzzIBCtjrXGEnq8433NenFCAl9xS+UoZTfzhBLFOdGYhCggYACli165pw9xuFRVUJ3kVs2J2HCULnlcsjbuOkaSFW7DxF3AnNMyiqPlEc3e+DvqzAQV8aA2hvK5wzv8V0PClxz4N9jHJbTbmCnt2E1SOtMs2s4gJLCc=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com;\n spf=pass smtp.mailfrom=redhat.com;\n dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=e4uN62Gi; arc=none smtp.client-ip=170.10.133.124",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1774522188;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=3dua10S0xY5PQQMwCx5ef5lVGVsxRJy1bcsfs1R39zY=;\n\tb=e4uN62GizDPs22ObsVmRiVIli/eJmyHtW7Xvtu+tX57/OBna97yq4LIKWLAfaauPSxK1/h\n\tFWElycj/efiR4QqPyh5MMKTaOMPJt0A9dDTZ7v4ueTNXN5Jus9cxTHrexQdYoDjKhRMmAC\n\tpQnkin6q6fyNc49x1VX/V9ekQLXo7C8=",
        "X-MC-Unique": "R25vA0AZMP6MQs6h0YVvDg-1",
        "X-Mimecast-MFC-AGG-ID": "R25vA0AZMP6MQs6h0YVvDg_1774522182",
        "From": "David Howells <dhowells@redhat.com>",
        "To": "Christian Brauner <christian@brauner.io>,\n\tMatthew Wilcox <willy@infradead.org>,\n\tChristoph Hellwig <hch@infradead.org>",
        "Cc": "David Howells <dhowells@redhat.com>,\n\tPaulo Alcantara <pc@manguebit.com>,\n\tJens Axboe <axboe@kernel.dk>,\n\tLeon Romanovsky <leon@kernel.org>,\n\tSteve French <sfrench@samba.org>,\n\tChenXiaoSong <chenxiaosong@chenxiaosong.com>,\n\tMarc Dionne <marc.dionne@auristor.com>,\n\tEric Van Hensbergen <ericvh@kernel.org>,\n\tDominique Martinet <asmadeus@codewreck.org>,\n\tIlya Dryomov <idryomov@gmail.com>,\n\tTrond Myklebust <trondmy@kernel.org>,\n\tnetfs@lists.linux.dev,\n\tlinux-afs@lists.infradead.org,\n\tlinux-cifs@vger.kernel.org,\n\tlinux-nfs@vger.kernel.org,\n\tceph-devel@vger.kernel.org,\n\tv9fs@lists.linux.dev,\n\tlinux-erofs@lists.ozlabs.org,\n\tlinux-fsdevel@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tPaulo Alcantara <pc@manguebit.org>",
        "Subject": "[PATCH 25/26] netfs: Limit the the minimum trigger for progress\n reporting",
        "Date": "Thu, 26 Mar 2026 10:45:40 +0000",
        "Message-ID": "<20260326104544.509518-26-dhowells@redhat.com>",
        "In-Reply-To": "<20260326104544.509518-1-dhowells@redhat.com>",
        "References": "<20260326104544.509518-1-dhowells@redhat.com>",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-cifs@vger.kernel.org",
        "List-Id": "<linux-cifs.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-cifs+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-cifs+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.111"
    },
    "content": "For really big read RPC ops that span multiple folios, netfslib allows the\nfilesystem to give progress notifications to wake up the collector thread\nto do a collection of folios that have now been fetched, even if the RPC is\nstill ongoing, thereby allowing the application to make progress.\n\nThe trigger for this is that at least one folio has been downloaded since\nthe clean point.  If, however, the folios are small, this means the\ncollector thread is constantly being woken up - which has a negative\nperformance impact on the system.\n\nSet a minimum trigger of 256KiB or the size of the folio at the front of\nthe queue, whichever is larger.\n\nAlso, fix the base to be the stream collection point, not the point at\nwhich the collector has cleaned up to (which is currently 0 until something\nhas been collected).\n\nSigned-off-by: David Howells <dhowells@redhat.com>\ncc: Paulo Alcantara <pc@manguebit.org>\ncc: netfs@lists.linux.dev\ncc: linux-fsdevel@vger.kernel.org\n---\n fs/netfs/read_collect.c | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/fs/netfs/read_collect.c b/fs/netfs/read_collect.c\nindex bacf047029fa..6d49f9a6b1f0 100644\n--- a/fs/netfs/read_collect.c\n+++ b/fs/netfs/read_collect.c\n@@ -494,15 +494,15 @@ void netfs_read_collection_worker(struct work_struct *work)\n void netfs_read_subreq_progress(struct netfs_io_subrequest *subreq)\n {\n \tstruct netfs_io_request *rreq = subreq->rreq;\n-\tstruct netfs_io_stream *stream = &rreq->io_streams[0];\n-\tsize_t fsize = PAGE_SIZE << rreq->front_folio_order;\n+\tstruct netfs_io_stream *stream = &rreq->io_streams[subreq->stream_nr];\n+\tsize_t fsize = umax(PAGE_SIZE << rreq->front_folio_order, 256 * 1024);\n \n \ttrace_netfs_sreq(subreq, netfs_sreq_trace_progress);\n \n \t/* If we are at the head of the queue, wake up the collector,\n \t * getting a ref to it if we were the ones to do so.\n \t */\n-\tif (subreq->start + subreq->transferred > rreq->cleaned_to + fsize &&\n+\tif (subreq->start + subreq->transferred >= stream->collected_to + fsize &&\n \t    (rreq->origin == NETFS_READAHEAD ||\n \t     rreq->origin == NETFS_READPAGE ||\n \t     rreq->origin == NETFS_READ_FOR_WRITE) &&\n",
    "prefixes": [
        "25/26"
    ]
}