Skip to content

Commit

Permalink
Update Crucible version (#802)
Browse files Browse the repository at this point in the history
Add test and fix for replay race condition (#1519)
Fix clippy warnings (#1517)
Add edition to `crucible-workspace-hack` (#1516)
Split out Downstairs-specific stats (#1511)
Move remaining `GuestWork` functionality into `Downstairs` (#1510)
Track both jobs and bytes in each IO state (#1507)
Fix new `rustc` and `clippy` warnings (#1509)
Remove IOP/BW limits (for now) (#1506)
Move `GuestBlockRes` into `DownstairsIO` (#1502)
Update actions/checkout digest to eef6144 (#1499)
Update Rust crate hyper-staticfile to 0.10.1 (#1411)
Turn off test-up-2region-encrypted.sh (#1504)
Add `IOop::Barrier` (#1494)
Fix IPv6 addresses in `crutest` (#1503)
Add region set options to more tests. (#1496)
Simplify `CompleteJobs` (#1493)
Removed ignored CI jobs (#1497)
Minor cleanups to `print_last_completed` (#1501)
Remove remaining `Arc<Volume>` instances (#1500)
Add `VolumeBuilder` type (#1492)
remove old unused scripts (#1495)
More multiple region support. (#1484)
Simplify matches (#1490)
Move complete job tracker to a helper object (#1489)
Expand summary and add documentation references to the README. (#1486)
Remove `GuestWorkId` (2/2) (#1482)
Remove `JobId` from `DownstairsIO` (1/2) (#1481)
Remove unused `#[derive(..)]` (#1483)
Update more tests to use dsc (#1480)
Crutest now Volume only (#1479)

Co-authored-by: Alan Hanson <[email protected]>
  • Loading branch information
leftwo and Alan Hanson authored Oct 25, 2024
1 parent 7627cff commit b3d6c6c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ oximeter = { git = "https://github.com/oxidecomputer/omicron", branch = "main" }
sled-agent-client = { git = "https://github.com/oxidecomputer/omicron", branch = "main" }

# Crucible
crucible = { git = "https://github.com/oxidecomputer/crucible", rev = "2b88ab88461fb06aaf2aab11c5e381a3cad25eac" }
crucible-client-types = { git = "https://github.com/oxidecomputer/crucible", rev = "2b88ab88461fb06aaf2aab11c5e381a3cad25eac" }
crucible = { git = "https://github.com/oxidecomputer/crucible", rev = "b7b9d5660b28ca5e865242b2bdecd032c0852d40" }
crucible-client-types = { git = "https://github.com/oxidecomputer/crucible", rev = "b7b9d5660b28ca5e865242b2bdecd032c0852d40" }

# External dependencies
anyhow = "1.0"
Expand Down
10 changes: 6 additions & 4 deletions lib/propolis/src/block/crucible.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
//! Implement a virtual block device backed by Crucible
use std::io;
use std::ops::Deref;
use std::sync::Arc;

use crate::accessors::MemAccessor;
Expand All @@ -14,6 +15,7 @@ use crate::vmm::MemCtx;

use crucible::{
BlockIO, Buffer, CrucibleError, ReplaceResult, SnapshotDetails, Volume,
VolumeBuilder,
};
use crucible_client_types::VolumeConstructionRequest;
use oximeter::types::ProducerRegistry;
Expand Down Expand Up @@ -55,7 +57,7 @@ impl WorkerState {
};
let res = if let Some(memctx) = acc_mem.access() {
match process_request(
&self.volume,
self.volume.deref(),
&self.info,
self.skip_flush,
&req,
Expand Down Expand Up @@ -182,16 +184,16 @@ impl CrucibleBackend {
block_size,
size as usize,
));
let mut volume = Volume::new(block_size, log);
volume
let mut builder = VolumeBuilder::new(block_size, log);
builder
.add_subvolume(mem_disk)
.await
.map_err(|e| std::io::Error::from(e))?;

Ok(Arc::new(CrucibleBackend {
state: Arc::new(WorkerState {
attachment: block::BackendAttachment::new(),
volume,
volume: builder.into(),
info: block::DeviceInfo {
block_size: block_size as u32,
total_size: size / block_size,
Expand Down

0 comments on commit b3d6c6c

Please sign in to comment.