get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217529,
    "url": "http://patchwork.ozlabs.org/api/patches/2217529/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260330044334.373480-1-kartikey406@gmail.com/",
    "project": {
        "id": 8,
        "url": "http://patchwork.ozlabs.org/api/projects/8/?format=api",
        "name": "Linux ext4 filesystem development",
        "link_name": "linux-ext4",
        "list_id": "linux-ext4.vger.kernel.org",
        "list_email": "linux-ext4@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260330044334.373480-1-kartikey406@gmail.com>",
    "list_archive_url": null,
    "date": "2026-03-30T04:43:34",
    "name": "loop: block loop reconfiguration of offset/sizelimit on mounted device",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "767b12ddc45de1f098bd27b707db7b5c35b6229b",
    "submitter": {
        "id": 91725,
        "url": "http://patchwork.ozlabs.org/api/people/91725/?format=api",
        "name": "Deepanshu Kartikey",
        "email": "kartikey406@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260330044334.373480-1-kartikey406@gmail.com/mbox/",
    "series": [
        {
            "id": 497950,
            "url": "http://patchwork.ozlabs.org/api/series/497950/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=497950",
            "date": "2026-03-30T04:43:34",
            "name": "loop: block loop reconfiguration of offset/sizelimit on mounted device",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497950/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217529/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217529/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <SRS0=/f8Y=B6=vger.kernel.org=linux-ext4+bounces-15527-patchwork-incoming=ozlabs.org@ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-ext4@vger.kernel.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "patchwork-incoming@ozlabs.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=pMK0iePC;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=/f8y=b6=vger.kernel.org=linux-ext4+bounces-15527-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org",
            "gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=pMK0iePC;\n\tdkim-atps=neutral",
            "gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15527-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"pMK0iePC\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.210.173",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"
        ],
        "Received": [
            "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\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 4fkdvj5xMLz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 15:44:49 +1100 (AEDT)",
            "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fkdvj4dPsz4wqN\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 15:44:49 +1100 (AEDT)",
            "by gandalf.ozlabs.org (Postfix)\n\tid 4fkdvj4Ppkz4wsP; Mon, 30 Mar 2026 15:44:49 +1100 (AEDT)",
            "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fkdvd4LPGz4wqN\n\tfor <patchwork-incoming@ozlabs.org>; Mon, 30 Mar 2026 15:44:45 +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 A15C930107E9\n\tfor <patchwork-incoming@ozlabs.org>; Mon, 30 Mar 2026 04:43:44 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E564137998F;\n\tMon, 30 Mar 2026 04:43:43 +0000 (UTC)",
            "from mail-pf1-f173.google.com (mail-pf1-f173.google.com\n [209.85.210.173])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 81D0633CE92\n\tfor <linux-ext4@vger.kernel.org>; Mon, 30 Mar 2026 04:43:42 +0000 (UTC)",
            "by mail-pf1-f173.google.com with SMTP id\n d2e1a72fcca58-82a07738118so2226887b3a.0\n        for <linux-ext4@vger.kernel.org>;\n Sun, 29 Mar 2026 21:43:42 -0700 (PDT)",
            "from deepanshu-kernel-hacker..\n ([2405:201:682f:389d:d8f3:146b:e2bb:b2f0])\n        by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82ca8464576sm6075154b3a.14.2026.03.29.21.43.38\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Sun, 29 Mar 2026 21:43:41 -0700 (PDT)"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1774845889; cv=pass;\n\tb=u9wagLLTAnCJKeJz2h0OS0MUzuJt3io4N/eAt/VT22bCVlE+rG0eZXFpTVZA1cdtQNzr01Hz4d9m00nTjXs4px9xd4QcRz8xwkEINFzHUwXW5mC8flxHf5c44NzKrcIu7uZEU0awPbo9cXwwSAELYiQ3RrHIf7PG2ftyXUAKMad6sMK25z4PMMwQT4v+gtxbM/6/FoQ1ahYVDz4uOiz+ooNboP+Ix48c9eQNbBj+siMly4rULWGYSIpYfO9WZ5ufWs0b+tZe2Hh3IAvTkqhauPczG2mk2KbcHbfsP1QTj555QNpKKiIevpI4KxRnO4DKDlyvJiv/X6O0wdybe3orDQ==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774845823; cv=none;\n b=Hgymmj9qX1UBQ73mkSSkZKdo1FKoRKxlN4eaWBLonMNAFynnsP8HYcX9h02HLtdPG3jzSJitXsTAYB24+ZU3YIdWPSnsuS5/u43RhGnHNqHzLsFB297q9zgqjwZPIDaNy3iZw++Gp0e3Mgh8waFeiGOnFEUwqT2ePPBa8DsbHBI="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1774845889; c=relaxed/relaxed;\n\tbh=RVoLlmJXuoZFlO/T8+1qY4HcBw6xf89P3loI3tBHNJg=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=nDj85i9IBjwKw1YRzfPT48JiqWJDf7JygrCGxSfl5CtVxHXYChPHZJSw4eFDq5EXuoV69cAy7CtYmF2+0FDwRODiYDeEHMtqRwLOS+wKWTZdFbyAMmrLLCfP7lPiyVd8v2M1cDHdfN6PtNSxz3aFKtjKIW86S4ycq18nb/Ybreu/+SbqfGA2eomLkTPEQBMBQTo6jufu7/6943jEXOojNglUtnG+hRTvlItjybvfPVgHWw2zyJGG/JCEfB8b3Hm/PcroulOvPKNJR2ock/PVFji0sWyM24h4TcBUrWdJlwCwfaPDPsKnEeVuLohsFZMSFlvMlu/RVZJH3LDYQ4+i9Q==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774845823; c=relaxed/simple;\n\tbh=I/LoCE7ghR2fhykvvR2K6LR8ap7mzobL/J0+U6S3zt8=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=NgeKzVk5b1Nv+Lp0D2Yj6jLLUYCPt3grjUUOUY+2HnxQSQLj9YtyCR4RhDgBDaarQdYXUQkQv4g08DTVc1bCycvQKlupIvJKU38eNJoSLfwZHyLxDRsz+BkXhQ8JnmtouD/KEn6prMzGWrGTjiTQAVHCK7/VF55ntjCEtt4Ibhc="
        ],
        "ARC-Authentication-Results": [
            "i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=pMK0iePC; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15527-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org",
            "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=pMK0iePC; arc=none smtp.client-ip=209.85.210.173"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1774845822; x=1775450622;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=RVoLlmJXuoZFlO/T8+1qY4HcBw6xf89P3loI3tBHNJg=;\n        b=pMK0iePCS5aflif8zwUM+BeK5h6mjM7yWshMb/Wjo3apEL74HB7aJY4SsW/peIEx1o\n         DgvSW+BiXdCQXjJsJ2a9VjnF7TA8NLj00Z+AKQYeKzU2tNGJCTBHFtbEuD0MSMTfSZn2\n         gm5Ak9CJ4CEca8pR3Bzt7XX3/Ar106N+0gpDzLaGMexUJWwsLI35mmCCKBkCJFzYtKti\n         8Hd52F7zKOxql6I/OfRR3ua775/HvJmeQdQDSEQCwtPkHQnPZzXWmDsHr7QwLMxhP/li\n         yIryBxCd+LG7rz/JMGifF13yYzRQYzwdgJrOcRm6waE+kMO8IxwA6bpZ0eudHCbDCU3Z\n         8xOg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1774845822; x=1775450622;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=RVoLlmJXuoZFlO/T8+1qY4HcBw6xf89P3loI3tBHNJg=;\n        b=V9TyyvTw8Koxzdm+vwcXm9zoXwzEilEeF8iATBh4n2WbM+9xaAFclwuCw0v7KqOmls\n         PO/G0EYnRBDdZ24yhrtg0CbxSHnHar8bbVzDPovSRqj1V5UjPANQ3e7BjTDxSO7lWMpc\n         X+WF5GJtAAqu8vD1CBXZk8hx8CeilZdSxysk9eS7WmUZFCvsjTjsGSn3QbXQxqrQQxn5\n         Yy9az43q8HDof9rsuplTIkE1CGn6qZmYjp5zLgtqtSyRbJqb/9LXG/ZBjA0qvjl8ZDmJ\n         +DcgZ0pxQ2hmavL0lGzNSKWCtl7bnpOPDVdX37zbqX2S3h27HauMbpwgRhCT5pasIYfN\n         hZcA==",
        "X-Forwarded-Encrypted": "i=1;\n AJvYcCV5GRXJeJLEDJ5pK/AgSYdPW8+IGkpHUtYk3Vd0NSJz7rAh1winXbYEC66gpVBcn215oS+/z5H2uEcz@vger.kernel.org",
        "X-Gm-Message-State": "AOJu0YxN1XNjCLuK4SAXykn/XBEU8SGb8DCrUHmadD/CrlHn0uQWZuOl\n\taHSV5pia+XPpQQIeW+naLLgbHCWY0KxI97e/MqYaLEV9ZU3R300JXLsE",
        "X-Gm-Gg": "ATEYQzwvjL12279pK0oXSkV3iDxm9HMaym6du88bftn6zkWvLAYTLyneC9X8B1B+nEp\n\tzshgr/vzZKXN15OOpbM5eAIzraK2RtinmiEHcGkwHwG4gg7XJ9EmOACn52q9H5H9w8qVA/WvqGK\n\tI/EObbaPld+4bQY+9kuZu90hMw+rlB67SV3x2H9E+3ftfHAFAACotFirBmFs9SNEPxI9Wz191y5\n\tCAU5CcC6qZC1AcK4eQsyMisUQRUNGJnJm81qgIaM5DtuXc98c+1/S9dIlbwrW7fliScOeuNcguo\n\t+drGd/1J/e4qRHLJaDw8nSJxfxuXizx6yboq8jVjFtDAD/c432Ytkq7yW/twpC3Q4E2oMGqgpxq\n\tS2K/9E8fDhUvk3ff54+eOQMIZnAKaL8USMygn80Z0pomm6irwM9fNPpkdkCAwHI1o4s9B3vtc+V\n\tuMhuC8dgzD1hwNWlgkwtdEoscmKEpvw6uV6m7wO7KTzR12cxLiOlF5VQI+s6pqo2CMTKrnK7eQj\n\tbPqouo=",
        "X-Received": "by 2002:a05:6a00:b95:b0:81f:9b4c:81c0 with SMTP id\n d2e1a72fcca58-82c9608696cmr10223841b3a.41.1774845821829;\n        Sun, 29 Mar 2026 21:43:41 -0700 (PDT)",
        "From": "Deepanshu Kartikey <kartikey406@gmail.com>",
        "To": "axboe@kernel.dk,\n\ttytso@mit.edu,\n\tdvyukov@google.com",
        "Cc": "adilger.kernel@dilger.ca,\n\tlinux-block@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-ext4@vger.kernel.org,\n\tDeepanshu Kartikey <kartikey406@gmail.com>,\n\tsyzbot+fb32afec111a7d61b939@syzkaller.appspotmail.com",
        "Subject": "[PATCH] loop: block loop reconfiguration of offset/sizelimit on\n mounted device",
        "Date": "Mon, 30 Mar 2026 10:13:34 +0530",
        "Message-ID": "<20260330044334.373480-1-kartikey406@gmail.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-ext4@vger.kernel.org",
        "List-Id": "<linux-ext4.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-ext4+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-ext4+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Spam-Status": "No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tFREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"
    },
    "content": "LOOP_SET_STATUS{64} allows changing lo_offset and lo_sizelimit while\na filesystem is mounted on the loop device. This effectively mutates\nthe data visible to the mounted filesystem, which is equivalent to\nwriting directly to the block device.\n\nWhen bdev_allow_write_mounted is false, direct writes to a mounted\nblock device are blocked via bdev_writes_blocked(). However,\nLOOP_SET_STATUS{64} bypasses this protection because it modifies\nthe loop configuration through an ioctl rather than opening the\nblock device for writing.\n\nFix this by checking bdev_writes_blocked() before allowing changes\nto lo_offset or lo_sizelimit. If the loop device has writes blocked\n(indicating a filesystem is mounted with write protection), return\n-EBUSY. Other loop status fields that do not affect the visible\ndata can still be changed while mounted.\n\nExport bdev_writes_blocked() so it can be used from the loop driver.\n\nSuggested-by: Theodore Ts'o <tytso@mit.edu>\nReported-by: syzbot+fb32afec111a7d61b939@syzkaller.appspotmail.com\nCloses: https://syzkaller.appspot.com/bug?extid=fb32afec111a7d61b939\nTested-by: syzbot+fb32afec111a7d61b939@syzkaller.appspotmail.com\nSigned-off-by: Deepanshu Kartikey <kartikey406@gmail.com>\n---\n block/bdev.c           |  4 +++-\n drivers/block/loop.c   | 12 ++++++++++++\n include/linux/blkdev.h |  1 +\n 3 files changed, 16 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/block/bdev.c b/block/bdev.c\nindex ed022f8c48c7..96520fac7b2f 100644\n--- a/block/bdev.c\n+++ b/block/bdev.c\n@@ -860,10 +860,12 @@ void blkdev_put_no_open(struct block_device *bdev)\n \tput_device(&bdev->bd_device);\n }\n \n-static bool bdev_writes_blocked(struct block_device *bdev)\n+bool bdev_writes_blocked(struct block_device *bdev)\n {\n \treturn bdev->bd_writers < 0;\n }\n+EXPORT_SYMBOL_GPL(bdev_writes_blocked);\n+\n \n static void bdev_block_writes(struct block_device *bdev)\n {\ndiff --git a/drivers/block/loop.c b/drivers/block/loop.c\nindex 0000913f7efc..3f3a29abad1f 100644\n--- a/drivers/block/loop.c\n+++ b/drivers/block/loop.c\n@@ -1239,6 +1239,18 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)\n \t\tgoto out_unlock;\n \t}\n \n+\t/*\n+\t * Changing lo_offset or lo_sizelimit on a mounted device is\n+\t * equivalent to modifying the block device contents, block\n+\t * this if writes are blocked on the device.\n+\t */\n+\tif ((lo->lo_offset != info->lo_offset ||\n+\t     lo->lo_sizelimit != info->lo_sizelimit) &&\n+\t    bdev_writes_blocked(lo->lo_device)) {\n+\t\terr = -EBUSY;\n+\t\tgoto out_unlock;\n+\t}\n+\n \tif (lo->lo_offset != info->lo_offset ||\n \t    lo->lo_sizelimit != info->lo_sizelimit) {\n \t\tsize_changed = true;\ndiff --git a/include/linux/blkdev.h b/include/linux/blkdev.h\nindex d463b9b5a0a5..6b908e9dd035 100644\n--- a/include/linux/blkdev.h\n+++ b/include/linux/blkdev.h\n@@ -820,6 +820,7 @@ static inline bool bdev_read_only(struct block_device *bdev)\n \treturn bdev_test_flag(bdev, BD_READ_ONLY) || get_disk_ro(bdev->bd_disk);\n }\n \n+bool bdev_writes_blocked(struct block_device *bdev);\n bool set_capacity_and_notify(struct gendisk *disk, sector_t size);\n void disk_force_media_change(struct gendisk *disk);\n void bdev_mark_dead(struct block_device *bdev, bool surprise);\n",
    "prefixes": []
}