Compare commits

..

1 Commits

Author SHA1 Message Date
Zach Brown
4db0a48fe4 Search all merge range items for next
When searching for the next least merge range we need to sweep all the
stored items because they're interleaved with respect to key sorting
because we've clobbered the zone.

To search all of them we need to start from 0, not from the caller's
start key after setting the zone.  If the caller happens to provide a
start key with a small zone but large other fields (totl keys with
sufficiently large identifiers) we can miss ranges.

Signed-off-by: Zach Brown <zab@zabbo.net>
2026-04-29 10:17:38 -07:00
2 changed files with 1 additions and 26 deletions

View File

@@ -4,15 +4,9 @@
%define kmod_git_describe @@GITDESCRIBE@@
%define pkg_date %(date +%%Y%%m%%d)
# Package type: set --define 'per_kver 1' to tie the package to a specific kernel
# version (per-kver mode); leave unset for the default per-minor-release behavior.
# take kernel version or default to uname -r
%{!?kversion: %global kversion %(uname -r)}
%global kernel_version %{kversion}
%if 0%{?per_kver}
%define sanitized_kernel_version %(echo %{kernel_version} | tr - _ |sed -e 's/.x86_64//')
%endif
%if 0%{?el7}
%global kernel_source() /usr/src/kernels/%{kernel_version}.$(arch)
@@ -23,34 +17,16 @@
%{!?_release: %global _release 0.%{pkg_date}git%{kmod_git_hash}}
%if 0%{?el7}
%if 0%{?per_kver}
Name: %{kmod_name}-%{sanitized_kernel_version}
Provides: %{kmod_name} = %{kmod_version}
%else
Name: %{kmod_name}
%endif
%else
%if 0%{?per_kver}
Name: kmod-%{kmod_name}-%{sanitized_kernel_version}
Provides: kmod-%{kmod_name} = %{kmod_version}
%else
Name: kmod-%{kmod_name}
%endif
%endif
Summary: %{kmod_name} kernel module
Version: %{kmod_version}
%if 0%{?per_kver}
Release: %{_release}
%else
Release: %{_release}%{?dist}
%endif
License: GPLv2
Group: System/Kernel
URL: http://scoutfs.org/
%if 0%{?per_kver}
Requires: kernel-core-uname-r = %{kernel_version}
Requires: kernel-modules-uname-r = %{kernel_version}
%endif
%if 0%{?el7}
BuildRequires: %{kernel_module_package_buildreqs}

View File

@@ -1077,8 +1077,7 @@ static int next_log_merge_range(struct super_block *sb, struct scoutfs_btree_roo
struct scoutfs_key key;
int ret;
key = *start;
key.sk_zone = SCOUTFS_LOG_MERGE_RANGE_ZONE;
init_log_merge_key(&key, SCOUTFS_LOG_MERGE_RANGE_ZONE, 0, 0);
scoutfs_key_set_ones(&rng->start);
do {