Ville Ojamo [Tue, 29 Jul 2025 06:23:07 +0000 (13:23 +0700)]
doc: Fix a Sphinx warning&error and use labels for links in 4 files
Fix Sphinx warning about missing empty line after a label in
cephfs/ceph-dokan.rst.
Fix Sphinx error about invalid indentation in releases/squid.rst.
Fix Sphinx warning about invalid bash prompt block in
dev/crimson/crimson.rst.
Also fix warnings about too short section title text underline and fix
an incorrect link name (and use "above" instead of "below").
Fix Sphinx warning about missing strong emphasis closure, put the
problematic star inside inline preformatted/code in dev/blkin.rst.
Fix Sphinx warning about explicit markup, add the required empty line in
cephfs/mds-config-ref.rst.
Fix Sphinx error about invalid table in radosgw/s3/bucketops.rst.
Use the label at the beginning of the document in cephfs/ceph-dokan.rst
for hyperlinking with :ref: instead of using "external links" feature
from cephfs/createfs.rst cephfs/mount-prerequisites.rst
install/windows-install.rst.
Also use existing label in cephfs/mount-using-kernel-driver.rst
similarly from cephfs/createfs.rst cephfs/mount-prerequisites.rst.
Also use existing label in man/8/cephfs-shell.rst similarly from
cephfs/index.rst.
Add a label in cephfs/mount-using-fuse.rst and use it from
cephfs/createfs.rst cephfs/mount-prerequisites.rst.
Remove space at the end of line in cephfs/createfs.rst
cephfs/mount-prerequisites.rst cephfs/mount-using-fuse.rst
cephfs/cephfs-fuse.rst cephfs/index.rst.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Ville Ojamo [Tue, 29 Jul 2025 15:56:38 +0000 (22:56 +0700)]
doc/cephadm/services: Improve formatting and small fixes in index.rst
Indent block formatting to the left margin of the current paragraph.
And indent with a consistent amount of spaces.
Fix some text paragraphs indented too much.
Remove spaces at the end of lines.
Remove a stray space preceding a comma and in the middle of a hostname.
Add some full stops and colons where suitable.
Use title case in section titles consistently.
Fix some capitalization errors in text: YAML, CPU, some words starting
with capital case in the middle of a sentence.
Always use "service specification" (capitalized normally) instead of
also sometimes "Service Specification" or "Services Specification".
Cephadm the concept was sometimes capitalized even in the middle of a
sentence, sometimes not capitalized even in the beginning of a sentence.
Only capitalize it at the beginning of a sentence.
Capitalize "MON" when it refers to daemon/service and not to a
configuration parameter, for consistency with other such services.
Use double backticks instead of single backtick or otherwise for data
like warning names, CLI commands, file names.
Don't direct to add a space after "regex:" for a pattern, which
contradicted the next sample.
Try to improve a sentence to also mention the host list after the count
in an example command.
Use privileged user prompt consistently for privileged example CLI
commands.
Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
Rishabh Dave [Fri, 3 Oct 2025 11:24:40 +0000 (16:54 +0530)]
Merge pull request #65104 from edwinzrodriguez/ceph-wip-72556
mds: Return ceph.dir.subvolume vxattr
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-ny: Christopher Hoffman <choffman@redhat.com> Reviewed-by: Rishabh Dave <ridave@redhat.com>
John Mulligan [Thu, 2 Oct 2025 17:56:28 +0000 (13:56 -0400)]
Dockerfile.build: improve docker compatibility
Try to fix:
```
Step 6/18 : COPY ceph.spec.in do_cmake.sh install-deps.sh run-make-check.sh src/script/buildcontainer-setup.sh ${CEPH_CTR_SRC}
When using COPY with more than one source file, the destination must be a directory and end with a /
```
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Rishabh Dave [Tue, 2 Sep 2025 17:37:36 +0000 (23:07 +0530)]
client: trim path before logging it
Path can be virtually infinitely long and logging a long long path
(imagine around 2000 path components) is un-useful as well as lowers
readability of the log. Therefore, trim before logging.
Fixes: https://tracker.ceph.com/issues/72993 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Theoretically, the "existed" bools in the test could have had junk in
them. Since the driver only writes to them when writing "true", this
could have had a false positive return. Initialize them all.
Fixes: https://tracker.ceph.com/issues/73327 Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
John Mulligan [Wed, 6 Mar 2024 17:13:21 +0000 (12:13 -0500)]
qa/tasks: update python.py to use template module
The file python.py was making use of subst_vip from vip.py. The more
generic template.py provides the same functionality as subst_vip plus a
better more general templating system. Replace subst_vip in this file
so that we can remove subst_vip in the future.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Wed, 6 Mar 2024 17:00:31 +0000 (12:00 -0500)]
qa/tasks: remove generic template stuff from cephadm.py
Remove the generic template stuff from cephadm.py now that the
template.py file is usable and various yamls have been updated to
use the new module now.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Wed, 6 Mar 2024 16:56:13 +0000 (11:56 -0500)]
qa/tasks: add template.py for generic templating needs
This change extracts a bunch of functionality that we added to
cephadm.py and has been "incubating" there for too long as it's not
particularly specific to cephadm.
Take the code from cephadm.py and fully generalize it and make it a
fairly simple module that can be reused elsewhere as needed.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Mon, 29 Sep 2025 18:55:26 +0000 (14:55 -0400)]
qa/suites: do not use cephadm.exec when it is not needed
Convert a uses of `cephadm.exec` to basic `exec`. When templates (with
the jinja2-style replacement pattern `{{}}`) are not present the
cephadm.exec and exec are essentially the same.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
John Mulligan [Wed, 6 Mar 2024 16:11:51 +0000 (11:11 -0500)]
qa/suites: do not use vip.exec when it is not needed
Convert a number of uses of `vip.exec` to basic `exec`. When the
replacement pattern `{{VIP<x>}}` is not present vip.exec and exec
are essentially the same. This means that the remaining uses of
`vip.exec` actually need vip variable substitution.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Adam C. Emerson [Mon, 29 Sep 2025 19:33:23 +0000 (15:33 -0400)]
rgw/datalog: Remove use of 'detached' in `rgw_log_backing` watch
Replace `asio::detached` with `async::use_blocked` in the notify
handler. This shouldn't be too much of a problem given that our notify
handlers elsewhere use blocking `notify_ack`.
At a later time I plan to do a larger refactor, but this should be a
backportable fix for the memory error.
https://tracker.ceph.com/issues/73313 Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Xuehan Xu [Wed, 13 Aug 2025 03:49:23 +0000 (11:49 +0800)]
crimson/os/seastore: do "copy_on_write" if the to-be-modified object
needs it
At present, only clone objects may need COW, as HEAD objects won't be
sharing any direct lba mapping with other objects in non-recovery
scenarios.
Although the HEAD object may share its direct mappings with the temp
object that's going to be recovered and replace it, it won't be
accepting any modifications at that time.
Xuehan Xu [Tue, 12 Aug 2025 08:24:08 +0000 (16:24 +0800)]
crimson/os/seastore/object_data_handler: we don't have to maintain the
symmetric indirect lba relationship at the time of clone
OP_CLONE is done in the following way:
1. First, swap the layout of the head onode and the clone onode, so that
clone onode's object_data, omap_root, xattr_root and log_root all
point to the head onode's corresponding fields;
2. Do SeaStore::_clone() from the clone onode to the head onode, which
is exactly what rollback is done.
This makes the code of ObjectDataHandler::clone() and
ObjectDataHandler::copy_on_write() even simpler, and can facilitate the
clone/rollback scenarios when the "128-bit" lba key layout is involved.
Xuehan Xu [Tue, 12 Aug 2025 06:51:15 +0000 (14:51 +0800)]
crimson/os/seastore/onode: add the "need_cow" field to indicate whether
the onode's object data space needs to do clone before modification
At present, it's only when the onode's object data space is sharing its
own direct lba mappings with other onodes that the "need_cow" field
would be true.
Rishabh Dave [Thu, 21 Aug 2025 11:51:48 +0000 (17:21 +0530)]
mds: for logging generate only 10 final components of dentry path
Generating full absolute path for dentries for printing in MDS logs
slows the down the FS to a great extent especially when the path is very
long (imagine a path with 2000 components). Printing such long paths in
MDS logs is not only pointless but also greatly reduces the readability
of MDS logs.
Therefore, generate only 10 final components of the dentry paths for logging.
Fixes: https://tracker.ceph.com/issues/72779 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Rishabh Dave [Sun, 17 Aug 2025 18:13:40 +0000 (23:43 +0530)]
mds: for logging generate only 10 final components of inode path
Generating full absolute path for inodes for printing in MDS logs slows
down the FS to a great extent especially when the path is very long
(imagine a path with 2000 components). Also printing such long paths in
MDS logs is not only pointless but also greatly reduces the readability
of the MDS logs.
Therefore, generate only 10 final components of inode paths for logging.
Fixes: https://tracker.ceph.com/issues/72779 Signed-off-by: Rishabh Dave <ridave@redhat.com>