From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (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 757C555D868 for ; Tue, 13 Oct 2026 20:55:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924946; cv=none; b=kg+52pUFm51OypRCDGMLmhbuCnZDY2WP0YI/dUHj3ToucdBZD6gxd8MWCNOncWhINbajVE6CNm2trL/I/TmCuLuP95g5p02daDQObPuzgknnOyRVuF4pzRxowBYp3aaI1Dwz60sSDOZzMdgbKnjBsQCSFRSw5bmdUSsYYjV5+I4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924946; c=relaxed/simple; bh=Yz9mg10bqVdj7cVQ9CUCuhVSPCWk27GUE+7ZZMs5kDo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UGcQzWLhFCLhN3t1JXic76hFHYw0cdrTo/K2QCHWYE+94C7/QZFd7f0b3lzSGevGQAy1sncl5fqwRqMifSnBK8fQ1DFhkqXYjifp3eUw5PVxvtGbStdmSJcFq7mZkEJlaPeyE3HmYOLdVyJs58nFdaZAZ5G04NORXhb/6euW/kQ= 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=reXEvNR0; arc=none smtp.client-ip=209.85.221.48 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="reXEvNR0" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-48c4649b35bso3185257f8f.3 for ; Tue, 13 Oct 2026 13:55:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791924941; x=1792529741; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9CL2BRiyUp3CaHGocQHkhsGpx+V6MY3r8MUNMnInA+U=; b=reXEvNR0/oR539rFg/mAmOONmVBwbmQ5GC0k5RqdLIb/28t4/sJhr9VlDMTRP2selU EI4ngzmBIR9o5vFVZS9V9CaZL5VtDAlekC5OfeqLFQdxj+RDiXxfPjoh+PtAMIyxpKNJ O0DFXdOF0VFWMHxoAo63DYMgxwl+rz83JhX3fFTDS/DfTNvJlOp9F83hbiiJTGFaARTZ JBRYoCS72lG3ocBNO8HKt0IASjzWzzMN9YA70nYzttT1XQA7iPI7j49DK8ba1DVCJZ4u IHzcMBO3S1gfqL1W89gg20Tv22hBES4Q4H7nzrgnZ9u3rn4yvrh8RrmjLnGBW18SAySE sMVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924941; x=1792529741; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=9CL2BRiyUp3CaHGocQHkhsGpx+V6MY3r8MUNMnInA+U=; b=roVeiGq0Xiq0+tnoRYiYAZvKPtWi5XTbx4VYrMi5QZmTRjsN6dFvYqAo4saIJ7y+bW 4ANahwqIAq6Ju5qrqDX7Zg7NTOH53p/dtqxjJtZetQhKvuk/h7L3v9xpuVPnoEGxpGvO mmsdWC0E3aTUNU9qCOeN/Kv9oIfVVhmLT8+qIFYsLDj1r3wcYXOvOUOIC3IV6tBd7kpq fhkxUz981LI8m2lKwn69mCbedZHexhhBJPB8hgJZdDRvW3Ctr/MaHS59c7lMTtDufzCz d3VQfHEfFUhtk5Cs1FZCpnj40R6mq1Kd2CkujjNSmFMx7tf3JE3gs57T7I0xdVWUomAN inhA== X-Forwarded-Encrypted: i=1; AKwUvBzofxCyptldvNGkGwaJnZQ+9DslzMUpo638U3HbyFgaTeRbtTmH04kQR1vPYYTNwuySHlOuuy/o1qKBCHM=@vger.kernel.org X-Gm-Message-State: AFq9FYJ9r7Y7CDh8x4S7r5+zKyaIfH8nU+nlu++Ob5VMPSFuP1QRFtge 5SbpJfwHRUEH+tfW3Cyveiyz0HOhlUjacLY0SDVd8vmSBywydoK9eEhw X-Gm-Gg: AYBFou2TAET1h9AGYd1EfXLwuhnd9WYsVU7PIJ24MvfFN87rXpXXCVq4mySLneXjZSZ v3yGru4axbJSsmcVMvXQXi6tfArVoDhRE18jhzNIjTxJId5FffjLiLmUxonTWx5JwevVxlVRb1A Dj9kkjgfPMuph5uz9aH3l7JZ9v+CkBBnzyxdSushpUvRYztxuoVdbsCywv5GD+WOohd5Lja7GKD ImU/5msVKm/mv/HZEWUTdJSjZdKE4VBnthr9D9jQ2j2O3/S/hKE5xzvAqM1xzurPypQznVY2Olu ErFU8VVHyWwCQuDK2l1PbXV0GVMxStpefDEGH3Tyi/vx0Fm9oQy+MW4OMkI3oj4hWIyAja987KG hxMORj4X52qDEo5UVqP7M4Q3jO153jyEOX5MHaq2J+O2gHIWb/zO8ukkUXZCrHI7UR4zqNcsfwC Jbf8vrWCFy7wRnBuYIPiCmeWCS+XJrbvkQO8oApaTaXWBslTtRJIS/ybOIqYLmZXcbFABZNTa7O 0IalkODuzuNHTawN/kHHeztyrDmrKMQ7IUSuav9NxIKuW4YoVHR9N4E0hMRsYgclPYHPrHf8non P4Y6EB1QXHE= X-Received: by 2002:a05:6000:2407:b0:487:1ddc:aaff with SMTP id ffacd0b85a97d-48dbace40cfmr24537298f8f.44.1791924941527; Tue, 13 Oct 2026 13:55:41 -0700 (PDT) Received: from 127.mynet ([2a01:4b00:bd21:4f00:7cc6:d3ca:494:116c]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48de7273a0esm2380730f8f.29.2026.10.13.13.55.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:55:39 -0700 (PDT) From: Pavel Begunkov To: linux-block@vger.kernel.org Cc: asml.silence@gmail.com, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-nvme@lists.infradead.org, linux-fsdevel@vger.kernel.org, io-uring@vger.kernel.org, Christoph Hellwig , Sumit Semwal , =?UTF-8?q?Christian=20K=C3=B6nig?= , Keith Busch , Sagi Grimberg , Alexander Viro , Christian Brauner , Jan Kara , Andrew Morton , Jens Axboe , Nitesh Shetty , Kanchan Joshi , Anuj Gupta , Tushar Gohad , William Power , Matthew Brost , Alasdair Kergon , Mike Snitzer , Mikulas Patocka , Benjamin Marzinski , dm-devel@lists.linux.dev Subject: [PATCH v10 11/13] io_uring/rsrc: add uncloneable regbuf flag Date: Tue, 13 Oct 2026 21:54:55 +0100 Message-ID: X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit It's hard to implement cloning if the internal structure needs to be mutable and/or relies on other ring resources. In preparation to such buffer types, add a flag indicating that the buffer can't be cloned. It might be possible to add cloning in the future for them, but that would likely need reallocating the structure and reacquiring resources in case by case manner. Signed-off-by: Pavel Begunkov --- io_uring/rsrc.c | 5 +++++ io_uring/rsrc.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c index 54774729ee67..532866a1e9b9 100644 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@ -1458,6 +1458,11 @@ static int io_clone_buffers(struct io_ring_ctx *ctx, struct io_ring_ctx *src_ctx if (!src_node) { dst_node = NULL; } else { + if (src_node->buf->flags & IO_REGBUF_F_UNCLONEABLE) { + io_rsrc_data_free(ctx, &data); + return -EOPNOTSUPP; + } + dst_node = io_rsrc_node_alloc(ctx, IORING_RSRC_BUFFER); if (!dst_node) { io_rsrc_data_free(ctx, &data); diff --git a/io_uring/rsrc.h b/io_uring/rsrc.h index 9ef88383b363..73d7b1ebf0b6 100644 --- a/io_uring/rsrc.h +++ b/io_uring/rsrc.h @@ -26,7 +26,8 @@ struct io_rsrc_node { }; enum { - IO_REGBUF_F_KBUF = 1, + IO_REGBUF_F_KBUF = 1 << 0, + IO_REGBUF_F_UNCLONEABLE = 1 << 1, }; struct io_mapped_ubuf { -- 2.54.0