]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 months agomulti-mds/link: Handle rollback for referent_inodes list
Kotresh HR [Mon, 24 Feb 2025 21:02:27 +0000 (02:32 +0530)]
multi-mds/link: Handle rollback for referent_inodes list

The referent inode added to the list on the primary/real
inode upon hardlink creation needs to rolled back properly
on failure. This patch takes care of the same.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Reverse link primary inode to hardlink
Kotresh HR [Mon, 24 Feb 2025 10:32:36 +0000 (16:02 +0530)]
multi-mds/link: Reverse link primary inode to hardlink

Reverse link primary/real inode to the hardlink using
the referent inode. This patch takes care of link with
multiple active mds link. So the primary inode would
be auth on one mds and the new hardlink dentry being
created would be auth on different mds.

This is done as below.

 1. Primary inode (CInode) maintains the referent_inodes list
 2. Upon referent inode creation on auth mds of dentry being
    created, the referent inode number is sent to auth mds of
    the primary/real inode using MMDSPeerRequest::OP_LINKPREP.
    The auth mds of primary/real inode adds it to the
    referent_inodes list

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Send referent inode to dentry_replicas
Kotresh HR [Mon, 24 Feb 2025 11:07:05 +0000 (16:37 +0530)]
multi-mds/link: Send referent inode to dentry_replicas

On hardlink creation with multiple mdses, the
hardlink dentry being created could already exist.
In such cases, the change in inode is notified to
dentry replicas using MDCache::send_dentry_link.
If it's a referent remote, send the referent inode
to the dentry replicas and link it correctly.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Create referent inode and store backtrace
Kotresh HR [Mon, 24 Feb 2025 08:12:44 +0000 (13:42 +0530)]
multi-mds/link: Create referent inode and store backtrace

On hardlink creation, create a referent inode (CInode)
and store backtrace for the hardlink. This patch
takes care of multiple active mds. So the primary inode
would be auth on one mds and the new hardlink dentry
being created would be auth on different mds.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/readdir: Handle referent inode
Kotresh HR [Mon, 24 Feb 2025 08:15:49 +0000 (13:45 +0530)]
mds/readdir: Handle referent inode

If the linkage is referent remote, link it
as referent remote.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/link: Reverse link primary inode to hardlink
Kotresh HR [Mon, 24 Feb 2025 05:54:19 +0000 (11:24 +0530)]
mds/link: Reverse link primary inode to hardlink

Reverse link primary/real inode to the hardlink using
the referent inode. This patch takes care of single
mds link. This is done as below.

 1. Primary inode (CInode) maintains the referent_inodes list
 2. Upon referent inode creation, the same is added the
    referent_inodes list on the primary/real inode.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/link: Create referent inode and store backtrace
Kotresh HR [Thu, 20 Feb 2025 07:56:30 +0000 (13:26 +0530)]
mds/link: Create referent inode and store backtrace

On hardlink creation, create a referent inode (CInode)
and store backtrace for the hardlink. This patch
takes care of single mds.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/mdcache: Handle referent inode on discover
Kotresh HR [Fri, 21 Feb 2025 20:55:26 +0000 (02:25 +0530)]
mds/mdcache: Handle referent inode on discover

The referent remote dentry needs to be properly
encoded and decoded along with inode during discover.
This patch ensures the same.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rejoin: Don't fetch the dir is already complete during rejoin
Kotresh HR [Fri, 21 Feb 2025 13:48:57 +0000 (19:18 +0530)]
mds/rejoin: Don't fetch the dir is already complete during rejoin

In MDCache::open_undef_inodes_dirfrags, it can so happen that
the same dir is added twice to fetch queue causing it to fetch
twice and hit the assert that dir is not complete for the
second fetch. So don't fetch if the dir is complete.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rejoin: Handle referent inode on MDSCache rejoin
Kotresh HR [Fri, 21 Feb 2025 12:34:03 +0000 (18:04 +0530)]
mds/rejoin: Handle referent inode on MDSCache rejoin

The involves broadly following changes.

1. Add 'referent_ino' in the struct 'dn_strong' and required
   encoding/decoding of the same. Noticed that the
   MMDSCacheRejoin message actually isn't versioned yet.
   There is a tracker [1] open for it. For now, CEPH_MDS_PROTOCOL
   is bumped up as usual.

2. The following functions needs a change to construct the
   in-memory referent inode from the inode number.

    MDCache::rejoin_walk
      - add_strong_dentry, pass referent inode number to build dn_strong
    MDCache::handle_cache_rejoin_strong
      - Construct referent inode from inode number if not found in memory and add_remote_dentry
    MDCache::handle_cache_rejoin_ack
      - Bad linkage check!, construct referent inode
    MDCache::rejoin_send_acks
      - add_strong_dentry, pass referent inode number to build dn_strong
    MDCache::handle_cache_rejoin_weak
      - add_strong_dentry, pass referent inode number as 0 to build dn_strong as it's weak rejoin

[1] https://tracker.ceph.com/issues/48886

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/migration: Handle referent inode during subtree migration
Kotresh HR [Thu, 20 Feb 2025 19:59:48 +0000 (01:29 +0530)]
mds/migration: Handle referent inode during subtree migration

The referent inode should be considered while migrating
the subtree. This patch takes care of migrating the
referent inode.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Handle referent inode while trimming the dentry
Kotresh HR [Thu, 20 Feb 2025 19:11:46 +0000 (00:41 +0530)]
mds: Handle referent inode while trimming the dentry

The referent inode needs to be removed while trimming
the dentry correctly. This patch handles the same in
the following functions.

MDCache::trim_dentry
MDCache::trim_non_auth
MDCache::trim_non_auth_subtree

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Handle referent remote similar to remote
Kotresh HR [Thu, 20 Feb 2025 11:20:31 +0000 (16:50 +0530)]
mds: Handle referent remote similar to remote

In multiple places in the code, the referent remote
needs to be handled similar to remote e.g rstats and
dirfrags check etc.

This patch adds the check in all the places so the
existing functionality doesn't break.

The changes are done in the following functions.

CDir::encode_lock_state
CDir::check_rstats
CDir::adjust_dentry_lru
CDir::steal_dentry
CDir::verify_fragstat
ScrubStack::scrub_dirfrag
Migrator::maybe_split_export
Server::reply_client_request
Server::build_snap_diff
MDCache::journal_cow_dentry
MDCache::path_traverse
MDCache::get_dentry_inode
MDCache::_open_remote_dentry_finish
MDCache::repair_dirfrag_stats_work

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Log referent_inodes list with CInode
Kotresh HR [Thu, 20 Feb 2025 11:01:42 +0000 (16:31 +0530)]
mds: Log referent_inodes list with CInode

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Log and dump referent remote cdentry
Kotresh HR [Thu, 20 Feb 2025 10:37:07 +0000 (16:07 +0530)]
mds: Log and dump referent remote cdentry

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/journal: Replay referent remote dentry
Kotresh HR [Wed, 19 Feb 2025 19:12:57 +0000 (00:42 +0530)]
mds/journal: Replay referent remote dentry

Add capability to EMetaBlob::replay to replay
the referent remote dentry journal. The replay
would take care of both remote dentry and
referent remote dentry.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/journal: Journal referent remote dentry
Kotresh HR [Wed, 19 Feb 2025 18:48:12 +0000 (00:18 +0530)]
mds/journal: Journal referent remote dentry

Add machinery to journal the referent remote dentry.
The call to metablob's add_remote_dentry is just
adding remote dentry and not referent remote dentry
yet. This will be fixed as part of operations like
link, unlink, rename which makes use of referent
inodes.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Make referent inodes a optional feature
Kotresh HR [Wed, 19 Feb 2025 16:44:30 +0000 (22:14 +0530)]
mds: Make referent inodes a optional feature

Hardlink referent inode plumbing work continues.
Add a fs option 'allow_referent_inodes'. Enabling the option,
allows the creation of referent inodes for the hardlinks
to store backtrace and viceversa. The option is disabled
by default so that it doesn't affect existing filesystems.

The option is introduced to handle upgrade as there is no
easy way to trace all the hardlinks of a file on existing
file systems to create referent inodes and update backtrace
online. So the feature is enabled only on new filesystems

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Load referent inode from disk
Kotresh HR [Tue, 18 Feb 2025 18:57:48 +0000 (00:27 +0530)]
mds: Load referent inode from disk

Hardlink referent inode plumbing work continues.
This patch adds the capability of loading the
referent inode from disk into the mdcache.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Commit referent inode to disk
Kotresh HR [Tue, 18 Feb 2025 18:49:14 +0000 (00:19 +0530)]
mds: Commit referent inode to disk

Hardlink referent inode plumbing work continues.
This patch adds the capability to commit the
referent inode created (would be part of hardlink
operation) to the disk.

The referent inode is marked with 'r'. If the
recovery tools recover the referent inode,
it's marked with 'R'

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Store list of hardlinks on the inode of primary link
Kotresh HR [Tue, 4 Mar 2025 06:19:46 +0000 (11:49 +0530)]
mds: Store list of hardlinks on the inode of primary link

Hardlink referent inode plumbing continues. In order to
solve the snapshot hardlink lookup problem i.e., to be
able to identify all the hardlinks from a given file,
we need to maintain the list of referent inodes
associated with hardlink on the primary link. Now we
have two way link between primary link and corresponding
hardlink i.e., the hardlink points the primary link and
primary link points to all the hardlinks.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Store remote inode number in referent inode
Kotresh HR [Tue, 4 Mar 2025 03:31:57 +0000 (09:01 +0530)]
mds: Store remote inode number in referent inode

Hardlink referent inode plumbing continues.
The remote inode information contains the following.
  1. remote_ino - remote inode number
  2. d_type
  3. alternate_name

With the introduction of the referent inode as a full
blown CInode for the hardlink, these information needs
to be part of the inode. Hence add 'remote_ino' field
to the inode. The exisiting 'd_type' and 'alternate_name'
fields could be used.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Hardlink referent inode plumbing work
Kotresh HR [Tue, 18 Feb 2025 11:17:53 +0000 (16:47 +0530)]
mds: Hardlink referent inode plumbing work

The linkage_t struct changes:
  - Add referent_ino(inodeno_t) and referent_inode(CInode *) to the
    linkage_t. These two fields becomes the core and identifies the
    linkage as referent remote.
  - Add 'is_referent_remote()' to check if it's referent remote
    and modify 'is_remote()', 'is_null()' check accordingly.
  - Add functions to access these fields.

Add the following new functions to link referent inode.
  1. CDentry::push_projected_linkage - with referent_inode
  2. CDir::link_null_referent_inode
  3. CDir::link_referent_inode

Modify the following existing functions to link/unlink referent inode
  1. CDentry::link_remote
  2. CDentry::unlink_remote
  3. CDentry::pop_projected_linakge
  4. CDentry::CDentry
  5. CDir::add_remote_dentry
  6. CDir::link_inode_work
  7. CDir::unlink_inode_work

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agoMerge pull request #61433 from smanjara/wip-fix-tenant-replication
J. Eric Ivancich [Mon, 3 Mar 2025 19:02:19 +0000 (14:02 -0500)]
Merge pull request #61433 from smanjara/wip-fix-tenant-replication

rgw/multisite: fix forwarded requests for tenanted buckets

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 months agoMerge pull request #61421 from clwluvw/replication-conf
J. Eric Ivancich [Mon, 3 Mar 2025 19:01:12 +0000 (14:01 -0500)]
Merge pull request #61421 from clwluvw/replication-conf

rgw: handle destination bucket as an ARN in ReplicationConfiguration

Reviewed-by: Adam Emerson <aemerson@redhat.com>
4 months agoMerge pull request #60990 from umesh-mv/wip-umeshmv-67933
J. Eric Ivancich [Mon, 3 Mar 2025 18:58:07 +0000 (13:58 -0500)]
Merge pull request #60990 from umesh-mv/wip-umeshmv-67933

rgw/rgw_zone : fixing inline-data default value

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 months agoMerge pull request #61650 from cbodley/wip-rgw-delete-full-try
Casey Bodley [Mon, 3 Mar 2025 17:03:09 +0000 (12:03 -0500)]
Merge pull request #61650 from cbodley/wip-rgw-delete-full-try

rgw/rados: enable object deletion at rados pool quota

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Adam Emerson <aemerson@redhat.com>
4 months agoMerge PR #61321 into main
Patrick Donnelly [Mon, 3 Mar 2025 13:34:58 +0000 (08:34 -0500)]
Merge PR #61321 into main

* refs/pull/61321/head:
qa: update require-osd-release to tentacle
tools/monmaptool: bump new cluster version to X
doc/dev/release-checklists: remove ceph-container task
script/ceph-release-notes: add squid/tentacle
doc/dev/release-checklists:: mark task complete
doc/dev/release-checklist: add nightlies task
doc/dev/release-checklists: update ceph-build for tentacle
doc/dev/release-checklists: note redmine is done
qa: update to tentacle
doc/dev/release-checklist: question telemetry tentacle test
osd/OSDMap: update to tentacle
qa/workunits/cephtool/test: update to tentacle
mon/OSDMonitor: update to tentacle
common/options/global.yaml.in: update for tentacle
mon/MgrMonitor: update for tentacle
qa/standalone/mon/misc: update for tentacle
doc: update compatset for tentacle
doc: no deprecated features
include/ceph_features: add SERVER_TENTACLE feature bit
cephadm,ceph-volume: update to tentacle
doc/dev/release-checklist: add backport-create-issue
script: update backport-resolve-issue to tentacle
*: add constants and release names
ceph_release: update to tentacle
librbd: bump version
CMakeLists.txt: update VERSION
doc: remove obsolete checklist item
doc: reset for tentacle

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
4 months agoMerge PR #60746 into main v20.0.0
Patrick Donnelly [Mon, 3 Mar 2025 13:31:36 +0000 (08:31 -0500)]
Merge PR #60746 into main

* refs/pull/60746/head:
client: skip unexpected command replies
mgr: indicate map message is acked instead of unhandled
osdc/Objecter: convert to ms_dispatch2 for ack
client: indicate maps are acked not processed
msg: add alternate statuses for ms_dispatch2 handling
tools/cephfs_mirror: do not process maps with fast dispatch
doc: add docs for volumes interface for charmap
qa: add tests for subvolume charmap settings
pybind/mgr/volumes: wire up charmap for subvol/subvolgroup
pybind/mgr: send MDS commands through cephfs client
pybind/cephfs: wire up mds_command2
mgr: add module method to send notifications
libcephfs: add mds_command2 for asynchronous commands
mgr: excise CephFS client from mgr C++ base
mgr: use std namespace
doc: add docs for CephFS charmap config
qa: add charmap tests
qa: add helpful exceptions for attr changes
qa: ignore libicu leaks
client: add wrappings for charmap manipuluation of dentry names
client: add dir_result_t::dentry::print
win32: add libicu Windows build
CMakeLists: add boost::locale dependency for client
install-deps: unconditionally install boost libraries
test/libcephfs: update root operation return values
client: refactor all path traversals through path_walk
test/libcephfs: test parallel creates
test/libcephfs: add test for lookup failure after readdir
client: init dentry shared_gen with invalid value
client: add _lookup debugging
client: remove redundant check
client: dump InodeStat from mds
mds: encode optmetadata in InodeStat sent to clients
mds: check client features for charmap
mds: add client feature bit for charmap
mds: wire up vxattr for changing charmap
mds: inherit charmap on mkdir
mds,include: add charmap optmetadata
mds,include: add inode_t optional metadata
client: hide alternate_name from API
client: move alternate_name once
client: optimize alternate_name passing to helper
client: relocate definition
client: print dentry with alternate_name on dump
client: move inode dump to print method
mds: add debugging for encoding lease stat
mds: make encode_lease a proper method
mds: add fscrypt metadata for inode stat size
client: use DentryRef for ref counting in MetaRequest
client: add DentryRef
client: add helper for determining if a perm check is necessary
client: cache client_permissions config
client: add debugging for conf changes
client: sort configs
client/UserPerm: add print method
client: note mount parameters in debug log
client: print stat mode in octal
common: add missing op string
include/filepath: add empty path check

Reviewed-by: Venky Shankar <vshankar@redhat.com>
4 months agoMerge pull request #61735 from Matan-B/wip-matanb-crimson-seastar-feb-25
Matan Breizman [Mon, 3 Mar 2025 12:55:00 +0000 (14:55 +0200)]
Merge pull request #61735 from Matan-B/wip-matanb-crimson-seastar-feb-25

seastar: bump up seastar submodule

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 months agoMerge pull request #61983 from adk3798/cephadm-fix-apply-same-nvmeof-service
Adam King [Mon, 3 Mar 2025 12:38:49 +0000 (07:38 -0500)]
Merge pull request #61983 from adk3798/cephadm-fix-apply-same-nvmeof-service

mgr/cephadm: don't block matching group for identical nvmeof services

Reviewed-by: Aviv Caro <133020857+caroav@users.noreply.github.com>
4 months agotest/crimson/seastore/CMakeLists: [arm64] disable omap manager 61735/head
Matan Breizman [Mon, 3 Mar 2025 09:31:56 +0000 (09:31 +0000)]
test/crimson/seastore/CMakeLists: [arm64] disable omap manager

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agocrimson: bump up seastar fixes
Matan Breizman [Sun, 9 Feb 2025 14:50:53 +0000 (14:50 +0000)]
crimson: bump up seastar fixes

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agoseastar: bump up seastar submodule
Matan Breizman [Sun, 9 Feb 2025 10:55:08 +0000 (10:55 +0000)]
seastar: bump up seastar submodule

Update branch to wip-matanb-seastar-feb-25

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agoMerge pull request #61494 from mohit84/seastar_configure
Matan Breizman [Mon, 3 Mar 2025 08:15:59 +0000 (10:15 +0200)]
Merge pull request #61494 from mohit84/seastar_configure

crimson: Provide an options to configure several seastar parameters

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 months agoMerge pull request #61874 from rhcs-dashboard/edit-storage-class
Nizamudeen A [Mon, 3 Mar 2025 05:23:42 +0000 (10:53 +0530)]
Merge pull request #61874 from rhcs-dashboard/edit-storage-class

mgr/dashboard: RGW - Edit Storage Class

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 months agoMerge pull request #61866 from xxhdx1985126/wip-seastore-omap-binary-search
Yingxin Cheng [Mon, 3 Mar 2025 02:25:32 +0000 (10:25 +0800)]
Merge pull request #61866 from xxhdx1985126/wip-seastore-omap-binary-search

crimson/os/seastore/omap_manager: do binary search on omap nodes

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 months agoMerge pull request #62076 from anthonyeleven/clarify-stretch-device-class
Zac Dover [Sun, 2 Mar 2025 20:51:34 +0000 (06:51 +1000)]
Merge pull request #62076 from anthonyeleven/clarify-stretch-device-class

doc/rados/operations: Clarify stretch mode vs device class

Reviewed-by: Zac Dover <zac.dover@proton.me>
4 months agoMerge pull request #61643 from rhcs-dashboard/nvmeof-img-trash
afreen23 [Sun, 2 Mar 2025 20:05:45 +0000 (01:35 +0530)]
Merge pull request #61643 from rhcs-dashboard/nvmeof-img-trash

mgr/dashboard: nvmeof trash rbd image on namespace rm

Reviewed-by: Afreen Misbah <afreen@ibm.com>
4 months agodoc/rados/operations: Clarify stretch mode vs device class 62076/head
Anthony D'Atri [Sun, 2 Mar 2025 15:43:18 +0000 (10:43 -0500)]
doc/rados/operations: Clarify stretch mode vs device class

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
4 months agoMerge pull request #62073 from Matan-B/wip-matanb-arm64-gcc-build
Matan Breizman [Sun, 2 Mar 2025 12:58:00 +0000 (14:58 +0200)]
Merge pull request #62073 from Matan-B/wip-matanb-arm64-gcc-build

cmake/modules/BuildISAL.cmake: set no-integrated-as on clang only

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
4 months agocmake/modules/BuildISAL.cmake: set no-integrated-as on clang only 62073/head
Matan Breizman [Sun, 2 Mar 2025 08:42:45 +0000 (08:42 +0000)]
cmake/modules/BuildISAL.cmake: set no-integrated-as on clang only

this option is only relevant to clang, gcc will fail with:
```
CMake Error at ceph/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-configure-Debug-impl.cmake:19 (message):
  Command failed (77):

   'env' 'CC=/usr/bin/gcc-11' './configure' '--prefix=ceph/build/src/isa-l/install' '--with-pic' '--enable-static' '--disable-shared' 'CFLAGS=-no-integrated-as'
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agoMerge pull request #61441 from ivancich/wip-dynamic-resharding-min-shards
J. Eric Ivancich [Sat, 1 Mar 2025 15:41:01 +0000 (10:41 -0500)]
Merge pull request #61441 from ivancich/wip-dynamic-resharding-min-shards

rgw: allow per-bucket minimum number of shards

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 months agoMerge pull request #62010 from ronen-fr/wip-rf-monotime
Ronen Friedman [Sat, 1 Mar 2025 11:07:09 +0000 (13:07 +0200)]
Merge pull request #62010 from ronen-fr/wip-rf-monotime

osd/scrub: tolerate non-monotonic scrub queue cutoff updates

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 months agoMerge pull request #61541 from rishabh-d-dave/mgr-vol-comment
Rishabh Dave [Sat, 1 Mar 2025 06:51:01 +0000 (12:21 +0530)]
Merge pull request #61541 from rishabh-d-dave/mgr-vol-comment

mgr/vol: add a helpful comment in async_job.py

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 months agoMerge pull request #61993 from ronen-fr/wip-rf-nbq-sign
Ronen Friedman [Sat, 1 Mar 2025 05:51:01 +0000 (07:51 +0200)]
Merge pull request #61993 from ronen-fr/wip-rf-nbq-sign

test/test_not_before_queue: fix Signed-vs-Unsigned warnings

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 months agodoc/rgw: update dynamic resharding docs to reflect recent changes 61441/head
J. Eric Ivancich [Fri, 28 Feb 2025 19:22:53 +0000 (14:22 -0500)]
doc/rgw: update dynamic resharding docs to reflect recent changes

The documentation on dynamic resharding is updated to include a) a
description of reducing the number of shards, b) related configuration
options, and c) the radosgw-admin sub-command to set a minimum number
of shards for a specific bucket.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 months agorgw: add radosgw-admin sub-command to set-min-shards for a bucket
J. Eric Ivancich [Tue, 4 Feb 2025 03:01:47 +0000 (22:01 -0500)]
rgw: add radosgw-admin sub-command to set-min-shards for a bucket

There is now a mechansim to set the minimum number of shards when a
bucket is created, and dynamic resharding adheres to that
setting. This adds the ability to modify that minimum shard count that
exists within the bucket layout of the bucket instance
object. Example:

    radosgw-admin bucket set-min-shards --bucket=<bucket> \
        --num-shards=<value>

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 months agorgw: allow per-bucket minimum number of shards
J. Eric Ivancich [Wed, 15 Jan 2025 16:26:59 +0000 (11:26 -0500)]
rgw: allow per-bucket minimum number of shards

Dynamic resharding can now reduce the number of shards. The code
currently has a hard-coded value of 11 as the minimum number of shards
dynamic resharding can reshard to. There may be cases where the user
wants to set an alternate minimum, such as when they have a sense of
how many objects the bucket will eventually hold.

This PR builds off of https://github.com/ceph/ceph/pull/61269 .

That PR allows the user to specify an initial number of shards during
bucket creation. This PR then takes that number to be the minimum and
saves it in the layout field of the bucket instance object
(RGWBucketInfo).

When dynamic resharding is triggered, it will use that stored value as
a minimum number of shards for resharing.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 months agoMerge pull request #62021 from dmick/container-rmi-tags
Dan Mick [Fri, 28 Feb 2025 19:31:13 +0000 (11:31 -0800)]
Merge pull request #62021 from dmick/container-rmi-tags

container/build.sh: remove local container images

4 months agoMerge pull request #61946 from cbodley/wip-70013
Casey Bodley [Fri, 28 Feb 2025 16:00:02 +0000 (11:00 -0500)]
Merge pull request #61946 from cbodley/wip-70013

rgw: PutObjectLockConfiguration can enable object lock on existing buckets

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
4 months agoMerge pull request #61901 from cbodley/wip-69936
Casey Bodley [Fri, 28 Feb 2025 14:35:31 +0000 (09:35 -0500)]
Merge pull request #61901 from cbodley/wip-69936

rgw/cksum: GetObject omits checksum headers for Range requests

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
4 months agoMerge pull request #61626 from zdover23/wip-doc-2025-02-03-rados-ops-pgs
Zac Dover [Fri, 28 Feb 2025 12:26:48 +0000 (22:26 +1000)]
Merge pull request #61626 from zdover23/wip-doc-2025-02-03-rados-ops-pgs

doc/rados: improve pg_num/pgp_num info

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
4 months agoMerge pull request #55838 from neesingh-rh/wip-58090
Rishabh Dave [Fri, 28 Feb 2025 10:21:08 +0000 (15:51 +0530)]
Merge pull request #55838 from neesingh-rh/wip-58090

mgr/volumes: fix dangling symlink in clone index

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Kotresh HR <khiremat@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
4 months agoMerge pull request #60394 from joscollin/wip-B68446-B68001-get-metrics-fix
Rishabh Dave [Fri, 28 Feb 2025 10:07:04 +0000 (15:37 +0530)]
Merge pull request #60394 from joscollin/wip-B68446-B68001-get-metrics-fix

qa: reconfigure only the appropriate client auth caps

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Neeraj Pratap Singh <neesingh@redhat.com>
4 months agoMerge pull request #61554 from rishabh-d-dave/check-mds-id
Rishabh Dave [Fri, 28 Feb 2025 10:03:45 +0000 (15:33 +0530)]
Merge pull request #61554 from rishabh-d-dave/check-mds-id

cephfs,mon: don't disallow "mds/fs fail" when other MDS/FS has health warning

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 months agoMerge pull request #61706 from rishabh-d-dave/subvol-meta-filename-too-long
Rishabh Dave [Fri, 28 Feb 2025 10:01:07 +0000 (15:31 +0530)]
Merge pull request #61706 from rishabh-d-dave/subvol-meta-filename-too-long

mgr/vol: print proper message when subvolume metadata filename is too long

Reviewed-by: Milind Changire <mchangir@redhat.com>
4 months agotest/test_not_before_queue: fix Signed-vs-Unsigned warnings 61993/head
Ronen Friedman [Tue, 25 Feb 2025 14:25:51 +0000 (08:25 -0600)]
test/test_not_before_queue: fix Signed-vs-Unsigned warnings

Fixes: https://tracker.ceph.com/issues/69525
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 months agoosd/scrub: log scrub-queue advance_time() failures 62010/head
Ronen Friedman [Wed, 26 Feb 2025 15:10:54 +0000 (09:10 -0600)]
osd/scrub: log scrub-queue advance_time() failures

such failures occur when the "Ceph clock" goes backwards,

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 months agocommon/not_before_queue_t: tolerate non-monotonic cut-off values
Ronen Friedman [Wed, 26 Feb 2025 15:07:39 +0000 (09:07 -0600)]
common/not_before_queue_t: tolerate non-monotonic cut-off values

as the system monotonic clock is used when the container is used
in Scrub implementation, and on some kernels there are rare cases
where the monotonic clock can go backwards, we need to tolerate
such events.

Fixes: https://tracker.ceph.com/issues/70055
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 months agoMerge pull request #62032 from Matan-B/wip-matanb-crimson-disable-txn-mgr-arm
Rongqi Sun [Fri, 28 Feb 2025 05:54:32 +0000 (13:54 +0800)]
Merge pull request #62032 from Matan-B/wip-matanb-crimson-disable-txn-mgr-arm

test/crimson/seastore/CMakeLists: disable unittest-transaction-manager (arm)

4 months agomg/dashboard: Edit Storage Class 61874/head
Dnyaneshwari [Tue, 11 Feb 2025 06:29:38 +0000 (11:59 +0530)]
mg/dashboard: Edit Storage Class

Fixes: https://tracker.ceph.com/issues/70016
Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
4 months agoMerge pull request #62022 from xxhdx1985126/wip-seastore-tree-pointer-abstract-cleanup
Yingxin Cheng [Fri, 28 Feb 2025 03:10:48 +0000 (11:10 +0800)]
Merge pull request #62022 from xxhdx1985126/wip-seastore-tree-pointer-abstract-cleanup

crimson/so/seastore: clean up logical_child_node.cc

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 months agoMerge pull request #62030 from zdover23/wip-doc-2025-02-27-rbd-nvmeof-requirements
Mike Perez [Fri, 28 Feb 2025 02:03:00 +0000 (18:03 -0800)]
Merge pull request #62030 from zdover23/wip-doc-2025-02-27-rbd-nvmeof-requirements

doc/rbd: improve nvmeof-requirements.rst

4 months agoMerge pull request #59213 from myoungwon/wip-dec-omap-leaf-size
Yingxin Cheng [Fri, 28 Feb 2025 01:34:52 +0000 (09:34 +0800)]
Merge pull request #59213 from myoungwon/wip-dec-omap-leaf-size

crimson/os/seastore: redirect log operations to 16K-leaf-size omap

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
4 months agoMerge PR #61682 into main
Patrick Donnelly [Fri, 28 Feb 2025 01:01:03 +0000 (20:01 -0500)]
Merge PR #61682 into main

* refs/pull/61682/head:
mds/snap: include cleanup
mds/MetricsHandler: include cleanup
mds/LogSegment: add missing includes
mds/JournalPointer: include cleanup
mds/cephfs_features: include cleanup
mds/MDSMap: include cleanup
mds/Migrator: include cleanup
mds/MDLog: include cleanup
mds/SnapServer: include cleanup
mds/MDSTableServer: include cleanup
mds/MetricAggregator: include cleanup
mds/SnapClient: include cleanup
mds/MDSPinger: include cleanup
mds/flock: include cleanup
mds/MDSAuthCaps: include cleanup
mds/QuiesceAgent: include cleanup
mds/QuiesceDb: include cleanup
mds/mdstypes: include cleanup
msg/Locker: include cleanup
mds/journal: add missing includes
mds/Server: include cleanup
mds/LogEvent: include cleanup
mds/Capability: include cleanup
mds/DamageTable: include cleanup
mds/StrayManager: include cleanup
mds/Mutation: include cleanup
mds/SnapRealm: include cleanup
mds/InoTable: add missing include
mds/ScatterLock: add missing include
mon/MDSMonitor: add missing include
mon/MDSDaemon: add missing include

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: skip unexpected command replies 60746/head
Patrick Donnelly [Tue, 18 Feb 2025 19:35:16 +0000 (14:35 -0500)]
client: skip unexpected command replies

Instead of marking the message as handled, give another component (or Client) a
chance to process.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: indicate map message is acked instead of unhandled
Patrick Donnelly [Tue, 18 Feb 2025 19:20:57 +0000 (14:20 -0500)]
mgr: indicate map message is acked instead of unhandled

This avoids messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoosdc/Objecter: convert to ms_dispatch2 for ack
Patrick Donnelly [Tue, 18 Feb 2025 18:46:58 +0000 (13:46 -0500)]
osdc/Objecter: convert to ms_dispatch2 for ack

Convert ms_dispatch to ms_dispatch2 to enable indicating that a map message is
acknowledged and instead of processed (or deliberately not processed).

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: indicate maps are acked not processed
Patrick Donnelly [Tue, 18 Feb 2025 18:45:22 +0000 (13:45 -0500)]
client: indicate maps are acked not processed

Ancillary change: do not do client upkeep after map processing.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomsg: add alternate statuses for ms_dispatch2 handling
Patrick Donnelly [Tue, 18 Feb 2025 17:41:52 +0000 (12:41 -0500)]
msg: add alternate statuses for ms_dispatch2 handling

Many dispatchers return false to allow other dispatchers also common messages
like MOSDMap or MFSMap. They implicitly depend on some dispatcher which is
always at the "tail" of the dispatcher queue to return "true" indicating the
msg was processed to avoid messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

but this cannot always happen when some libraries like the RadosClient used standalone.

So, add a variant for encapsulating other indications for how the message was
processed by dispatch2.  For example, a message may be "acknowledged" but
explicitly allow other dispatchers to try processing the message.

Note: we're using a variant to avoid updating all of the ms_dispatch code to
use the sentinel classes.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agotools/cephfs_mirror: do not process maps with fast dispatch
Patrick Donnelly [Tue, 18 Feb 2025 18:48:39 +0000 (13:48 -0500)]
tools/cephfs_mirror: do not process maps with fast dispatch

This acquires a lock which is a no-no in the messenger.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agodoc: add docs for volumes interface for charmap
Patrick Donnelly [Mon, 10 Feb 2025 17:22:49 +0000 (12:22 -0500)]
doc: add docs for volumes interface for charmap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: add tests for subvolume charmap settings
Patrick Donnelly [Wed, 8 Jan 2025 19:45:01 +0000 (14:45 -0500)]
qa: add tests for subvolume charmap settings

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agopybind/mgr/volumes: wire up charmap for subvol/subvolgroup
Patrick Donnelly [Wed, 8 Jan 2025 14:51:32 +0000 (09:51 -0500)]
pybind/mgr/volumes: wire up charmap for subvol/subvolgroup

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agopybind/mgr: send MDS commands through cephfs client
Patrick Donnelly [Wed, 5 Feb 2025 16:22:08 +0000 (11:22 -0500)]
pybind/mgr: send MDS commands through cephfs client

To avoid linking to the CephFS client statically, use the dynamically-linked
`cephfs` module to send commands to the MDS.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agopybind/cephfs: wire up mds_command2
Patrick Donnelly [Wed, 5 Feb 2025 16:21:41 +0000 (11:21 -0500)]
pybind/cephfs: wire up mds_command2

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: add module method to send notifications
Patrick Donnelly [Wed, 5 Feb 2025 16:19:25 +0000 (11:19 -0500)]
mgr: add module method to send notifications

For use by MgrModule.send_command to signal MDS command completion.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agolibcephfs: add mds_command2 for asynchronous commands
Patrick Donnelly [Wed, 5 Feb 2025 16:18:34 +0000 (11:18 -0500)]
libcephfs: add mds_command2 for asynchronous commands

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: excise CephFS client from mgr C++ base
Patrick Donnelly [Thu, 30 Jan 2025 22:08:07 +0000 (17:08 -0500)]
mgr: excise CephFS client from mgr C++ base

Linking to the client causes two copies of the Client library to be linked in
the ceph-mgr when modules also dynamically link to libcephfs via the "cephfs"
python library. This creates problems with duplicate boost::locale.

Instead, modules should just use the "cephfs" library to send commands to the
MDS.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: use std namespace
Patrick Donnelly [Thu, 30 Jan 2025 22:05:25 +0000 (17:05 -0500)]
mgr: use std namespace

This C++ code was relying on the Client.h header to bring in these names from
the std:: namespace. A subsequent commit plans to remove that header so add
namespace qualifier now.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agodoc: add docs for CephFS charmap config
Patrick Donnelly [Tue, 31 Dec 2024 19:46:03 +0000 (14:46 -0500)]
doc: add docs for CephFS charmap config

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: add charmap tests
Patrick Donnelly [Tue, 31 Dec 2024 17:59:01 +0000 (12:59 -0500)]
qa: add charmap tests

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: add helpful exceptions for attr changes
Patrick Donnelly [Tue, 31 Dec 2024 17:57:53 +0000 (12:57 -0500)]
qa: add helpful exceptions for attr changes

It's not possible to extract the error message from stderr by the caller.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: ignore libicu leaks
Patrick Donnelly [Mon, 24 Feb 2025 20:56:54 +0000 (15:56 -0500)]
qa: ignore libicu leaks

These are likely spurious and not interesting.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: add wrappings for charmap manipuluation of dentry names
Patrick Donnelly [Wed, 19 Feb 2025 16:17:00 +0000 (11:17 -0500)]
client: add wrappings for charmap manipuluation of dentry names

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
4 months agoclient: add dir_result_t::dentry::print
Patrick Donnelly [Fri, 3 Jan 2025 21:14:05 +0000 (16:14 -0500)]
client: add dir_result_t::dentry::print

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agowin32: add libicu Windows build
Lucian Petrut [Thu, 9 Jan 2025 13:50:18 +0000 (08:50 -0500)]
win32: add libicu Windows build

cephfs introduces a new dependency: libicu. We need to update the
Windows build scripts to build and link against libicu.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
4 months agoCMakeLists: add boost::locale dependency for client
Patrick Donnelly [Tue, 31 Dec 2024 17:59:12 +0000 (12:59 -0500)]
CMakeLists: add boost::locale dependency for client

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoinstall-deps: unconditionally install boost libraries
Patrick Donnelly [Wed, 8 Jan 2025 14:53:26 +0000 (09:53 -0500)]
install-deps: unconditionally install boost libraries

If we add a new Boost component, the install-deps.sh script will not install it
because other Boost libraries are installed with the desired version. Just
unconditionally install. The package manager is smart enough to skip already
installed packages.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agotest/libcephfs: update root operation return values
Patrick Donnelly [Wed, 19 Feb 2025 17:51:32 +0000 (12:51 -0500)]
test/libcephfs: update root operation return values

Switch from EBUSY to reasonable and normal errors for operations on the root
directory. Use the Client::path_walk machinery changes from the previous commit
to catch most of them, otherwise return EINVAL (which is normal for other POSIX
fs).

Fixes: 6ed7f2364ae5507bab14c60b582929aa7b0ba400
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: refactor all path traversals through path_walk
Patrick Donnelly [Thu, 14 Nov 2024 18:28:20 +0000 (13:28 -0500)]
client: refactor all path traversals through path_walk

This is groundwork to ensure that all code paths properly apply dentry name
transformations during traversal, specifically for casefolding.

Note some ancillary changes:

* readlink now correctly does lookup permission checks during path walk (previously a TODO).

* There has been some tweaking of the method signatures to accept an `const
  InodeRef&`. This was convenient when passing walk_dentry_result::diri around
  but the cascade in changes prompted me to leave it partially done to avoid
  blowing up this changeset.

It's worth noting that this change is somewhat "half done". I had made an
effort to have all operations (whether fuse or libcephfs) call path_walk once.
This was done for Client::_mkdir and a few others. See for example:

  - do_mkdirat -> _mkdir
  - mksnap -> _mkdir
  - ll_mkdir -> _mkdir
  - mkdirs -> _mkdir (this had other significant simplification/cleanup);
    however: note that we still have two calls to path_walk for any given
    directory to be created. This is not a problem because:

Client::path_walk is now more tolerant of being called in a openat-style way.
The method now accepts an anchor directory and relative path (which may be a
single dentry name for ll_* calls). It is also tolerant of the directory inode
in fact referencing the target inode with relative path == "". That is a useful
property for many openat-style APIs (although largely unofficially).  It also
means that if we resolve a path then we can pass the resolved Inode (directory)
/ string (Dentry name) pair to another method which may also call path_walk
with minimal replication of path walk work. This is done a few times in this
changeset.

Fixes: https://tracker.ceph.com/issues/66373
Fixes: https://tracker.ceph.com/issues/70100
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agotest/libcephfs: test parallel creates
Patrick Donnelly [Wed, 19 Feb 2025 20:28:46 +0000 (15:28 -0500)]
test/libcephfs: test parallel creates

That the cap_shared_gen value does not result in unexpected ENOENT.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agotest/libcephfs: add test for lookup failure after readdir
Patrick Donnelly [Mon, 24 Feb 2025 14:46:15 +0000 (09:46 -0500)]
test/libcephfs: add test for lookup failure after readdir

That we do not get unexpected ENOENT following readdirs (particularly thinking
of cap_shared_gen differences).

Test-case-for: https://tracker.ceph.com/issues/70100
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: init dentry shared_gen with invalid value
Patrick Donnelly [Wed, 19 Feb 2025 17:49:09 +0000 (12:49 -0500)]
client: init dentry shared_gen with invalid value

Directories and dentries are initialized with value 0 which makes detecting a
null  (or placeholder) dentry created via Client::get_or_create difficult.  We
already do checks to see if a dentry is invalid when the directory's shared_gen
changes so use an invalid value for these synthetic dentries until they can be
appropriately updated from Client::update_dentry_lease.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: add _lookup debugging
Patrick Donnelly [Wed, 19 Feb 2025 16:33:49 +0000 (11:33 -0500)]
client: add _lookup debugging

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: remove redundant check
Patrick Donnelly [Wed, 19 Feb 2025 16:32:06 +0000 (11:32 -0500)]
client: remove redundant check

This condition:

    (!dn->inode || dn->inode->caps_issued_mask(mask, true))

is already checked in the surrounding `if`.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: dump InodeStat from mds
Patrick Donnelly [Mon, 28 Oct 2024 20:19:25 +0000 (16:19 -0400)]
client: dump InodeStat from mds

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
4 months agomds: encode optmetadata in InodeStat sent to clients
Patrick Donnelly [Wed, 23 Oct 2024 18:00:35 +0000 (14:00 -0400)]
mds: encode optmetadata in InodeStat sent to clients

Deliberately do not dump the entire struct. Some metadata may not be
appropriate to share to clients.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
4 months agomds: check client features for charmap
Patrick Donnelly [Wed, 23 Oct 2024 18:49:49 +0000 (14:49 -0400)]
mds: check client features for charmap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373