<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ceph/mds_client.c, branch linux-6.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-04-11T20:56:28Z</updated>
<entry>
<title>ceph: switch to use cap_delay_lock for the unlink delay list</title>
<updated>2024-04-11T20:56:28Z</updated>
<author>
<name>Xiubo Li</name>
</author>
<published>2024-04-09T00:56:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17f8dc2db52185460f212052f3a692c1fdc167ba'/>
<id>urn:sha1:17f8dc2db52185460f212052f3a692c1fdc167ba</id>
<content type='text'>
The same list item will be used in both cap_delay_list and
cap_unlink_delay_list, so it's buggy to use two different locks
to protect them.

Cc: stable@vger.kernel.org
Fixes: dbc347ef7f0c ("ceph: add ceph_cap_unlink_work to fire check_caps() immediately")
Link: https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/AODC76VXRAMXKLFDCTK4TKFDDPWUSCN5
Reported-by: Marc Ruhmann &lt;ruhmann@luis.uni-hannover.de&gt;
Signed-off-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Reviewed-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Tested-by: Marc Ruhmann &lt;ruhmann@luis.uni-hannover.de&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>ceph: add ceph_cap_unlink_work to fire check_caps() immediately</title>
<updated>2024-02-13T10:22:54Z</updated>
<author>
<name>Xiubo Li</name>
</author>
<published>2023-09-14T02:29:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbc347ef7f0c53aa4a5383238a804d7ebbb0b5ca'/>
<id>urn:sha1:dbc347ef7f0c53aa4a5383238a804d7ebbb0b5ca</id>
<content type='text'>
When unlinking a file the check caps could be delayed for more than
5 seconds, but in MDS side it maybe waiting for the clients to
release caps.

This will use the cap_wq work queue and a dedicated list to help
fire the check_caps() and dirty buffer flushing immediately.

Link: https://tracker.ceph.com/issues/50223
Signed-off-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Reviewed-by: Milind Changire &lt;mchangir@redhat.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>ceph: always check dir caps asynchronously</title>
<updated>2024-02-07T13:58:02Z</updated>
<author>
<name>Xiubo Li</name>
</author>
<published>2024-01-04T01:21:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=07045648c07c5632e0dfd5ce084d3cd0cec0258a'/>
<id>urn:sha1:07045648c07c5632e0dfd5ce084d3cd0cec0258a</id>
<content type='text'>
The MDS will issue the 'Fr' caps for async dirop, while there is
buggy in kclient and it could miss releasing the async dirop caps,
which is 'Fsxr'. And then the MDS will complain with:

"[WRN] client.xxx isn't responding to mclientcaps(revoke) ..."

So when releasing the dirop async requests or when they fail we
should always make sure that being revoked caps could be released.

Link: https://tracker.ceph.com/issues/50223
Signed-off-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Reviewed-by: Milind Changire &lt;mchangir@redhat.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'ceph-for-6.8-rc1' of https://github.com/ceph/ceph-client</title>
<updated>2024-01-19T17:58:55Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2024-01-19T17:58:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=556e2d17cae620d549c5474b1ece053430cd50bc'/>
<id>urn:sha1:556e2d17cae620d549c5474b1ece053430cd50bc</id>
<content type='text'>
Pull ceph updates from Ilya Dryomov:
 "Assorted CephFS fixes and cleanups with nothing standing out"

* tag 'ceph-for-6.8-rc1' of https://github.com/ceph/ceph-client:
  ceph: get rid of passing callbacks in __dentry_leases_walk()
  ceph: d_obtain_{alias,root}(ERR_PTR(...)) will do the right thing
  ceph: fix invalid pointer access if get_quota_realm return ERR_PTR
  ceph: remove duplicated code in ceph_netfs_issue_read()
  ceph: send oldest_client_tid when renewing caps
  ceph: rename create_session_open_msg() to create_session_full_msg()
  ceph: select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
  ceph: fix deadlock or deadcode of misusing dget()
  ceph: try to allocate a smaller extent map for sparse read
  libceph: remove MAX_EXTENTS check for sparse reads
  ceph: reinitialize mds feature bit even when session in open
  ceph: skip reconnecting if MDS is not ready
</content>
</entry>
<entry>
<title>ceph: send oldest_client_tid when renewing caps</title>
<updated>2024-01-15T14:40:51Z</updated>
<author>
<name>Xiubo Li</name>
</author>
<published>2023-11-16T02:56:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6df89bf220fdac9f40b0d35cd132eef54cf99d4b'/>
<id>urn:sha1:6df89bf220fdac9f40b0d35cd132eef54cf99d4b</id>
<content type='text'>
Update the oldest_client_tid via the session renew caps msg to
make sure that the MDSs won't pile up the completed request list
in a very large size.

[ idryomov: drop inapplicable comment ]

Link: https://tracker.ceph.com/issues/63364
Signed-off-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Reviewed-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>ceph: rename create_session_open_msg() to create_session_full_msg()</title>
<updated>2024-01-15T14:40:51Z</updated>
<author>
<name>Xiubo Li</name>
</author>
<published>2023-11-16T01:46:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=66207de308df82242da0bf88035b24bcd4377562'/>
<id>urn:sha1:66207de308df82242da0bf88035b24bcd4377562</id>
<content type='text'>
Makes the create session msg helper to be more general and could
be used by other ops.

Signed-off-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Reviewed-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>ceph: reinitialize mds feature bit even when session in open</title>
<updated>2024-01-15T14:40:50Z</updated>
<author>
<name>Venky Shankar</name>
</author>
<published>2023-11-06T04:32:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f48e0342a74d7770cdf1d11894bdc3b6d989b29e'/>
<id>urn:sha1:f48e0342a74d7770cdf1d11894bdc3b6d989b29e</id>
<content type='text'>
Following along the same lines as per the user-space fix. Right
now this isn't really an issue with the ceph kernel driver because
of the feature bit laginess, however, that can change over time
(when the new snaprealm info type is ported to the kernel driver)
and depending on the MDS version that's being upgraded can cause
message decoding issues - so, fix that early on.

Link: http://tracker.ceph.com/issues/63188
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>ceph: skip reconnecting if MDS is not ready</title>
<updated>2024-01-15T14:40:50Z</updated>
<author>
<name>Xiubo Li</name>
</author>
<published>2023-08-24T09:55:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cbcb358b744bf8d8c52b35d5efb1a960438c31cd'/>
<id>urn:sha1:cbcb358b744bf8d8c52b35d5efb1a960438c31cd</id>
<content type='text'>
When MDS closed the session the kclient will send to reconnect to
it immediately, but if the MDS just restarted and still not ready
yet, such as still in the up:replay state and the sessionmap journal
logs hasn't be replayed, the MDS will close the session.

And then the kclient could remove the session and later when the
mdsmap is in RECONNECT phrase it will skip reconnecting. But the MDS
will wait until timeout and then evict the kclient.

Just skip sending the reconnection request until the MDS is ready.

Link: https://tracker.ceph.com/issues/62489
Signed-off-by: Xiubo Li &lt;xiubli@redhat.com&gt;
Reviewed-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
</content>
</entry>
<entry>
<title>dentry: switch the lists of children to hlist</title>
<updated>2023-11-25T07:32:13Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2023-11-07T07:00:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da549bdd15c295c24b2ee7ffe7ad0f3877fa8a87'/>
<id>urn:sha1:da549bdd15c295c24b2ee7ffe7ad0f3877fa8a87</id>
<content type='text'>
Saves a pointer per struct dentry and actually makes the things less
clumsy.  Cleaned the d_walk() and dcache_readdir() a bit by use
of hlist_for_... iterators.

A couple of new helpers - d_first_child() and d_next_sibling(),
to make the expressions less awful.

Reviewed-by: Christian Brauner &lt;brauner@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge tag 'ceph-for-6.7-rc1' of https://github.com/ceph/ceph-client</title>
<updated>2023-11-10T17:52:56Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2023-11-10T17:52:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e21165bfbc6c5d259466a7b2eccb66630e807bfb'/>
<id>urn:sha1:e21165bfbc6c5d259466a7b2eccb66630e807bfb</id>
<content type='text'>
Pull ceph updates from Ilya Dryomov:

 - support for idmapped mounts in CephFS (Christian Brauner, Alexander
   Mikhalitsyn).

   The series was originally developed by Christian and later picked up
   and brought over the finish line by Alexander, who also contributed
   an enabler on the MDS side (separate owner_{u,g}id fields on the
   wire).

   The required exports for mnt_idmap_{get,put}() in VFS have been acked
   by Christian and received no objection from Christoph.

 - a churny change in CephFS logging to include cluster and client
   identifiers in log and debug messages (Xiubo Li).

   This would help in scenarios with dozens of CephFS mounts on the same
   node which are getting increasingly common, especially in the
   Kubernetes world.

* tag 'ceph-for-6.7-rc1' of https://github.com/ceph/ceph-client:
  ceph: allow idmapped mounts
  ceph: allow idmapped atomic_open inode op
  ceph: allow idmapped set_acl inode op
  ceph: allow idmapped setattr inode op
  ceph: pass idmap to __ceph_setattr
  ceph: allow idmapped permission inode op
  ceph: allow idmapped getattr inode op
  ceph: pass an idmapping to mknod/symlink/mkdir
  ceph: add enable_unsafe_idmap module parameter
  ceph: handle idmapped mounts in create_request_message()
  ceph: stash idmapping in mdsc request
  fs: export mnt_idmap_get/mnt_idmap_put
  libceph, ceph: move mdsmap.h to fs/ceph
  ceph: print cluster fsid and client global_id in all debug logs
  ceph: rename _to_client() to _to_fs_client()
  ceph: pass the mdsc to several helpers
  libceph: add doutc and *_client debug macros support
</content>
</entry>
</feed>
