mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2025-03-30 17:23:43 -04:00
fix inverted cond on deleting sample file dir
Symptom: in `nvr config`, if you create a dir and then immediately try to delete it, it would fail saying it's in-use. This check is supposed to be for having a running syncer on the directory, which would be an arc count > 1.
This commit is contained in:
parent
8b50a45ab0
commit
a5824b8633
@ -1809,11 +1809,16 @@ impl LockedDatabase {
|
|||||||
let dir = match d.get_mut().dir.take() {
|
let dir = match d.get_mut().dir.take() {
|
||||||
None => dir::SampleFileDir::open(&d.get().path, &d.get().expected_meta(&self.uuid))?,
|
None => dir::SampleFileDir::open(&d.get().path, &d.get().expected_meta(&self.uuid))?,
|
||||||
Some(arc) => match Arc::strong_count(&arc) {
|
Some(arc) => match Arc::strong_count(&arc) {
|
||||||
1 => {
|
1 => arc, // LockedDatabase is only reference
|
||||||
|
c => {
|
||||||
|
// a writer::Syncer also has a reference.
|
||||||
d.get_mut().dir = Some(arc); // put it back.
|
d.get_mut().dir = Some(arc); // put it back.
|
||||||
bail!("can't delete in-use directory {}", dir_id);
|
bail!(
|
||||||
|
"can't delete directory {} with active syncer (refcnt {}",
|
||||||
|
dir_id,
|
||||||
|
c
|
||||||
|
);
|
||||||
}
|
}
|
||||||
_ => arc,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
if !dir.is_empty()? {
|
if !dir.is_empty()? {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user