diff --git a/src/engine/strat_engine/pool.rs b/src/engine/strat_engine/pool.rs index bfdbfb1a0c..f6b7aa0f09 100644 --- a/src/engine/strat_engine/pool.rs +++ b/src/engine/strat_engine/pool.rs @@ -324,8 +324,8 @@ impl StratPool { /// Write current metadata to pool members. #[pool_mutating_action("NoPoolChanges")] pub fn write_metadata(&mut self, name: &str) -> StratisResult<()> { - let data = serde_json::to_string(&self.record(name))?; - self.backstore.save_state(data.as_bytes()) + let data = serde_json::to_vec(&self.record(name))?; + self.backstore.save_state(&data) } /// Teardown a pool. @@ -433,10 +433,8 @@ impl StratPool { self.thin_pool.teardown(pool_uuid)?; let mut data = self.record(pool_name); data.started = Some(false); - let json = serde_json::to_string(&data).map_err(|e| (StratisError::from(e), false))?; - self.backstore - .save_state(json.as_bytes()) - .map_err(|e| (e, false))?; + let json = serde_json::to_vec(&data).map_err(|e| (StratisError::from(e), false))?; + self.backstore.save_state(&json).map_err(|e| (e, false))?; self.backstore.teardown(pool_uuid).map_err(|e| (e, false))?; let bds = self.backstore.drain_bds(); Ok(DeviceSet::from(bds)) diff --git a/src/engine/strat_engine/thinpool/mdv.rs b/src/engine/strat_engine/thinpool/mdv.rs index 3c90fe3411..94f1d2a14f 100644 --- a/src/engine/strat_engine/thinpool/mdv.rs +++ b/src/engine/strat_engine/thinpool/mdv.rs @@ -110,7 +110,7 @@ impl MetadataVol { uuid: FilesystemUuid, fs: &StratFilesystem, ) -> StratisResult<()> { - let data = serde_json::to_string(&fs.record(name, uuid))?; + let data = serde_json::to_vec(&fs.record(name, uuid))?; let path = self .mount_pt .join(FILESYSTEM_DIR) @@ -125,7 +125,7 @@ impl MetadataVol { .create(true) .open(&temp_path)?; - mdv_record_file.write_all(data.as_bytes())?; + mdv_record_file.write_all(&data)?; // This ultimately results in an fsync() on the file. mdv_record_file.sync_all()?; }