From bba40d467c2ad6c5470fa9d3c185af599627a6d8 Mon Sep 17 00:00:00 2001 From: Serapheim Dimitropoulos Date: Sun, 19 Sep 2021 19:59:27 -0700 Subject: [PATCH] Upgrade RoaringBitmap Crate Now that we use a newer version of Rust we can update to the latest version of this crate. Side Change: - Minor interface nit missed in recent block allocator review --- cmd/zfs_object_agent/Cargo.lock | 4 ++-- cmd/zfs_object_agent/zettacache/Cargo.toml | 2 +- .../zettacache/src/bitmap_range_iterator.rs | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmd/zfs_object_agent/Cargo.lock b/cmd/zfs_object_agent/Cargo.lock index c029ca73f5b3..727e2d6d10ab 100644 --- a/cmd/zfs_object_agent/Cargo.lock +++ b/cmd/zfs_object_agent/Cargo.lock @@ -1658,9 +1658,9 @@ checksum = "e9c17925a9027d298a4603d286befe3f9dc0e8ed02523141914eb628798d6e5b" [[package]] name = "roaring" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b2e7ab0bbb2d144558ae3f4761a0db06d21463b45756fc64c3393cdba3d447" +checksum = "859e0bdcda876d49bbc75bbb8a52caf02207849384364a10bc103a5828d4150f" dependencies = [ "bytemuck", "byteorder", diff --git a/cmd/zfs_object_agent/zettacache/Cargo.toml b/cmd/zfs_object_agent/zettacache/Cargo.toml index 2c6e7792fd31..9347bb447376 100644 --- a/cmd/zfs_object_agent/zettacache/Cargo.toml +++ b/cmd/zfs_object_agent/zettacache/Cargo.toml @@ -25,7 +25,7 @@ more-asserts = "0.2.1" nix = "0.22.0" num = "0.4.0" rand = "0.8.3" -roaring = "=0.6.6" # XXX: update to latest once we get to Rust Version 1.49.0+ +roaring = "0.7.0" seahash = "4.1.0" serde = { version = "1.0.125", features = ["derive"] } serde_json = "1.0.64" diff --git a/cmd/zfs_object_agent/zettacache/src/bitmap_range_iterator.rs b/cmd/zfs_object_agent/zettacache/src/bitmap_range_iterator.rs index 8d4a9b82a513..49d8ce593397 100644 --- a/cmd/zfs_object_agent/zettacache/src/bitmap_range_iterator.rs +++ b/cmd/zfs_object_agent/zettacache/src/bitmap_range_iterator.rs @@ -14,9 +14,9 @@ pub struct BitmapRangeIter<'a> { } impl<'a> BitmapRangeIter<'a> { - fn new(bitmap_iter: Fuse>) -> BitmapRangeIter<'a> { + fn new(bitmap: &RoaringBitmap) -> BitmapRangeIter { BitmapRangeIter { - bitmap_iter, + bitmap_iter: bitmap.iter().fuse(), current_range: None, } } @@ -80,6 +80,6 @@ pub trait BitmapRangeIterator { impl BitmapRangeIterator for RoaringBitmap { fn iter_ranges(&self) -> BitmapRangeIter { - BitmapRangeIter::new(self.iter().fuse()) + BitmapRangeIter::new(self) } }