cmd_list: support --level

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2025-11-13 15:10:12 -05:00
parent c8b1bbf2ea
commit c14c9c6ed9
2 changed files with 29 additions and 1 deletions

View File

@ -82,6 +82,33 @@ impl<'t> BtreeIter<'t> {
}
}
pub fn new_level(
trans: &'t BtreeTrans<'t>,
btree: c::btree_id,
pos: c::bpos,
level: u32,
flags: BtreeIterFlags,
) -> BtreeIter<'t> {
unsafe {
let mut iter: MaybeUninit<c::btree_iter> = MaybeUninit::uninit();
c::__bch2_trans_node_iter_init(
trans.raw,
iter.as_mut_ptr(),
btree,
pos,
0,
level,
c::btree_iter_update_trigger_flags(flags.bits)
);
BtreeIter {
raw: iter.assume_init(),
trans: PhantomData,
}
}
}
pub fn peek_max<'i>(&'i mut self, end: c::bpos) -> Result<Option<BkeySC<'i>>, bch_errcode> {
unsafe {
let k = c::bch2_btree_iter_peek_max(&mut self.raw, end);

View File

@ -22,10 +22,11 @@ fn list_keys(fs: &Fs, opt: &Cli) -> anyhow::Result<()> {
flags |= BtreeIterFlags::ALL_SNAPSHOTS;
}
let mut iter = BtreeIter::new(
let mut iter = BtreeIter::new_level(
&trans,
opt.btree,
opt.start,
opt.level,
flags,
);