<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/sunrpc/rpc_pipe.c, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-11-18T04:59:27Z</updated>
<entry>
<title>convert rpc_pipefs</title>
<updated>2025-11-18T04:59:27Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2024-02-26T07:26:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=946e2256775e50cc0d60f588ecfee60cf3b86b45'/>
<id>urn:sha1:946e2256775e50cc0d60f588ecfee60cf3b86b45</id>
<content type='text'>
Just use d_make_persistent() + dput() (and fold the latter into
simple_finish_creating()) and that's it...

NOTE: pipe-&gt;dentry is a borrowed reference - it does not contribute
to dentry refcount.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge tag 'pull-rpc_pipefs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2025-07-28T16:56:09Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2025-07-28T16:56:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ddf52f12ef500d9f2a5e325e0c86449f594abb25'/>
<id>urn:sha1:ddf52f12ef500d9f2a5e325e0c86449f594abb25</id>
<content type='text'>
Pull rpc_pipefs updates from Al Viro:
 "Massage rpc_pipefs to use saner primitives and clean up the APIs
  provided to the rest of the kernel"

* tag 'pull-rpc_pipefs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  rpc_create_client_dir(): return 0 or -E...
  rpc_create_client_dir(): don't bother with rpc_populate()
  rpc_new_dir(): the last argument is always NULL
  rpc_pipe: expand the calls of rpc_mkdir_populate()
  rpc_gssd_dummy_populate(): don't bother with rpc_populate()
  rpc_mkpipe_dentry(): switch to simple_start_creating()
  rpc_pipe: saner primitive for creating regular files
  rpc_pipe: saner primitive for creating subdirectories
  rpc_pipe: don't overdo directory locking
  rpc_mkpipe_dentry(): saner calling conventions
  rpc_unlink(): saner calling conventions
  rpc_populate(): lift cleanup into callers
  rpc_unlink(): use simple_recursive_removal()
  rpc_{rmdir_,}depopulate(): use simple_recursive_removal() instead
  rpc_pipe: clean failure exits in fill_super
  new helper: simple_start_creating()
</content>
</entry>
<entry>
<title>rpc_create_client_dir(): return 0 or -E...</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2025-03-23T04:51:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=350db61fbeb940502a16e74153ee5954d03622e9'/>
<id>urn:sha1:350db61fbeb940502a16e74153ee5954d03622e9</id>
<content type='text'>
Callers couldn't care less which dentry did we get - anything
valid is treated as success.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_create_client_dir(): don't bother with rpc_populate()</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2025-03-07T04:46:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3ee735ef5a034616c3a60401ee31182eefcc3e4a'/>
<id>urn:sha1:3ee735ef5a034616c3a60401ee31182eefcc3e4a</id>
<content type='text'>
not for a single file...

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_new_dir(): the last argument is always NULL</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2024-02-21T04:38:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=db83fa912ef26f1ce3f4aa55a09fd7ce94730a4d'/>
<id>urn:sha1:db83fa912ef26f1ce3f4aa55a09fd7ce94730a4d</id>
<content type='text'>
All callers except the one in rpc_populate() pass explicit NULL
there; rpc_populate() passes its last argument ('private') instead,
but in the only call of rpc_populate() that creates any subdirectories
(when creating fixed subdirectories of root) private itself is NULL.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_pipe: expand the calls of rpc_mkdir_populate()</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2024-02-21T03:23:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=805060a69c3e5961c55dc5e53bcdcec323a2aa4c'/>
<id>urn:sha1:805060a69c3e5961c55dc5e53bcdcec323a2aa4c</id>
<content type='text'>
... and get rid of convoluted callbacks.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_gssd_dummy_populate(): don't bother with rpc_populate()</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2025-03-23T00:26:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=065e88fa33fad17059541e3ad3f05e4097650773'/>
<id>urn:sha1:065e88fa33fad17059541e3ad3f05e4097650773</id>
<content type='text'>
Just have it create gssd (in root), clntXX in gssd, then info and gssd in clntXX
- all with explicit rpc_new_dir()/rpc_new_file()/rpc_mkpipe_dentry().

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_mkpipe_dentry(): switch to simple_start_creating()</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2025-03-23T00:23:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a117bf4caab2877c5ca050c005a1a7ca49a801f4'/>
<id>urn:sha1:a117bf4caab2877c5ca050c005a1a7ca49a801f4</id>
<content type='text'>
... and make sure we set the fs-private part of inode up before
attaching it to dentry.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_pipe: saner primitive for creating regular files</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2025-03-23T00:10:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c1da75895c037822546c24a10fa45d4bef6fb79'/>
<id>urn:sha1:5c1da75895c037822546c24a10fa45d4bef6fb79</id>
<content type='text'>
rpc_new_file(); similar to rpc_new_dir(), except that here we pass
file_operations as well.  Callers don't care about dentry, just
return 0 or -E...

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>rpc_pipe: saner primitive for creating subdirectories</title>
<updated>2025-07-03T02:44:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2025-03-22T23:50:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc1abdca51ed7ddfe3fa8090a5b1f9ef9a792a22'/>
<id>urn:sha1:fc1abdca51ed7ddfe3fa8090a5b1f9ef9a792a22</id>
<content type='text'>
All users of __rpc_mkdir() have the same form - start_creating(),
followed, in case of success, by __rpc_mkdir() and unlocking parent.

Combine that into a single helper, expanding __rpc_mkdir() into it,
along with the call of __rpc_create_common() in it.

Don't mess with d_drop() + d_add() - just d_instantiate() and be
done with that.  The reason __rpc_create_common() goes for that
dance is that dentry it gets might or might not be hashed; here
we know it's hashed.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
