The option 'client_die_on_failed_dentry_invalidate' requires to kill
the client when fails to invalidate the dentry caches from kernel.
The CephFS client requires a mechanism to invalidate dentries in the
caller (e.g. the kernel for ceph-fuse) when capabilities must be recalled.
If the client cannot do this then the MDS cache cannot shrink which
can cause the MDS to fail.
Introduced by commit
8c778e79840f1aa9b9731e2ef20881da0d122fda.
Fixes: https://tracker.ceph.com/issues/57126
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit
c8140cdeab5a5cc88da94e697b97b107155a601c)
explicit C_Client_Remount(Client *c) : client(c) {}
void finish(int r) override {
ceph_assert(r == 0);
- client->_do_remount(true);
+ auto result = client->_do_remount(true);
+ if (result.second) {
+ ceph_abort();
+ }
}
};