Re: [PATCH v4 1/6] fs: add write-stream management ioctls

Christoph Hellwig <[email protected]>
Newsgroups org.kernel.vger.linux-xfs,org.kernel.vger.linux-block,org.kernel.vger.linux-fsdevel
Message-ID <[email protected]>
On Thu, Jul 30, 2026 at 08:22:51PM +0530, Kanchan Joshi wrote:
> Christoph's idea was to use FD for a write-stream so that it remains 
> exclusive to the application and unrelated applications don't collide.
> 
> So, in this version, write-stream ids are implemented as independent 
> resource:
> - To set a file's write-stream ID to X, the app must first obtain the fd 
> for stream X.
> - That stream/fd will be unavailable if some other application has 
> already opened it.
> - If applications gets the stream fd, it can use that to set stream id 
> for multiple files.
> - It can close the stream-fd and that does not change anything for the 
> file resource (i.e, its inode continue to carry the stream-id value that 
> was set).
> 
> Christoph - does this match?

Almost.  I didn't really think of your last point there.  If the
inodes keeps using it when it is dropped that breaks the model a
bit, but revoking it might make things a bit ugly and slow.  Urgg.

> Here are the revised names (suggestions?):
> 
> 1. FS_IOC_QUERY_MAX_WRITE_STREAM_IDS		_IOR('f', 135, __u32)
> 
> Returns (in __u32) number of supported stream-ids.
> 
> 2. FS_IOC_OPEN_WRITE_STREAM_ID			_IOWR('f', 136, struct 
> fs_write_stream_open)
> 
> Open the specific write-stream id (or any available one via a flag) and 
> return its FD. This gives right to use that stream-id.

maybe s/OPEN/ALLOC(ATA)/ ?

> And the following manage setting/clearing/querying write-stream on the file:
> 
> 3. FS_IOC_SET_FILE_WRITE_STREAM_BY_FD		_IOW('f', 137, __s32)
> 
> Sets a file's write-stream value (in inode) to whatever the stream fd 
> (passed as __s32) carries. So one never sets scalar values into a file 
> directly.

I'd drop the _BY_FD.

> 
> 4. FS_IOC_QUERY_FILE_WRITE_STREAM_ID		_IOR('f', 138, __u32)
> 
> Queries the write-stream value (__u32) currently assigned to the file 
> (its inode).

I'm not sure exposing the actual ID to the user space application is a
that good idea, same for passing in the wanted ID when allocating.
That leaks a lot of internal details.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.