The db iter will be set to KeyValueDB::Iterator() if onode.omap_head
not present. In that case if we touch the db iter we will get a segmentation
fault.
Prevent to touch the db iter when onode.omap_head is invalid(equals to 0).
Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
Reads may call wait_wal() holding user locks, and so we cannot block
progress on WAL completion/flushing by calling callbacks that may take
user locks.
Signed-off-by: Sage Weil <sage@redhat.com>
No need to trigger another sync kv commit here; just let the next KV
commit catch it.
We could possibly do a bit better here by not waking up the kv thread at
all...
Signed-off-by: Sage Weil <sage@redhat.com>
If we have a small overwrite, keep the extent in the key/value database.
Only write it back to the file/fragment later, and when we do, write them
all at once.
Signed-off-by: Sage Weil <sage@redhat.com>
Use this as the key for omap (omap_head), but keep the omap_head field
so that we can tell when no omap data is present.
Signed-off-by: Sage Weil <sage@redhat.com>
Previous code forgot to clear the removed_collections queues
after reaped the collections in _reap_collection.
Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
This includes a bunch of new ceph_test_objectstore tests, and a ton of fixes
to existing tests so that objects actually live inside the collections they
are written to.
Signed-off-by: Sage Weil <sage@redhat.com>
Fast read for erasure coding pool and erasure code error handling
Error handling
Reviewed-by: Loic Dachary <ldachary@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Fast Read
Reviewed-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
* Get rid of the cryptsetup calls that are redundant with what ceph
prepare already does
* Do not use the --dmcrypt-key-dir option. This is less coverage but it
interferes with the udev logic and is expected to be refactored soon.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The multipath sanity checks of get_journal_osd_uuid must not try to
verify the partition type when the device is not a partition.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
29431944c7 added a call to dmcrypt_map()
during disk activation. The change is not suitable for use alongside
the recently added dmcrypt LUKS support, because:
- The callers don't correctly provide cryptsetup_parameters or luks
arguments.
- dmcrypt_map() calls LuksFormat, which should never be performed
during disk activation.
- The key file paths don't carry the luks suffix when required.
This commit addresses these issues. Corresponding tests and a udev file
update will follow.
Signed-off-by: David Disseldorp <ddiss@suse.de>
Conflicts:
src/ceph-disk
Fixes: #12864
rados bench add '[--format json]' and '[-o | --output outfile]' support.
output option only take effect in json format.
now we can use the bench result draw performance graph easily.
Signed-off-by: Tianshan Qu <qutianshan@gmail.com>
we were using pool.info.require_rollback() in do_osd_ops() when
handling OP_SPARSE_READ to tell if a pool is an ecpool. should
use pool.info.ec_pool() instead.
Signed-off-by: Kefu Chai <kchai@redhat.com>