Skip to content

Commit 69670b6

Browse files
committed
pageserver - use crashsafe_dir utility
Replace usage of std::fs::create_dir/create_dir_all with crashsafe equivalents.
1 parent 0a8aaa2 commit 69670b6

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

pageserver/src/branches.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use std::{
1717
use zenith_utils::zid::{ZTenantId, ZTimelineId};
1818

1919
use log::*;
20+
use zenith_utils::crashsafe_dir;
2021
use zenith_utils::logging;
2122
use zenith_utils::lsn::Lsn;
2223

@@ -118,7 +119,7 @@ pub fn init_pageserver(conf: &'static PageServerConf, create_tenant: Option<&str
118119
println!("initializing tenantid {}", tenantid);
119120
create_repo(conf, tenantid, dummy_redo_mgr).with_context(|| "failed to create repo")?;
120121
}
121-
fs::create_dir_all(conf.tenants_path())?;
122+
crashsafe_dir::create_dir_all(conf.tenants_path())?;
122123

123124
println!("pageserver init succeeded");
124125
Ok(())
@@ -135,12 +136,12 @@ pub fn create_repo(
135136
}
136137

137138
// top-level dir may exist if we are creating it through CLI
138-
fs::create_dir_all(&repo_dir)
139+
crashsafe_dir::create_dir_all(&repo_dir)
139140
.with_context(|| format!("could not create directory {}", repo_dir.display()))?;
140141

141-
fs::create_dir(conf.timelines_path(&tenantid))?;
142-
fs::create_dir_all(conf.branches_path(&tenantid))?;
143-
fs::create_dir_all(conf.tags_path(&tenantid))?;
142+
crashsafe_dir::create_dir(conf.timelines_path(&tenantid))?;
143+
crashsafe_dir::create_dir_all(conf.branches_path(&tenantid))?;
144+
crashsafe_dir::create_dir_all(conf.tags_path(&tenantid))?;
144145

145146
info!("created directory structure in {}", repo_dir.display());
146147

pageserver/src/layered_repository.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ use zenith_metrics::{
4444
};
4545
use zenith_metrics::{register_histogram_vec, HistogramVec};
4646
use zenith_utils::bin_ser::BeSer;
47+
use zenith_utils::crashsafe_dir;
4748
use zenith_utils::lsn::{AtomicLsn, Lsn, RecordLsn};
4849
use zenith_utils::seqwait::SeqWait;
4950

@@ -126,7 +127,7 @@ impl Repository for LayeredRepository {
126127
let mut timelines = self.timelines.lock().unwrap();
127128

128129
// Create the timeline directory, and write initial metadata to file.
129-
std::fs::create_dir_all(self.conf.timeline_path(&timelineid, &self.tenantid))?;
130+
crashsafe_dir::create_dir_all(self.conf.timeline_path(&timelineid, &self.tenantid))?;
130131

131132
let metadata = TimelineMetadata {
132133
disk_consistent_lsn: Lsn(0),
@@ -178,7 +179,7 @@ impl Repository for LayeredRepository {
178179
ancestor_timeline: Some(src),
179180
ancestor_lsn: start_lsn,
180181
};
181-
std::fs::create_dir_all(self.conf.timeline_path(&dst, &self.tenantid))?;
182+
crashsafe_dir::create_dir_all(self.conf.timeline_path(&dst, &self.tenantid))?;
182183
Self::save_metadata(self.conf, dst, self.tenantid, &metadata)?;
183184

184185
info!("branched timeline {} from {} at {}", dst, src, start_lsn);

0 commit comments

Comments
 (0)