]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
5 weeks agoclient: Cache client_fscrypt_as config value
Christopher Hoffman [Tue, 3 Jun 2025 18:12:30 +0000 (18:12 +0000)]
client: Cache client_fscrypt_as config value

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient, test: Remove FS_IOC_GETFLAGS and STATX_ATTR_ENCRYPTED
Christopher Hoffman [Mon, 2 Jun 2025 18:13:32 +0000 (18:13 +0000)]
client, test: Remove FS_IOC_GETFLAGS and STATX_ATTR_ENCRYPTED

Remove previous work done to support FSCrypt encrypted in
FS_IOC_GETFLAGS which changes the structure of statx ABI.
This is due to backward compatibility issues.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Skip fscrypt_last_block if in non-fscrypt mode
Christopher Hoffman [Wed, 28 May 2025 17:23:12 +0000 (17:23 +0000)]
client: Skip fscrypt_last_block if in non-fscrypt mode

Skip reading and sending fscrypt_last_block if client_fscrypt_as
is false during do_setattr. Without the key, fscrypt truncate is
not possible on fscrypt block boundary.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Implement cloning fscrypt subvolume snaps
Christopher Hoffman [Mon, 19 May 2025 18:56:20 +0000 (18:56 +0000)]
client: Implement cloning fscrypt subvolume snaps

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient, libcephfs: Add fcopyfile bindings
Christopher Hoffman [Fri, 16 May 2025 13:19:25 +0000 (13:19 +0000)]
client, libcephfs: Add fcopyfile bindings

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agopybind/mgr/volumes/fs: Prepare mgr to clone fscrypt snaps
Christopher Hoffman [Wed, 7 May 2025 14:45:45 +0000 (14:45 +0000)]
pybind/mgr/volumes/fs: Prepare mgr to clone fscrypt snaps

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoqa: Add tests for fscrypt subvolume
Christopher Hoffman [Mon, 12 May 2025 16:32:52 +0000 (16:32 +0000)]
qa: Add tests for fscrypt subvolume

Add various tests for fscrypt subvolumes such as
snapshots and verifying clones.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Allow for reading raw written data.
Christopher Hoffman [Thu, 8 May 2025 18:33:36 +0000 (18:33 +0000)]
client: Allow for reading raw written data.

When looking up the effective_size and the client_fscrypt_as
option is false show the inode size value. This will allow for
reading raw encrypted data when no key is provided.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agofuse client: map ENOKEY return value to itself
Igor Golikov [Tue, 6 May 2025 10:30:33 +0000 (10:30 +0000)]
fuse client: map ENOKEY return value to itself

Signed-off-by: Igor Golikov <igolikov@ibm.com>
5 weeks agoclient: do not fscrypt encrypt snapshot names
Christopher Hoffman [Tue, 6 May 2025 19:02:29 +0000 (19:02 +0000)]
client: do not fscrypt encrypt snapshot names

Snapshot names are visible within the .snap directory
as dir entries. They can be created by a client that
has an fscrypt key present and also by the manager who
does not have any key. While the client with the key
can create an encrypted name the manager cannot.
Standardize functionality of these semantics to the
common of the two.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Simplify getting decrypted fname
Christopher Hoffman [Wed, 23 Apr 2025 16:33:46 +0000 (16:33 +0000)]
client: Simplify getting decrypted fname

During unwrap name, get_decrypted_fname parameters accepts
dname/b64 name and altname. If altname holds a value, this means
that a plaintext name will be built from altname. In this
case, dname/b64 name is irrelevant. In the case of empty altname,
build name from b64 name.

Fixes: https://tracker.ceph.com/issues/70995
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Rework vxattr_cb_fscrypt_file_set to assign properly
Christopher Hoffman [Mon, 21 Apr 2025 12:28:16 +0000 (12:28 +0000)]
client: Rework vxattr_cb_fscrypt_file_set to assign properly

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: provide fscrypt vxattrs in CapSnap
Christopher Hoffman [Fri, 18 Apr 2025 20:55:02 +0000 (20:55 +0000)]
client: provide fscrypt vxattrs in CapSnap

Fixes: https://tracker.ceph.com/issues/70979
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Only run complete in read_modify_write if finish provided
Christopher Hoffman [Mon, 7 Apr 2025 18:39:20 +0000 (18:39 +0000)]
client: Only run complete in read_modify_write if finish provided

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: correctly account for Client::WriteEncMgr() ref counts
Venky Shankar [Mon, 7 Apr 2025 04:50:58 +0000 (04:50 +0000)]
client: correctly account for Client::WriteEncMgr() ref counts

Signed-off-by: Venky Shankar <vshankar@redhat.com>
5 weeks agoclient: remove unneeded goto jump
Venky Shankar [Mon, 7 Apr 2025 04:48:07 +0000 (04:48 +0000)]
client: remove unneeded goto jump

Signed-off-by: Venky Shankar <vshankar@redhat.com>
5 weeks agotest: clean up some warnings
Christopher Hoffman [Fri, 4 Apr 2025 17:51:42 +0000 (17:51 +0000)]
test: clean up some warnings

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoqa: Add fscrypt unit tests to workunits
Christopher Hoffman [Fri, 4 Apr 2025 13:11:06 +0000 (13:11 +0000)]
qa: Add fscrypt unit tests to workunits

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Add additional case for fscrypt enabled setattr
Christopher Hoffman [Fri, 28 Mar 2025 18:57:40 +0000 (18:57 +0000)]
client: Add additional case for fscrypt enabled setattr

During setattr in fscrypt case, there's two cases that happen
1. A logical size is provided and then a vector must be populated.
2. A request from setxattr is received and fscrypt_file vector
   is already set.

Also rework tests when setting fscrypt_file, to use logical sizes.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Check for dname max len before wrapping name
Christopher Hoffman [Fri, 28 Mar 2025 13:28:40 +0000 (13:28 +0000)]
client: Check for dname max len before wrapping name

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Add fscrypt enc support to C_Read_Sync_NonBlocking
Christopher Hoffman [Fri, 21 Mar 2025 16:00:16 +0000 (16:00 +0000)]
client: Add fscrypt enc support to C_Read_Sync_NonBlocking

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Address misc comments Mar 24
Christopher Hoffman [Mon, 24 Mar 2025 13:51:30 +0000 (13:51 +0000)]
client: Address misc comments Mar 24

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoFix Testclient bug
Christopher Hoffman [Mon, 24 Mar 2025 12:38:58 +0000 (12:38 +0000)]
Fix Testclient bug

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Add shared_mutex
Christopher Hoffman [Fri, 21 Mar 2025 14:44:36 +0000 (14:44 +0000)]
client: Add shared_mutex

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: When creating WriteEncMgr take into account client_oc
Christopher Hoffman [Wed, 19 Mar 2025 23:22:43 +0000 (23:22 +0000)]
client: When creating WriteEncMgr take into account client_oc

When determining if a write is buffered or not, take into account
the client_oc config. This option allows non-buffered writes when
caps normally used in buffered writes are present.

Fixes: https://tracker.ceph.com/issues/70568
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: Add client_fscrypt_as option
Christopher Hoffman [Wed, 12 Mar 2025 21:31:35 +0000 (21:31 +0000)]
client: Add client_fscrypt_as option

Add option to toggle enforcement of fscrypt access semantics.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
5 weeks agoclient: simplify some filepath constructions
Patrick Donnelly [Tue, 11 Mar 2025 14:49:19 +0000 (10:49 -0400)]
client: simplify some filepath constructions

And add notes where it could maybe be simplified further.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
5 weeks agoclient: print readable encrypted names
Patrick Donnelly [Tue, 11 Mar 2025 14:26:23 +0000 (10:26 -0400)]
client: print readable encrypted names

Replace non-printable characters with '.'.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 weeks agoclient: catch error opening snapdir inside snap
Patrick Donnelly [Tue, 11 Mar 2025 14:18:57 +0000 (10:18 -0400)]
client: catch error opening snapdir inside snap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 weeks agoclient: do not wrap ceph special names
Patrick Donnelly [Tue, 11 Mar 2025 14:18:12 +0000 (10:18 -0400)]
client: do not wrap ceph special names

This avoids encrypting .snap which prevents Client::_lookup from opening the
snapdir.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 weeks agoclient: remove remaining fscrypt conflicts
Patrick Donnelly [Mon, 10 Mar 2025 15:08:50 +0000 (11:08 -0400)]
client: remove remaining fscrypt conflicts

There also seems to be some missing calls to

    gen_inherited_fscrypt_auth

?

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 weeks agoclient: use path walk and on-the-fly enc/dec for fscrypt
Patrick Donnelly [Fri, 7 Mar 2025 15:33:55 +0000 (10:33 -0500)]
client: use path walk and on-the-fly enc/dec for fscrypt

The code before would encrypt/decrypt the dentry and store the result as the
dentry name. This would cause the client to have a different view of the dentry
names compared to the MDS. This created an unnecessary and complex divergence
that requires fixing the name in any code path involving the MDS.

Instead, maintain the same view as before with the MDS. The client uses the new
`Client::path_walk`, `Client::_wrap_name`, and `Client::_unwrap_name`
mechanisms to correctly change from the application's namespace (unencrypted /
case insensitve names) to the Client/MDS namespace.

The complication here is that the Client now needs to recompute the
encrypted/decrypted name for any path walk. This can and should be mitigated by
memoizing the results of the decryption/encryption. This is particularly
important as we can keep the decrypted names in a separate memory region that
is protected from core dump / trace inspection.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
6 weeks agoclient: Use correct sizes in write_success
Christopher Hoffman [Thu, 27 Feb 2025 19:11:40 +0000 (19:11 +0000)]
client: Use correct sizes in write_success

Write success had some incorrect usage of sizes.
request_[size|offset] refers to logical size
toalwritten + offset refers to written to osd size

Fixes: https://tracker.ceph.com/issues/70193
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Use PATH_MAX for max size of fscrypt enabled symlinks
Christopher Hoffman [Wed, 26 Feb 2025 22:24:28 +0000 (22:24 +0000)]
client: Use PATH_MAX for max size of fscrypt enabled symlinks

Fixes: https://tracker.ceph.com/issues/70194
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agocephfs/test_volumes: Create tests for enctag
Christopher Hoffman [Tue, 25 Feb 2025 15:47:10 +0000 (15:47 +0000)]
cephfs/test_volumes: Create tests for enctag

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agodoc: Add documentation for enctag in subvolume
Christopher Hoffman [Tue, 25 Feb 2025 14:15:53 +0000 (14:15 +0000)]
doc: Add documentation for enctag in subvolume

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Add is_encrypted libcephfs api
Christopher Hoffman [Mon, 24 Feb 2025 20:29:14 +0000 (20:29 +0000)]
client: Add is_encrypted libcephfs api

Given a fd, will return if is encrypted or not.
Optionally, an enctag will be returned if set.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agomgr/volumes: Add enctag to subvol
Christopher Hoffman [Mon, 24 Feb 2025 16:08:12 +0000 (16:08 +0000)]
mgr/volumes: Add enctag to subvol

Add functionality to support enctag for subvols. This
will be useful for app or administrator to know which
master key to use.

Fixes: https://tracker.ceph.com/issues/69693
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Use new errno identifiers
Christopher Hoffman [Thu, 20 Feb 2025 14:55:32 +0000 (14:55 +0000)]
client: Use new errno identifiers

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: use fscrypt headers provided by linux
Christopher Hoffman [Wed, 12 Feb 2025 16:27:35 +0000 (16:27 +0000)]
client: use fscrypt headers provided by linux

Fixes: https://tracker.ceph.com/issues/68116
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Fix up a few things in read_sync path
Christopher Hoffman [Tue, 11 Feb 2025 16:05:29 +0000 (16:05 +0000)]
client: Fix up a few things in read_sync path

Fix up a few things in read_sync path
1. File size may not be updated locally, do not check for trim read
2. Do not get_cap before RMW, each do_write takes care of having proper caps

Fixes: https://tracker.ceph.com/issues/69796
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Calculate len before prepare_data_read
Christopher Hoffman [Tue, 4 Feb 2025 18:31:28 +0000 (18:31 +0000)]
client: Calculate len before prepare_data_read

Fixes: https://tracker.ceph.com/issues/69797
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: During fscrypt write, ensure we get Fr cap
Christopher Hoffman [Mon, 3 Feb 2025 19:13:31 +0000 (19:13 +0000)]
client: During fscrypt write, ensure we get Fr cap

During fscrypt write will require Fr cap. It's best to ensure
this requirement is handled at the cap level instead of at the mode
level. Otherwise, O_WRONLY flag won't be enforced.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agotest/libcephfs: Add skips to tests where mount root is a subdir
Christopher Hoffman [Fri, 31 Jan 2025 18:53:14 +0000 (18:53 +0000)]
test/libcephfs: Add skips to tests where mount root is a subdir

When dir_prefix is a subdir, skip tests that expect
behavior of "/" to be on root of filesystem.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Use enc_name when linking a fscrypt enabled inode
Christopher Hoffman [Mon, 27 Jan 2025 17:33:25 +0000 (17:33 +0000)]
client: Use enc_name when linking a fscrypt enabled inode

Fixes: https://tracker.ceph.com/issues/64163
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Do not encrypt '.' or '..'
Christopher Hoffman [Fri, 24 Jan 2025 14:28:11 +0000 (14:28 +0000)]
client: Do not encrypt '.' or '..'

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Use symlink_plain for decrypted fscrypt name
Christopher Hoffman [Thu, 23 Jan 2025 20:22:10 +0000 (20:22 +0000)]
client: Use symlink_plain for decrypted fscrypt name

Use symlink_plain for only the value of a decrypted fscrypt
dname.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: fscrypt last block
Christopher Hoffman [Thu, 16 Jan 2025 23:37:51 +0000 (23:37 +0000)]
client: fscrypt last block

Support two edge cases in fscrypt last block.

1. When fscrypt last block is not the first block
2. Make sure to clean up SaferCond, allowing for successive
   truncates utilizing lastblock.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Do not decrypt bl on trim read
Christopher Hoffman [Wed, 8 Jan 2025 20:20:10 +0000 (20:20 +0000)]
client: Do not decrypt bl on trim read

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: set symlink dest to proper value
Christopher Hoffman [Wed, 8 Jan 2025 17:53:25 +0000 (17:53 +0000)]
client: set symlink dest to proper value

Fixes: https://tracker.ceph.com/issues/69442
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agotest: Add function policy populator for reuse in fscrypt tests.
Christopher Hoffman [Wed, 8 Jan 2025 17:05:48 +0000 (17:05 +0000)]
test: Add function policy populator for reuse in fscrypt tests.

Fixes: https://tracker.ceph.com/issues/69161
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: change conditional to check for is locked.
Christopher Hoffman [Wed, 8 Jan 2025 15:32:23 +0000 (15:32 +0000)]
client: change conditional to check for is locked.

Fixes: https://tracker.ceph.com/issues/64137
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agofuse client, fscrypt, test: Implement and create tests for S_ENCRYPTED in inode i_flags
Christopher Hoffman [Thu, 19 Dec 2024 15:33:24 +0000 (15:33 +0000)]
fuse client, fscrypt, test: Implement and create tests for S_ENCRYPTED in inode i_flags

This PR adds test for S_ENCRYPTED bit in the i_flags field of Inode.
The test implements 2 quering methods: using FS_IOC_GETFLAGS and STATX_ATTR_ENCRYPTED

Fixes: https://tracker.ceph.com/issues/64129
Author: Igor Golikov <igolikov@ibm.com>
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Use correct sizes on write_success
Christopher Hoffman [Wed, 18 Dec 2024 15:38:02 +0000 (15:38 +0000)]
client: Use correct sizes on write_success

Fixes: https://tracker.ceph.com/issues/69302
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: clear logical size on open(O_TRUNC)
Christopher Hoffman [Wed, 18 Dec 2024 15:03:15 +0000 (15:03 +0000)]
client: clear logical size on open(O_TRUNC)

Fixes: https://tracker.ceph.com/issues/65613
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agotest, client: implement tests for not supported FALLOC ops, use policy to determine...
Christopher Hoffman [Tue, 17 Dec 2024 16:09:20 +0000 (16:09 +0000)]
test, client: implement tests for not supported FALLOC ops, use policy to determine the padding size for encrypted filename

Adding test for not supported FALLOC ops on the encypted tree
Using policy to determine the padding length for encrypted file names and symlinks

Fixes: https://tracker.ceph.com/issues/64162
https://tracker.ceph.com/issues/64131
Author: Igor Golikov <igolikov@ibm.com>
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Add fscrypt last block
Christopher Hoffman [Mon, 9 Dec 2024 18:59:50 +0000 (18:59 +0000)]
client: Add fscrypt last block

Add logic to support fscrypt last block. Includes sending
truncated last block data (decrypted->trunc->encrypted)
from client to mds. The server then writes the last block
on successful truncate.

Fixes: https://tracker.ceph.com/issues/69160
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Ensure file_cache cap is released.
Christopher Hoffman [Fri, 8 Nov 2024 14:00:43 +0000 (14:00 +0000)]
client: Ensure file_cache cap is released.

Fixes: https://tracker.ceph.com/issues/68798
Fixes: https://tracker.ceph.com/issues/68831
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Various fixes to fix multi-fuse client
Christopher Hoffman [Tue, 22 Oct 2024 17:34:27 +0000 (17:34 +0000)]
client: Various fixes to fix multi-fuse client

Provide various fixes in which size used in
multi-fuse client tests.

Fixes: https://tracker.ceph.com/issues/68431
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoqa: Convert and create tests for libcephfs fscrypt
Christopher Hoffman [Tue, 8 Oct 2024 12:10:59 +0000 (12:10 +0000)]
qa: Convert and create tests for libcephfs fscrypt

Convert existing tests to use teuthology framework.
Create tests to test N>1 fscrypt clients

Fixes: https://tracker.ceph.com/issues/66577
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Update fscrypt_file when mds info is newer
Christopher Hoffman [Tue, 24 Sep 2024 15:13:01 +0000 (15:13 +0000)]
client: Update fscrypt_file when mds info is newer

Fixes: https://tracker.ceph.com/issues/68233
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoqa: Add tests of interopability of fscrypt between fuse/kernel
Christopher Hoffman [Tue, 24 Sep 2024 13:25:48 +0000 (13:25 +0000)]
qa: Add tests of interopability of fscrypt between fuse/kernel

Fixes: https://tracker.ceph.com/issues/66577
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoObjectCacher: handle nullptr hole case
Christopher Hoffman [Thu, 5 Sep 2024 17:36:45 +0000 (17:36 +0000)]
ObjectCacher: handle nullptr hole case

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoObjectCacher: On RetryRead, ensure "hole" value is used
Christopher Hoffman [Wed, 28 Aug 2024 22:07:28 +0000 (22:07 +0000)]
ObjectCacher: On RetryRead, ensure "hole" value is used

On C_RetryRead, ensure "hole" value instead of pointer
to a pointer is used to allow populating vector of holes.

Fixes: https://tracker.ceph.com/issues/67659
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: When calling update_inode_file_size, provide correct size
Christopher Hoffman [Fri, 23 Aug 2024 19:19:31 +0000 (19:19 +0000)]
client: When calling update_inode_file_size, provide correct size

Fixes: https://tracker.ceph.com/issues/67559
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Use effective_size in eof read
Christopher Hoffman [Thu, 8 Aug 2024 19:50:39 +0000 (19:50 +0000)]
client: Use effective_size in eof read

Fixes: https://tracker.ceph.com/issues/67347
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient/FSCrypt: securely erase crypto key
Christopher Hoffman [Thu, 1 Aug 2024 14:12:15 +0000 (14:12 +0000)]
client/FSCrypt: securely erase crypto key

Fixes: https://tracker.ceph.com/issues/64136
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Implement status for fscrypt key status
Christopher Hoffman [Fri, 19 Jul 2024 14:44:04 +0000 (14:44 +0000)]
client: Implement status for fscrypt key status

Fixes: https://tracker.ceph.com/issues/64130
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Add busy case on key removal
Christopher Hoffman [Wed, 17 Jul 2024 15:25:48 +0000 (15:25 +0000)]
client: Add busy case on key removal

Fixes: https://tracker.ceph.com/issues/64159
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agofuse: enable ioctl on dir for fscrypt
Christopher Hoffman [Thu, 27 Jun 2024 18:50:21 +0000 (18:50 +0000)]
fuse: enable ioctl on dir for fscrypt

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agosrc/test/libcephfs: add test cases for fscrypt key removal busy case
Christopher Hoffman [Thu, 27 Jun 2024 14:08:24 +0000 (14:08 +0000)]
src/test/libcephfs: add test cases for fscrypt key removal busy case

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoqa: Added workunits for testing problem snippets on rmw workloads
Christopher Hoffman [Mon, 17 Jun 2024 15:50:51 +0000 (15:50 +0000)]
qa: Added workunits for testing problem snippets on rmw workloads

Fixes: https://tracker.ceph.com/issues/66038
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoqa: Allow fscrypt testing on fuse
Christopher Hoffman [Mon, 17 Jun 2024 14:26:55 +0000 (14:26 +0000)]
qa: Allow fscrypt testing on fuse

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: fix non-encrypted case in read_sync
Christopher Hoffman [Tue, 21 May 2024 16:54:35 +0000 (16:54 +0000)]
client: fix non-encrypted case in read_sync

Only append pbl to bl if encrypted case.

Fixes: https://tracker.ceph.com/issues/65964
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: fscrypt rmw fails when endoff end of block or file
Christopher Hoffman [Tue, 7 May 2024 00:59:11 +0000 (00:59 +0000)]
client: fscrypt rmw fails when endoff end of block or file
Fscrypt rmw fails when end of a write lines up with end of
a block or end of the file.

Fixes: https://tracker.ceph.com/issues/65745
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: During lookup of fscrypt symlink, use target fscrypt info.
Christopher Hoffman [Wed, 24 Apr 2024 17:38:44 +0000 (17:38 +0000)]
client: During lookup of fscrypt symlink, use target fscrypt info.

During a lookup of fscrypt enabled symlink, use target fscrypt
info. This must be used because enc key for each file is derived
from master_key+nonce.

Fixes: https://tracker.ceph.com/issues/65615
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Fix logic in need read start/end to account for fscrypt.
Christopher Hoffman [Thu, 11 Apr 2024 17:37:55 +0000 (17:37 +0000)]
client: Fix logic in need read start/end to account for fscrypt.

Fix the logic in need read start/end. We need to make sure that a
whole block is read when a rmw is issued, regardless if it starts
at offset 0 or not. Change size that may be read from where offset
starts to the whole fscrypt block.

Fixes: https://tracker.ceph.com/issues/64819
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: After a rebase, no lock is necessary.
Christopher Hoffman [Wed, 3 Apr 2024 14:48:01 +0000 (14:48 +0000)]
client: After a rebase, no lock is necessary.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoClient: fix O_TRUNC issue
Christopher Hoffman [Mon, 1 Apr 2024 18:34:35 +0000 (18:34 +0000)]
Client: fix O_TRUNC issue

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Ensure symlink plaintext is set
Christopher Hoffman [Mon, 4 Mar 2024 19:43:58 +0000 (19:43 +0000)]
client: Ensure symlink plaintext is set

When creating symlink, ensure symlink_plain is set in fscrypt and
non-fscrypt cases.

Fixes: https://tracker.ceph.com/issues/64691
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: rmw doesn't get_cap_ref like it should. After rmw,
Christopher Hoffman [Mon, 12 Feb 2024 16:15:14 +0000 (16:15 +0000)]
client: rmw doesn't get_cap_ref like it should. After rmw,
it put_cap_ref and it didn't happen. Issue with bool need_read.

Fixes: https://tracker.ceph.com/issues/64307
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoPopulate add key return
Christopher Hoffman [Thu, 18 Jan 2024 15:40:53 +0000 (15:40 +0000)]
Populate add key return

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agotest: Add test for semantics
Christopher Hoffman [Mon, 4 Dec 2023 14:22:04 +0000 (14:22 +0000)]
test: Add test for semantics

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: On fscrypt enabled directories, only allow read/write to files
Christopher Hoffman [Fri, 1 Dec 2023 17:18:03 +0000 (17:18 +0000)]
client: On fscrypt enabled directories, only allow read/write to files
in dir when unlocked. Client should not be able to read/write the encrypted payload.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agofscrypt: Add tests for add key, remove key, set policy.
Christopher Hoffman [Wed, 8 Nov 2023 17:56:14 +0000 (17:56 +0000)]
fscrypt: Add tests for add key, remove key, set policy.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient: Allow setpolicy only on dir and when it is empty.
Christopher Hoffman [Thu, 14 Dec 2023 17:13:38 +0000 (17:13 +0000)]
client: Allow setpolicy only on dir and when it is empty.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoAdd multi user support on a unlock claim.
Christopher Hoffman [Mon, 30 Oct 2023 22:31:45 +0000 (22:31 +0000)]
Add multi user support on a unlock claim.

Signed-off-by: Christopher Hoffman <choffman@redhat.com>
6 weeks agoclient,test,osdc: add beginnings of fscrypt support
Yehuda Sadeh [Fri, 12 May 2023 17:24:31 +0000 (13:24 -0400)]
client,test,osdc: add beginnings of fscrypt support

Signed-off-by: Yehuda Sadeh <ysadehwe@ibm.com>
6 weeks agoMerge pull request #64981 from zdover23/wip-doc-2025-08-12-cephfs-troubleshooting
Zac Dover [Thu, 14 Aug 2025 13:45:16 +0000 (23:45 +1000)]
Merge pull request #64981 from zdover23/wip-doc-2025-08-12-cephfs-troubleshooting

doc/cephfs: edit troubleshooting.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 weeks agoMerge pull request #64930 from zdover23/wip-doc-2025-08-10-cephfs-troubleshooting-3
Zac Dover [Thu, 14 Aug 2025 13:40:22 +0000 (23:40 +1000)]
Merge pull request #64930 from zdover23/wip-doc-2025-08-10-cephfs-troubleshooting-3

doc/cephfs: edit troubleshooting.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 weeks agoMerge pull request #64923 from zdover23/wip-doc-2025-08-09-cephfs-troubleshooting-3
Zac Dover [Thu, 14 Aug 2025 13:35:30 +0000 (23:35 +1000)]
Merge pull request #64923 from zdover23/wip-doc-2025-08-09-cephfs-troubleshooting-3

doc/cephfs: edit troubleshooting.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 weeks agoMerge pull request #64922 from zdover23/wip-doc-2025-08-09-cephfs-troubleshooting-2
Zac Dover [Thu, 14 Aug 2025 13:12:39 +0000 (23:12 +1000)]
Merge pull request #64922 from zdover23/wip-doc-2025-08-09-cephfs-troubleshooting-2

doc/cephfs: edit troubleshooting.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
6 weeks agoMerge pull request #64811 from ceph/fix-dependabot_dashboard_upgrades-main
Ernesto Puerta [Thu, 14 Aug 2025 12:09:31 +0000 (14:09 +0200)]
Merge pull request #64811 from ceph/fix-dependabot_dashboard_upgrades-main

dependabot: stop dashboard npm upgrade PRs

6 weeks agodoc/cephfs: edit troubleshooting.rst
Zac Dover [Tue, 12 Aug 2025 06:44:05 +0000 (16:44 +1000)]
doc/cephfs: edit troubleshooting.rst

Edit the "Mount 5 Error" and "Mount 12 Error" sections of
doc/cephfs/troubleshooting.rst.

Signed-off-by: Zac Dover <zac.dover@proton.me>
6 weeks agoMerge pull request #64982 from zdover23/wip-doc-2025-08-12-cephfs-troubleshooting-2
Zac Dover [Thu, 14 Aug 2025 08:32:36 +0000 (18:32 +1000)]
Merge pull request #64982 from zdover23/wip-doc-2025-08-12-cephfs-troubleshooting-2

doc/cephfs: edit troubleshooting.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
6 weeks agoMerge pull request #65008 from chanyoung/omap-fast-check-mappings
Matan Breizman [Thu, 14 Aug 2025 07:12:09 +0000 (10:12 +0300)]
Merge pull request #65008 from chanyoung/omap-fast-check-mappings

test/crimson/seastore/test_omap_manager: faster check mappings

Reviewed-by: Samuel Just <sjust@redhat.com>
6 weeks agoMerge pull request #65013 from Naveenaidu/wip-naveen-update-cephadm-docs
Naveen Naidu [Thu, 14 Aug 2025 03:44:39 +0000 (09:14 +0530)]
Merge pull request #65013 from Naveenaidu/wip-naveen-update-cephadm-docs

doc/man/cephadm: update `--orphan-initial-daemons` argument description

6 weeks agoMerge pull request #63938 from tchaikov/wip-osd-recalc-decode
Kefu Chai [Thu, 14 Aug 2025 01:04:07 +0000 (09:04 +0800)]
Merge pull request #63938 from tchaikov/wip-osd-recalc-decode

osd: recalculate coll_t::_str during decode() to fix stale values

Reviewed-by: Samuel Just <sjust@redhat.com>
6 weeks agoMerge pull request #61770 from rkachach/fix_issue_69484
Redouane Kachach [Wed, 13 Aug 2025 17:05:08 +0000 (19:05 +0200)]
Merge pull request #61770 from rkachach/fix_issue_69484

Prometheus configuration generation improvements

Reviewed-by: nizamial09 <nia@redhat.com>
6 weeks agodoc/man/cephadm: update --orphan-initial-daemons argument description
Naveen Naidu [Wed, 13 Aug 2025 12:16:09 +0000 (17:46 +0530)]
doc/man/cephadm: update --orphan-initial-daemons argument description

Signed-off-by: Naveen Naidu <naveen.naidu@ibm.com>