It's no need to hold the lock when copying the data, which may
take a long time.
Fixes: https://tracker.ceph.com/issues/47047
Signed-off-by: Xiubo Li <xiubli@redhat.com>
* refs/pull/37009/head:
client: remove the unecessary client_lock for objector->read/write()
client: fix the comment for RWRef
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
there is no need to probe the device to generate the argparse help
message.
also removing the test on the function as it's not there anymore.
Signed-off-by: Marc Gariepy <gariepy.marc@gmail.com>
Fixes: https://tracker.ceph.com/issues/47502
The prevailing consensus is that rationales of direct fixes need
not be included in the commit messages. The matter must be
made clear to the reviewers, but it's not important how this is
accomplished.
(Perusers of the git history interested in finding out this information
are free to search for it by linking the commit in question to the PR it
originated from, and possibly from there to the related tracker issues.)
Signed-off-by: Nathan Cutler <ncutler@suse.com>
src/librbd/crypto/BlockCrypto.cc:5:10: fatal error: 'alloca.h' file not found
^~~~~~~~~~
1 error generated.
Including <stdlib.h> is enough
fixes: https://tracker.ceph.com/issues/47614
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
This resolves the potential for an assertion failure in the cache
constructors that occurs when the data IoCtx is not valid. Errors
are deferred until actual IOs are issued against the invalid data
pool.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
to silence the warning like
follow the suggestion from pip
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.
We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.
Fixes: https://tracker.ceph.com/issues/47636
Signed-off-by: Kefu Chai <kchai@redhat.com>
The file mgr/volumes/fs/operations/pin_util.py imports distutils.util for using
strtobool and thus the python package is required.
Signed-off-by: Johannes M. Scheuermann <joh.scheuer@gmail.com>
When encoding the inode backtrace, it may take a bit longer time.
If we hold the mds_lock or other locks, it may cause other threads
to idle wait.
This will queue the encoding and storing work in the mds finisher
to get rid of the locks holded.
Fixes: https://tracker.ceph.com/issues/47148
Signed-off-by: Xiubo Li <xiubli@redhat.com>
When encoding the dentries infomation to remove or update, it may
take a bit longer time. If we hold the mds_lock or other locks, it
may cause other threads to idle wait.
This will queue the encoding and storing work in the mds finisher
to get rid of the locks holded.
Fixes: https://tracker.ceph.com/issues/47148
Signed-off-by: Xiubo Li <xiubli@redhat.com>
ceph-csi has added support for passing custom map and unmap options via
mapOptions and unmapOptions storage class parameters. However, it also
uses --read-only for implementing ROX (ReadOnlyMany) PVs. If the user
supplies "mapOptions: rw", they will get around the intended read-only
restriction (at least on the block device).
ceph-csi could be patched to use "-o ro", but it actually makes sense
for common options to win over device type-specific equivalents.
Fixes: https://tracker.ceph.com/issues/47625
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
mgr/dashboard: display devices' health information within a tabset
Reviewed-by: Patrick Seidensal <pnawracay@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
Reworks journal_seq_t to be a monotonically increasing, but non-dense
value from the current segment_seq_t and segment offset.
Signed-off-by: Samuel Just <sjust@redhat.com>
Previously, we simply added the old extent to the retired set and
treated the new instance seperately. Instead, let the new pending
instance reference the old instance via a prior_instance reference.
This has a few advantages:
- During commit, we swap cache hooks from the prior instance to
avoid traversal
- Extents in the retired set are only those extents that are no
longer mapped/valid.
- btree range pins can be swapped without a traversal
- position in the dirty list can be maintained
That last will be particularly important as the dirty list will
therefore be ordered from the extent with the oldest initial
delta forward.
Signed-off-by: Samuel Just <sjust@redhat.com>
I'm not sure why I added this in the first place, there aren't really
any scenarios where invoking it wouldn't be a bug.
Signed-off-by: Samuel Just <sjust@redhat.com>
Addresses must always be adjusted depending on whether the extent will
be written as a block or as a delta.
Signed-off-by: Samuel Just <sjust@redhat.com>
Dead extents can't go through the normal retire_extent path as they don't
have valid pins or other elements of a real extent. Instead, simply drop
them on the floor directly.
Signed-off-by: Samuel Just <sjust@redhat.com>
Previously, all extents ended up initialized to the same crc value
upon read -- the one for an empty buffer. This bug wasn't detected
because an extent was always evicted and reread following the first
write and subsequently kept in cache once initially written.
Also, add crc to operator<< for extents.
Signed-off-by: Samuel Just <sjust@redhat.com>
If it's already pending, cache.duplicate_for_write is a noop and the extent
will already have a pin. Also, add some debugging.
Signed-off-by: Samuel Just <sjust@redhat.com>
Otherwise, different users may use different values complicating
debugging. We can re-add this in the future if it becomes
useful.
Signed-off-by: Samuel Just <sjust@redhat.com>