<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/fuse/fuse_dev_i.h, branch linux-6.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-03-31T12:59:25Z</updated>
<entry>
<title>fuse: add kernel-enforced timeout option for requests</title>
<updated>2025-03-31T12:59:25Z</updated>
<author>
<name>Joanne Koong</name>
</author>
<published>2025-01-22T21:55:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0f6439f61a6e2ddc92b98362c6d1afc210f56a90'/>
<id>urn:sha1:0f6439f61a6e2ddc92b98362c6d1afc210f56a90</id>
<content type='text'>
There are situations where fuse servers can become unresponsive or
stuck, for example if the server is deadlocked. Currently, there's no
good way to detect if a server is stuck and needs to be killed manually.

This commit adds an option for enforcing a timeout (in seconds) for
requests where if the timeout elapses without the server responding to
the request, the connection will be automatically aborted.

Please note that these timeouts are not 100% precise. For example, the
request may take roughly an extra FUSE_TIMEOUT_TIMER_FREQ seconds beyond
the requested timeout due to internal implementation, in order to
mitigate overhead.

[SzM: Bump the API version number]

Signed-off-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: {io-uring} Fix a possible req cancellation race</title>
<updated>2025-03-31T12:53:02Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-03-25T17:29:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=09098e62e4be8f0755e58d6078aaf27cbd9a3a8d'/>
<id>urn:sha1:09098e62e4be8f0755e58d6078aaf27cbd9a3a8d</id>
<content type='text'>
task-A (application) might be in request_wait_answer and
try to remove the request when it has FR_PENDING set.

task-B (a fuse-server io-uring task) might handle this
request with FUSE_IO_URING_CMD_COMMIT_AND_FETCH, when
fetching the next request and accessed the req from
the pending list in fuse_uring_ent_assign_req().
That code path was not protected by fiq-&gt;lock and so
might race with task-A.

For scaling reasons we better don't use fiq-&gt;lock, but
add a handler to remove canceled requests from the queue.

This also removes usage of fiq-&gt;lock from
fuse_uring_add_req_to_ring_ent() altogether, as it was
there just to protect against this race and incomplete.

Also added is a comment why FR_PENDING is not cleared.

Fixes: c090c8abae4b ("fuse: Add io-uring sqe commit and fetch support")
Cc: &lt;stable@vger.kernel.org&gt; # v6.14
Reported-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Closes: https://lore.kernel.org/all/CAJnrk1ZgHNb78dz-yfNTpxmW7wtT88A=m-zF0ZoLXKLUHRjNTw@mail.gmail.com/
Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: {io-uring} Make fuse_dev_queue_{interrupt,forget} non-static</title>
<updated>2025-01-27T17:01:22Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:29:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ba74ba571189668697a8d8da906ad6d44762ebc6'/>
<id>urn:sha1:ba74ba571189668697a8d8da906ad6d44762ebc6</id>
<content type='text'>
These functions are also needed by fuse-over-io-uring.

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: {io-uring} Make hash-list req unique finding functions non-static</title>
<updated>2025-01-24T10:54:20Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:29:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3821336530616776414aa7a879640052b89def28'/>
<id>urn:sha1:3821336530616776414aa7a879640052b89def28</id>
<content type='text'>
fuse-over-io-uring uses existing functions to find requests based
on their unique id - make these functions non-static.

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: Add fuse-io-uring handling into fuse_copy</title>
<updated>2025-01-24T10:54:16Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:29:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f773a7c2c3d934d00542c6471170066d150d152f'/>
<id>urn:sha1:f773a7c2c3d934d00542c6471170066d150d152f</id>
<content type='text'>
Add special fuse-io-uring into the fuse argument
copy handler.

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: Make fuse_copy non static</title>
<updated>2025-01-24T10:54:12Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:29:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d0f9c62aaf7a98412b46a91fe7daad76b316b3b7'/>
<id>urn:sha1:d0f9c62aaf7a98412b46a91fe7daad76b316b3b7</id>
<content type='text'>
Move 'struct fuse_copy_state' and fuse_copy_* functions
to fuse_dev_i.h to make it available for fuse-io-uring.
'copy_out_args()' is renamed to 'fuse_copy_out_args'.

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: Move request bits</title>
<updated>2025-01-24T10:53:51Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:28:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=88be7aa98d91f5761f8764273ebd961915e4632d'/>
<id>urn:sha1:88be7aa98d91f5761f8764273ebd961915e4632d</id>
<content type='text'>
These are needed by fuse-over-io-uring.

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Josef Bacik &lt;josef@toxicpanda.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: Move fuse_get_dev to header file</title>
<updated>2025-01-24T10:53:45Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:28:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=867d93dcdede5ea453543085d1ed0bf43cde60de'/>
<id>urn:sha1:867d93dcdede5ea453543085d1ed0bf43cde60de</id>
<content type='text'>
Another preparation patch, as this function will be needed by
fuse/dev.c and fuse/dev_uring.c.

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Josef Bacik &lt;josef@toxicpanda.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>fuse: rename to fuse_dev_end_requests and make non-static</title>
<updated>2025-01-24T10:53:25Z</updated>
<author>
<name>Bernd Schubert</name>
</author>
<published>2025-01-20T01:28:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=92270d076115ae81b83f0605703602d2d5a866e2'/>
<id>urn:sha1:92270d076115ae81b83f0605703602d2d5a866e2</id>
<content type='text'>
This function is needed by fuse_uring.c to clean ring queues,
so make it non static. Especially in non-static mode the function
name 'end_requests' should be prefixed with fuse_

Signed-off-by: Bernd Schubert &lt;bschubert@ddn.com&gt;
Reviewed-by: Josef Bacik &lt;josef@toxicpanda.com&gt;
Reviewed-by: Joanne Koong &lt;joannelkoong@gmail.com&gt;
Reviewed-by: Luis Henriques &lt;luis@igalia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
</feed>
