Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

18 changed files with 2889 additions and 1034 deletions

14
.gitignore vendored
View File

@ -1 +1,13 @@
SOURCES/kvdo-c3fab42.tar.gz /kvdo-36c3e1c.tar.gz
/kvdo-2e1a578.tar.gz
/kvdo-000a4c2.tar.gz
/kvdo-3f9bde5.tar.gz
/kvdo-f9d6d18.tar.gz
/kvdo-819203a.tar.gz
/kvdo-e209cfe.tar.gz
/kvdo-127a993.tar.gz
/kvdo-6077a12.tar.gz
/kvdo-883a960.tar.gz
/kvdo-e2a5ebb.tar.gz
/kvdo-c9bd224.tar.gz
/kvdo-c6254c6.tar.gz

View File

@ -1 +0,0 @@
7ddd70363a5e0c29d5690683af2d01194c242e58 SOURCES/kvdo-c3fab42.tar.gz

File diff suppressed because it is too large Load Diff

1193
add_lz4_dependency.patch Normal file

File diff suppressed because it is too large Load Diff

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

754
kmod-kvdo.spec Normal file
View File

@ -0,0 +1,754 @@
%global commit c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a
%global gittag 8.2.3.3
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%define spec_release 125
%define kmod_name kvdo
%define kmod_driver_version %{gittag}
%define kmod_rpm_release %{spec_release}
%define kmod_kernel_version 5.14.0-452.el9
%define kmod_headers_version %(rpm -qa kernel-devel | sed 's/^kernel-devel-//')
%define kmod_kbuild_dir .
%define kmod_devel_package 0
Source0: https://github.com/dm-vdo/%{kmod_name}/archive/%{commit}/%{kmod_name}-%{shortcommit}.tar.gz
Patch0: add_lz4_dependency.patch
Patch1: removed-logical-space-check-from-table-line.patch
Patch2: use_vdo_target_block_device.patch
%define findpat %( echo "%""P" )
Name: kmod-kvdo
Version: %{kmod_driver_version}
Release: %{kmod_rpm_release}%{?dist}
Summary: Kernel Modules for Virtual Data Optimizer
License: GPLv2+
URL: http://github.com/dm-vdo/kvdo
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: elfutils-libelf-devel
BuildRequires: glibc
BuildRequires: kernel-devel >= %{kmod_kernel_version}
# Disable the kernel-debug requirement for now
BuildRequires: libuuid-devel
BuildRequires: redhat-rpm-config
ExcludeArch: i686
ExcludeArch: ppc
ExcludeArch: ppc64
ExcludeArch: s390
%global kernel_source() /usr/src/kernels/%{kmod_headers_version}
%global _use_internal_dependency_generator 0
Provides: kmod-%{kmod_name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires(post): %{_sbindir}/weak-modules
Requires(postun): %{_sbindir}/weak-modules
Requires: kernel-core-uname-r >= %{kmod_kernel_version}
Requires: kernel-modules-uname-r >= %{kmod_kernel_version}
Conflicts: kernel-64k
%description
Virtual Data Optimizer (VDO) is a device mapper target that delivers
block-level deduplication, compression, and thin provisioning.
This package provides the kernel modules for VDO.
%pre
# During the install, check whether kvdo or uds is loaded. A warning here
# indicates that a previous install was not completely removed. This message
# is purely informational to the user.
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
if [ "${module}" == "kvdo" ]; then
echo "WARNING: Found ${module} module previously loaded (Version: $(cat /sys/kvdo/version 2>/dev/null || echo Unknown)). A reboot is recommended before attempting to use the newly installed module."
else
echo "WARNING: Found ${module} module previously loaded. A reboot is recommended before attempting to use the newly installed module."
fi
fi
done
%post
modules=( $(find /lib/modules/%{kmod_headers_version}/extra/kmod-%{kmod_name} | grep '\.ko$') )
printf '%s\n' "${modules[@]}" >> /usr/lib/rpm-kmod-posttrans-weak-modules-add
%pretrans -p <lua>
posix.unlink("/usr/lib/rpm-kmod-posttrans-weak-modules-add")
%posttrans
if [ -f "/usr/lib/rpm-kmod-posttrans-weak-modules-add" ]; then
modules=( $(cat /usr/lib/rpm-kmod-posttrans-weak-modules-add) )
rm -rf /usr/lib/rpm-kmod-posttrans-weak-modules-add
printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --dracut=/usr/bin/dracut --add-modules
fi
%preun
rpm -ql kmod-kvdo-%{kmod_driver_version}-%{kmod_rpm_release}%{?dist}.$(arch) | grep '\.ko$' > /var/run/rpm-kmod-%{kmod_name}-modules
# Check whether kvdo or uds is loaded, and if so attempt to remove it. A
# failure to unload means there is still something using the module. To make
# sure the user is aware, we print a warning with recommended instructions.
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
warnMessage="WARNING: ${module} in use. Changes will take effect after a reboot."
modprobe -r ${module} 2>/dev/null || echo ${warnMessage} && /usr/bin/true
fi
done
%postun
modules=( $(cat /var/run/rpm-kmod-%{kmod_name}-modules) )
rm /var/run/rpm-kmod-%{kmod_name}-modules
printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --dracut=/usr/bin/dracut --remove-modules
%files
%defattr(644,root,root,755)
/lib/modules/%{kmod_headers_version}
/etc/depmod.d/%{kmod_name}.conf
/usr/share/doc/kmod-%{kmod_name}/greylist.txt
%prep
%setup -n %{kmod_name}-%{commit}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%{nil}
set -- *
mkdir source
mv "$@" source/
mkdir obj
%build
rm -rf obj
cp -r source obj
make -C %{kernel_source} M=$PWD/obj/%{kmod_kbuild_dir} V=1 \
NOSTDINC_FLAGS="-I $PWD/obj/include -I $PWD/obj/include/uapi"
# mark modules executable so that strip-to-file can strip them
find obj/%{kmod_kbuild_dir} -name "*.ko" -type f -exec chmod u+x '{}' +
whitelist="/lib/modules/kabi-current/kabi_whitelist_%{_target_cpu}"
for modules in $( find obj/%{kmod_kbuild_dir} -name "*.ko" -type f -printf "%{findpat}\n" | sed 's|\.ko$||' | sort -u ) ; do
# update depmod.conf
module_weak_path=$(echo $modules | sed 's/[\/]*[^\/]*$//')
if [ -z "$module_weak_path" ]; then
module_weak_path=%{name}
else
module_weak_path=%{name}/$module_weak_path
fi
echo "override $(echo $modules | sed 's/.*\///') $(echo %{kmod_headers_version} | sed 's/\.[^\.]*$//').* weak-updates/$module_weak_path" >> source/depmod.conf
# update greylist
nm -u obj/%{kmod_kbuild_dir}/$modules.ko | sed 's/.*U //' | sed 's/^\.//' | sort -u | while read -r symbol; do
grep -q "^\s*$symbol\$" $whitelist || echo "$symbol" >> source/greylist
done
done
sort -u source/greylist | uniq > source/greylist.txt
%install
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=extra/%{name}
make -C %{kernel_source} modules_install V=1 \
M=$PWD/obj/%{kmod_kbuild_dir}
# Cleanup unnecessary kernel-generated module dependency files.
find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
install -m 644 -D source/depmod.conf $RPM_BUILD_ROOT/etc/depmod.d/%{kmod_name}.conf
install -m 644 -D source/greylist.txt $RPM_BUILD_ROOT/usr/share/doc/kmod-%{kmod_name}/greylist.txt
%clean
rm -rf $RPM_BUILD_ROOT
%changelog
* Wed May 22 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-125.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Wed May 15 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-124.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue May 07 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-123.el9
- Add temporary patch to correct build failures.
- Related: RHEL-30884
* Mon May 06 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-123.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Apr 30 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-122.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Mon Apr 29 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-121.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Thu Apr 25 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-120.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Apr 23 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-119.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Tue Apr 02 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-118.el9
- Rebuilt for latest kernel.
- Related: RHEL-30884
* Wed Feb 14 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-117.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Feb 12 2024 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-116.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Jan 23 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-115.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Jan 19 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-114.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Thu Jan 18 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-113.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Jan 15 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-112.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Jan 09 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-111.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Wed Jan 03 2024 - Chung Chung <cchung@redhat.com> - 8.2.3.3-110.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Dec 19 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-109.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Wed Dec 06 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-108.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Tue Dec 05 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-107.el9
- Revert previous changes and add kernel-64k as a conflict.
- Resolves: RHEL-8354
* Tue Nov 28 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-106.el9
- Modify to accommodate kernel-64k packages.
- Resolves: RHEL-8354
* Mon Nov 27 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-105.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Nov 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-104.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Mon Nov 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-103.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Nov 03 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-102.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Thu Oct 26 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-101.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Oct 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.3.3-100.el9
- Adapted to backported kernel changes.
- Resolves: RHEL-11975
* Tue Oct 10 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-100.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Fri Oct 06 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-99.el9
- Added temporary patch file to correct build failures regarding io-factory.c
- Related: RHEL-11426
* Fri Oct 06 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-99.el9
- Rebuilt for latest kernel.
- Related: RHEL-11426
* Thu Aug 24 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-98.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Jul 31 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-97.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Fri Jul 21 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-96.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Jul 18 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-95.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed Jul 12 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-94.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed Jul 05 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-93.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Jun 27 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-92.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Jun 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-91.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed Jun 14 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-90.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Jun 12 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-89.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue May 30 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-88.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue May 23 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-87.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Fri May 19 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-86.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Wed May 17 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-85.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Thu May 11 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-84.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Thu May 04 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-83.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon May 01 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-82.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Apr 25 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-81.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Fri Apr 14 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-80.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Tue Apr 11 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-79.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Apr 03 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-78.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Thu Mar 30 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-77.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Mar 20 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-76.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Mar 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-75.el9
- Rebuilt for latest kernel.
- Related: rhbz#2172911
* Mon Feb 27 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-74.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Feb 21 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-73.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Feb 14 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.6-72.el9
- Fixed bug in read-only rebuild when the logical size of the volume is an
exact multiple of 821 4K blocks.
- Resolves: rhbz#2166132
* Thu Feb 09 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-72.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Feb 01 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-71.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Jan 30 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-70.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Jan 23 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-69.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Jan 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-68.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Jan 13 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-67.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Jan 04 2023 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-66.el9
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Dec 22 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-65.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Dec 15 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.3-64.el9_2
- Added a check for 0 length table line arguments.
- Resolves: rhbz#2142084
* Mon Dec 12 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-64.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Dec 07 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-63.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Nov 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-62.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Nov 22 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-61.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Nov 18 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-60.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Nov 15 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.1.2-59.el9_2
- Adapted to backported kernel changes.
- Resolves: rhbz#2139179
* Fri Nov 11 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-59.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Nov 9 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-58.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Tue Nov 8 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-57.el9_2
- Rebuilt for latest kernel.
- Related: RHELPLAN-131751
* Mon Nov 7 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-56.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Nov 3 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-55.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Oct 31 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-54.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Thu Oct 27 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-53.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Oct 26 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-52.el9_2
- Temporarily patched to remove bdevname usage and correct build failure.
- Related: rhbz#2119820
* Wed Oct 26 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-52.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Oct 17 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-51.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Oct 12 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-50.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Sep 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-49.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Fri Sep 23 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-48.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Mon Sep 19 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.18-47.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
- Adjust scriplets that use /var/lib to use /usr/lib for ostree environments.
- Resolves: rhbz#2105013
* Tue Sep 13 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.18-46.el9_2
- Rebuilt for latest kernel.
- Related: rhbz#2119820
* Wed Aug 24 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.18-46
- Temporarily dropped a check that validates the logical size specified from
the table line.
- Related: rhbz#2071648
* Tue Aug 23 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.18-45
- Fixed a race handling timeouts of dedupe requests.
- Resolves: rhbz#2115504
* Tue Aug 23 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.2-45
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu Aug 18 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.2.0.2-44
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Aug 10 2022 - Chung Chung <cchung@redhat.com> - 8.2.0.2-43
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Jul 27 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.2-42
- Added missing lz4 libs to rebased code
- Resolves: rhbz#2071648
* Tue Jul 19 2022 - Andy Walsh <awalsh@redhat.com> - 8.2.0.2-41
- Rebased to latest upstream candidate.
- Resolves: rhbz#2071648
* Sat Jul 16 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-41
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri Jul 15 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-40
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Jul 11 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-39
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue Jul 05 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-38
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Jul 04 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-37
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue Jun 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-36
- TEMPORARY FIX to correct build failures regarding bio_reset(), __bio_clone_fast(), and bio_init().
- Related: rhbz#2060486
* Tue Jun 28 2022 - Susan LeGendre-McGhee <slegendr@redhat.com> - 8.1.1.371-36
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Sun Jun 26 2022 - Chung Chung <cchung@redhat.com> - 8.1.1.371-35
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Jun 15 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.371-34
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue Jun 07 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.371-33
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Jun 01 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.371-32
- Rebased to newer version.
- Related: rhbz#2071648
* Tue May 31 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-32
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Sat May 28 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-31
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon May 23 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-30
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon May 16 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-29
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri May 13 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-28
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu May 12 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-27
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Tue May 10 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-26
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Sat May 07 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-25
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu May 05 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-24
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed May 04 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-23
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri Apr 29 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-22
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Fri Apr 22 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-21
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Thu Apr 21 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-20
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Wed Apr 13 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-19
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Apr 11 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-18
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Mar 28 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-17
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Mar 21 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-16
- Rebuilt for latest kernel.
- Related: rhbz#2060486
* Mon Feb 28 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-15
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Mon Feb 21 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-14
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Wed Feb 16 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-13
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Sat Feb 12 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.360-12
- Fixed a compilation issue due to changes in stdarg.h.
- Resolves: rhbz#2035003
- Modified the UDS index to handle backing store changes while suspended.
- Resolves: rhbz#2007803
- Fixed a bug which prevented the resumption of a suspended read-only vdo.
- Resolves: rhbz#2004206
* Thu Feb 03 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.287-12
- Adjusted kernel dependencies to grab the right packages.
- Resolves: rhbz#2022464
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Mon Jan 31 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.287-11
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Sun Jan 23 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.1.287-10
- Eliminated uses of "master" as part of the conscious language initiative.
- Resolves: rhbz#2023970
- Fixed potential use-after-free error found by Coverity.
- Resolves: rhbz#1999056
- Fixed bug which could result in empty flushes being issued to the storage
below vdo while suspended.
- Resolves: rhbz#2013057
- Added optional table line parameters for enabling or disabling
deduplication and compression.
- Resolves: rhbz#2007444
- Adapted to kernel API changes.
- Resolves: rhbz#2035003
* Thu Jan 06 2022 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-10
- Rebuilt for latest kernel.
- Related: rhbz#2000926
- Temporarily disabled creation of sysfs nodes.
- Related: rhbz#2035003
* Sun Dec 19 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-9
- Rebuilt for latest kernel.
- Related: rhbz#2000926
- Stopped using bvec_kmap_irq as it has been removed.
- Removed usage of removed elevator constants
- Resolves: rhbz#2035003
* Wed Dec 15 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-8
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Tue Dec 07 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-7
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Tue Dec 07 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-6
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Thu Nov 11 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-5
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Wed Oct 13 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-4
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Thu Sep 30 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-3
- Rebuilt for latest kernel.
- Related: rhbz#2000926
* Mon Aug 09 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-2
- Rebased to upstream candidate.
- Resolves: rhbz#1955374
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 8.1.0.316-1.1
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Sat Aug 07 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.316-1
- Rebased to upstream candidate.
- Resolves: rhbz#1955374
* Thu Jul 29 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.264-1
- Rebased to upstream candidate.
- Related: rhbz#1955374
- Fixed GCC implicit-fallthrough errors when building for latest kernel
- Resolves: rhbz#1984814
* Tue May 04 2021 - Andy Walsh <awalsh@redhat.com> - 8.1.0.4-1
- Initial build for EL9
- Related: rhbz#1955374

View File

@ -0,0 +1,34 @@
From 8fb4ef85097e7b46cb3604612a49e480efd4465a Mon Sep 17 00:00:00 2001
From: Andrew Walsh <awalsh@redhat.com>
Date: Wed, 24 Aug 2022 12:00:12 -0400
Subject: [PATCH] Removed logical space check from table line.
Until the LVM tooling can be updated to use accurate sizes, this check
can't be implemented.
Signed-off-by: Andrew Walsh <awalsh@redhat.com>
---
vdo/vdo-component.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/vdo/vdo-component.c b/vdo/vdo-component.c
index ac1ac1f7..50ba438b 100644
--- a/vdo/vdo-component.c
+++ b/vdo/vdo-component.c
@@ -303,13 +303,6 @@ int vdo_validate_config(const struct vdo_config *config,
if (result != UDS_SUCCESS) {
return result;
}
-
- if (logical_block_count != config->logical_blocks) {
- uds_log_error("A logical size of %llu blocks was specified, but that differs from the %llu blocks configured in the vdo super block",
- (unsigned long long) logical_block_count,
- (unsigned long long) config->logical_blocks);
- return VDO_PARAMETER_MISMATCH;
- }
}
result = ASSERT(config->logical_blocks <= MAXIMUM_VDO_LOGICAL_BLOCKS,
--
2.37.1

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (kvdo-c6254c6.tar.gz) = 262fb5f8b6b4ca31e06b4816b41a225a05a8058d77dd72fb6b93f32352697487e4120876698bba76bf3cf899ce2db7ad83bd4aa09b1067ea8aec50fc2c9545d6

1
tests/.fmf/version Normal file
View File

@ -0,0 +1 @@
1

4
tests/provision.fmf Normal file
View File

@ -0,0 +1,4 @@
---
standard-inventory-qcow2:
qemu:
m: 4G

62
tests/sanity/Makefile Normal file
View File

@ -0,0 +1,62 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /kernel/test_beakertask/Sanity/beaker_test
# Description: Install VDO
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/beaker_test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Andy Walsh <awalsh@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Loads VDO kernel modules" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: test_beakertask" >> $(METADATA)
@echo "Requires: test_beakertask" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

3
tests/sanity/PURPOSE Normal file
View File

@ -0,0 +1,3 @@
PURPOSE Test the kmod-kvdo packaged drivers
Description: Load the VDO modules into the kernel.
Author: Andy Walsh <awalsh@redhat.com>

57
tests/sanity/runtest.sh Normal file
View File

@ -0,0 +1,57 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of kmod-kvdo/sanity
# Description: Checking that the kmod-kvdo kernel modules can be loaded.
# Author: Andy Walsh <awalsh@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
# Collect information
rlLog "uname: $(uname -a)"
rlPhaseEnd
rlPhaseStartTest "Confirm kvdo module is installed"
rlRun "find /lib/modules -type f -name kvdo.ko"
rlPhaseEnd
rlPhaseStartTest "Validate module information"
rlRun "modinfo -l kvdo"
rlPhaseEnd
rlPhaseStartTest "Confirm the kvdo module can be loaded"
rlRun "modprobe kvdo"
rlRun "lsmod | grep kvdo"
rlPhaseEnd
rlPhaseStartCleanup "Unload the kvdo module"
rlRun "modprobe -r kvdo"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

62
tests/smoke/Makefile Normal file
View File

@ -0,0 +1,62 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /kernel/test_beakertask/Sanity/beaker_test
# Description: Install VDO
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/beaker_test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Andy Walsh <awalsh@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Installs VDO" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: test_beakertask" >> $(METADATA)
@echo "Requires: test_beakertask" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

3
tests/smoke/PURPOSE Normal file
View File

@ -0,0 +1,3 @@
PURPOSE Test the kmod-kvdo package for basic functionality
Description: Tests the VDO software for basic functionality.
Author: Andy Walsh <awalsh@redhat.com>

170
tests/smoke/runtest.sh Normal file
View File

@ -0,0 +1,170 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of VDO smoke test
# Description: Check that VDO is able to read/write data and start/stop
# Author: Andy Walsh <awalsh@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
function insertModuleWithDMesgOutput() {
moduleName=$1
modulePath=$(rpm -ql kmod-kvdo | grep "${1}.ko$")
exitVal=0
rlRun "dmesg -c > /dev/null"
rlRun "insmod ${modulePath}" || exitVal=255
rlRun "dmesg"
if [ ${exitVal} -ne 0 ]; then
rlDie "Exiting with failure due to module/kernel incompatibility"
fi
}
rlJournalStart
rlPhaseStartSetup "Create backing device"
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlRun "df ."
# If we end up with less than 15G of available space, then we can't
# create a VDO volume sufficient for testing. We should bail out as a
# result.
loopbackSize=$(($(df --sync --output=avail / | tail -1) * 1024 - 1024*1024*1024))
if [ ${loopbackSize} -lt $((1024*1024*1024*15)) ]; then
rlDie "Not enough space to create loopback device."
fi
rlRun "truncate -s ${loopbackSize} $TmpDir/loop0.bin" 0 "Laying out loopfile backing"
rlRun "losetup /dev/loop0 $TmpDir/loop0.bin" 0 "Creating loopdevice"
rlRun "mkdir -p /mnt/testmount" 0 "Creating test mountpoint dir"
rlPhaseEnd
rlPhaseStartTest "Gather Relevant Info"
# Gather some system information for debug purposes
rlRun "uname -a"
rlRun "find /lib/modules -name kvdo.ko"
rlRun "modinfo kvdo" || insertModuleWithDMesgOutput kvdo
rlPhaseEnd
rlPhaseStartTest "Generate Test Data"
# Write some data, check statistics
rlRun "dd if=/dev/urandom of=${TmpDir}/urandom_fill_file bs=1M count=100"
rlRun "ls -lh ${TmpDir}/urandom_fill_file"
rlPhaseEnd
for partition_type in "raw" "lvm"
do
case $partition_type in
"raw"*)
backing_device=/dev/loop0
;;
"lvm"*)
rlPhaseStartTest "Create LVM backing device"
rlRun "pvcreate /dev/loop0" 0 "Creating PV"
rlRun "vgcreate vdo_base /dev/loop0" 0 "Creating VG"
rlRun "lvcreate -n vdo_base -l100%FREE vdo_base" 0 "Creating LV"
rlPhaseEnd
backing_device=/dev/vdo_base/vdo_base
;;
*)
;;
esac
rlPhaseStartTest "LVM-VDO Smoke Test"
# Create the VDO volume and get the initial statistics
rlRun "pvcreate --config devices/scan_lvs=1 ${backing_device}"
rlRun "vgcreate --config devices/scan_lvs=1 vdo_data ${backing_device}"
rlRun "lvcreate --config devices/scan_lvs=1 --type vdo -L 9G -V 100G -n vdo0 vdo_data/vdopool"
# Create a filesystem and mount the device, check statistics
rlRun "mkfs.xfs -K /dev/vdo_data/vdo0" 0 "Making xfs filesystem on VDO volume"
rlRun "mount -o discard /dev/vdo_data/vdo0 /mnt/testmount" 0 "Mounting xfs filesystem on VDO volume"
rlRun "df --sync /mnt/testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
# Copy the test data onto VDO volume 4 times to get some deduplication
for i in {1..4}
do
rlRun "cp ${TmpDir}/urandom_fill_file /mnt/testmount/test_file-${i}"
done
rlRun "df --sync /mnt/testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
# Verify the data
for i in {1..4}
do
rlRun "cmp ${TmpDir}/urandom_fill_file /mnt/testmount/test_file-${i}"
done
# Unmount and stop the volume, check statistics
rlRun "umount /mnt/testmount" 0 "Unmounting testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
rlRun "lvchange --config devices/scan_lvs=1 -an vdo_data/vdo0"
# Start the VDO volume, mount it, check statistics, verify data.
rlRun "lvchange --config devices/scan_lvs=1 -ay vdo_data/vdo0"
rlRun "mount -o discard /dev/vdo_data/vdo0 /mnt/testmount" 0 "Mounting xfs filesystem on VDO volume"
rlRun "df --sync /mnt/testmount"
rlRun "vdostats vdo_data-vdopool-vpool"
# Verify the data
for i in {1..4}
do
rlRun "cmp ${TmpDir}/urandom_fill_file /mnt/testmount/test_file-${i}"
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "umount /mnt/testmount" 0 "Unmounting testmount"
rlRun "lvremove --config devices/scan_lvs=1 -ff vdo_data/vdo0" 0 "Removing VDO volume vdo0"
case $partition_type in
"lvm"*)
rlPhaseStartCleanup
rlRun "lvremove -ff ${backing_device}" 0 "Removing LV"
rlRun "vgremove vdo_base" 0 "Removing VG"
rlRun "pvremove /dev/loop0" 0 "Removing PV"
rlPhaseEnd
;;
*)
;;
esac
rlRun "dd if=/dev/zero of=/dev/loop0 bs=1M count=10 oflag=direct" 0 "Wiping Block Device"
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "losetup -d /dev/loop0" 0 "Deleting loopdevice"
rlRun "rm -f $TmpDir/loop0.bin" 0 "Removing loopfile backing"
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

16
tests/tests.yml Normal file
View File

@ -0,0 +1,16 @@
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-beakerlib
tests:
- sanity
- smoke
required_packages:
- vdo
- device-mapper-event
- device-mapper-event-libs
- device-mapper-persistent-data
- libaio
- lvm2
- lvm2-libs

View File

@ -0,0 +1,510 @@
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/config.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/config.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/config.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/config.c 2024-05-07 09:38:49.210509205 -0400
@@ -676,7 +676,7 @@
config->sparse_sample_rate =
(params->sparse ? DEFAULT_SPARSE_SAMPLE_RATE : 0);
config->nonce = params->nonce;
- config->name = params->name;
+ config->bdev = params->bdev;
config->offset = params->offset;
config->size = params->size;
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/config.h kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/config.h
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/config.h 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/config.h 2024-05-07 09:38:49.210509205 -0400
@@ -20,8 +20,8 @@
/* A set of configuration parameters for the indexer. */
struct configuration {
- /* String describing the storage device */
- const char *name;
+ /* Storage device for the index */
+ struct block_device *bdev;
/* The maximum allowable size of the index */
size_t size;
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/dedupe.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/dedupe.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/dedupe.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/dedupe.c 2024-05-07 09:38:49.210509205 -0400
@@ -2796,7 +2796,7 @@
uds_offset = ((vdo_get_index_region_start(geometry) -
geometry.bio_offset) * VDO_BLOCK_SIZE);
zones->parameters = (struct uds_parameters) {
- .name = vdo->device_config->parent_device_name,
+ .bdev = vdo->device_config->owned_device->bdev,
.offset = uds_offset,
.size = (vdo_get_index_region_size(geometry) * VDO_BLOCK_SIZE),
.memory_size = geometry.index_config.mem,
@@ -3269,9 +3269,9 @@
struct device_config *config = parent->vdo->device_config;
int result;
- zones->parameters.name = config->parent_device_name;
+ zones->parameters.bdev = config->owned_device->bdev;
result = uds_resume_index_session(zones->index_session,
- zones->parameters.name);
+ zones->parameters.bdev);
if (result != UDS_SUCCESS) {
uds_log_error_strerror(result, "Error resuming dedupe index");
}
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index.c 2024-05-07 09:38:49.211509205 -0400
@@ -1557,9 +1557,9 @@
return result;
}
-int replace_index_storage(struct uds_index *index, const char *path)
+int replace_index_storage(struct uds_index *index, struct block_device *bdev)
{
- return replace_volume_storage(index->volume, index->layout, path);
+ return replace_volume_storage(index->volume, index->layout, bdev);
}
/* Accessing statistics should be safe from any thread. */
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index.h kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index.h
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index.h 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index.h 2024-05-07 09:38:49.211509205 -0400
@@ -63,7 +63,7 @@
void free_index(struct uds_index *index);
int __must_check replace_index_storage(struct uds_index *index,
- const char *path);
+ struct block_device *bdev);
void get_index_stats(struct uds_index *index,
struct uds_index_stats *counters);
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index-layout.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index-layout.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index-layout.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index-layout.c 2024-05-07 09:38:49.211509205 -0400
@@ -1980,7 +1980,7 @@
size_t writable_size;
struct io_factory *factory = NULL;
- result = make_uds_io_factory(config->name, &factory);
+ result = make_uds_io_factory(config->bdev, &factory);
if (result != UDS_SUCCESS) {
return result;
}
@@ -2062,9 +2062,9 @@
}
int replace_index_layout_storage(struct index_layout *layout,
- const char *name)
+ struct block_device *bdev)
{
- return replace_uds_storage(layout->factory, name);
+ return replace_uds_storage(layout->factory, bdev);
}
/* Obtain a dm_bufio_client for the volume region. */
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index-layout.h kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index-layout.h
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index-layout.h 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index-layout.h 2024-05-07 09:38:49.211509205 -0400
@@ -20,7 +20,7 @@
void free_uds_index_layout(struct index_layout *layout);
int __must_check replace_index_layout_storage(struct index_layout *layout,
- const char *name);
+ struct block_device *bdev);
int __must_check load_index_state(struct index_layout *layout,
struct uds_index *index);
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index-session.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index-session.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/index-session.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/index-session.c 2024-05-07 09:42:15.007509205 -0400
@@ -389,13 +389,14 @@
struct uds_index_session *session)
{
int result;
+ char name[BDEVNAME_SIZE];
if (parameters == NULL) {
uds_log_error("missing required parameters");
return -EINVAL;
}
- if (parameters->name == NULL) {
- uds_log_error("missing required index name");
+ if (parameters->bdev == NULL) {
+ uds_log_error("missing required block device");
return -EINVAL;
}
if (session == NULL) {
@@ -408,31 +409,9 @@
return uds_map_to_system_error(result);
}
- if ((session->parameters.name == NULL) ||
- (strcmp(parameters->name, session->parameters.name) != 0)) {
- char *new_name;
-
- result = uds_duplicate_string(parameters->name,
- "device name",
- &new_name);
- if (result != UDS_SUCCESS) {
- finish_loading_index_session(session, result);
- return uds_map_to_system_error(result);
- }
-
- uds_free_const(session->parameters.name);
- session->parameters = *parameters;
- session->parameters.name = new_name;
- } else {
- const char *old_name = session->parameters.name;
-
- session->parameters = *parameters;
- session->parameters.name = old_name;
- }
-
- uds_log_notice("%s: %s",
- get_open_type_string(open_type),
- parameters->name);
+ session->parameters = *parameters;
+ format_dev_t(name, parameters->bdev->bd_dev);
+ uds_log_notice("%s: %s", get_open_type_string(open_type), name);
result = initialize_index_session(session, open_type);
if (result != UDS_SUCCESS) {
uds_log_error_strerror(result,
@@ -550,34 +529,26 @@
}
static int replace_device(struct uds_index_session *session,
- const char *name)
+ struct block_device *bdev)
{
int result;
- char *new_name;
- result = uds_duplicate_string(name, "device name", &new_name);
+ result = replace_index_storage(session->index, bdev);
if (result != UDS_SUCCESS) {
return result;
}
- result = replace_index_storage(session->index, name);
- if (result != UDS_SUCCESS) {
- UDS_FREE(new_name);
- return result;
- }
-
- uds_free_const(session->parameters.name);
- session->parameters.name = new_name;
+ session->parameters.bdev = bdev;
return UDS_SUCCESS;
}
/*
* Resume index operation after being suspended. If the index is suspended
- * and the supplied name is different from the current backing store, the
+ * and the supplied block device differs from the current backing store, the
* index will start using the new backing store.
*/
int uds_resume_index_session(struct uds_index_session *session,
- const char *name)
+ struct block_device *bdev)
{
int result = UDS_SUCCESS;
bool no_work = false;
@@ -604,9 +575,9 @@
return result;
}
- if ((name != NULL) && (session->index != NULL) &&
- (strcmp(name, session->parameters.name) != 0)) {
- result = replace_device(session, name);
+ if ((bdev != NULL) && (session->index != NULL) &&
+ (bdev != session->parameters.bdev)) {
+ result = replace_device(session, bdev);
if (result != UDS_SUCCESS) {
uds_lock_mutex(&session->request_mutex);
session->state &= ~IS_FLAG_WAITING;
@@ -780,7 +751,6 @@
wait_for_no_requests_in_progress(index_session);
result = save_and_free_index(index_session);
- uds_free_const(index_session->parameters.name);
uds_request_queue_finish(index_session->callback_queue);
index_session->callback_queue = NULL;
uds_destroy_cond(&index_session->load_context.cond);
@@ -808,35 +778,12 @@
struct uds_parameters **parameters)
{
int result;
- const char *name = index_session->parameters.name;
if (parameters == NULL) {
uds_log_error("received a NULL parameters pointer");
return -EINVAL;
}
- if (name != NULL) {
- char *name_copy = NULL;
- size_t name_length = strlen(name) + 1;
- struct uds_parameters *copy;
-
- result = UDS_ALLOCATE_EXTENDED(struct uds_parameters,
- name_length,
- char,
- __func__,
- &copy);
- if (result != UDS_SUCCESS) {
- return uds_map_to_system_error(result);
- }
-
- *copy = index_session->parameters;
- name_copy = (char *) copy + sizeof(struct uds_parameters);
- memcpy(name_copy, name, name_length);
- copy->name = name_copy;
- *parameters = copy;
- return UDS_SUCCESS;
- }
-
result = UDS_ALLOCATE(1, struct uds_parameters, __func__, parameters);
if (result == UDS_SUCCESS) {
**parameters = index_session->parameters;
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/io-factory.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/io-factory.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/io-factory.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/io-factory.c 2024-05-07 09:38:49.212509205 -0400
@@ -6,27 +6,10 @@
#include <linux/atomic.h>
#include <linux/blkdev.h>
#include <linux/mount.h>
-#ifndef VDO_UPSTREAM
-#include <linux/version.h>
-#endif /* VDO_UPSTREAM */
#include "io-factory.h"
#include "logger.h"
#include "memory-alloc.h"
-#ifndef VDO_UPSTREAM
-#undef VDO_USE_ALTERNATE
-#ifdef RHEL_RELEASE_CODE
-#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(9, 4))
-#define VDO_USE_ALTERNATE
-#endif
-#else /* !RHEL_RELEASE_CODE */
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(6,5,0))
-#define VDO_USE_ALTERNATE
-#endif
-#endif /* !RHEL_RELEASE_CODE */
-#endif /* !VDO_UPSTREAM */
-
-enum { BLK_FMODE = FMODE_READ | FMODE_WRITE };
/*
* A kernel mode IO Factory object controls access to an index stored
@@ -42,67 +25,14 @@
atomic_inc(&factory->ref_count);
}
-static int get_block_device_from_name(const char *name,
- struct block_device **bdev)
-{
- dev_t device;
- unsigned int major, minor;
- char dummy;
-#ifndef VDO_USE_ALTERNATE
- const struct blk_holder_ops hops = { NULL };
-#endif /* !VDO_USE_ALTERNATE */
-
- /* Extract the major/minor numbers */
- if (sscanf(name, "%u:%u%c", &major, &minor, &dummy) == 2) {
- device = MKDEV(major, minor);
- if (MAJOR(device) != major || MINOR(device) != minor) {
- *bdev = NULL;
- return uds_log_error_strerror(UDS_INVALID_ARGUMENT,
- "%s is not a valid block device",
- name);
- }
-#ifdef VDO_USE_ALTERNATE
- *bdev = blkdev_get_by_dev(device, BLK_FMODE, NULL);
-#else
- *bdev = blkdev_get_by_dev(device, BLK_FMODE, NULL, &hops);
-#endif /* VDO_USE_ALTERNATE */
- } else {
-#ifdef VDO_USE_ALTERNATE
- *bdev = blkdev_get_by_path(name, BLK_FMODE, NULL);
-#else
- *bdev = blkdev_get_by_path(name, BLK_FMODE, NULL, &hops);
-#endif /* VDO_USE_ALTERNATE */
- }
-
- if (IS_ERR(*bdev)) {
- uds_log_error_strerror(-PTR_ERR(*bdev), "%s is not a block device", name);
- *bdev = NULL;
- return UDS_INVALID_ARGUMENT;
- }
-
- return UDS_SUCCESS;
-}
-
-int make_uds_io_factory(const char *path, struct io_factory **factory_ptr)
+int make_uds_io_factory(struct block_device *bdev, struct io_factory **factory_ptr)
{
int result;
- struct block_device *bdev;
struct io_factory *factory;
- result = get_block_device_from_name(path, &bdev);
- if (result != UDS_SUCCESS) {
- return result;
- }
-
result = UDS_ALLOCATE(1, struct io_factory, __func__, &factory);
- if (result != UDS_SUCCESS) {
-#ifdef VDO_USE_ALTERNATE
- blkdev_put(bdev, BLK_FMODE);
-#else
- blkdev_put(bdev, NULL);
-#endif /* VDO_USE_ALTERNATE */
+ if (result != UDS_SUCCESS)
return result;
- }
factory->bdev = bdev;
atomic_set_release(&factory->ref_count, 1);
@@ -111,35 +41,16 @@
return UDS_SUCCESS;
}
-int replace_uds_storage(struct io_factory *factory, const char *path)
+int replace_uds_storage(struct io_factory *factory, struct block_device *bdev)
{
- int result;
- struct block_device *bdev;
-
- result = get_block_device_from_name(path, &bdev);
- if (result != UDS_SUCCESS) {
- return result;
- }
-
-#ifdef VDO_USE_ALTERNATE
- blkdev_put(factory->bdev, BLK_FMODE);
-#else
- blkdev_put(factory->bdev, NULL);
-#endif /* VDO_USE_ALTERNATE */
factory->bdev = bdev;
return UDS_SUCCESS;
}
void put_uds_io_factory(struct io_factory *factory)
{
- if (atomic_add_return(-1, &factory->ref_count) <= 0) {
-#ifdef VDO_USE_ALTERNATE
- blkdev_put(factory->bdev, BLK_FMODE);
-#else
- blkdev_put(factory->bdev, NULL);
-#endif /* VDO_USE_ALTERNATE */
+ if (atomic_add_return(-1, &factory->ref_count) <= 0)
UDS_FREE(factory);
- }
}
size_t get_uds_writable_size(struct io_factory *factory)
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/io-factory.h kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/io-factory.h
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/io-factory.h 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/io-factory.h 2024-05-07 09:38:49.212509205 -0400
@@ -36,25 +36,24 @@
* Create an IO factory. The IO factory is returned with a reference
* count of 1.
*
- * @param path The path to the block device or file that contains the
- * block stream
+ * @param bdev The block device that contains the block stream
* @param factory_ptr The IO factory is returned here
*
* @return UDS_SUCCESS or an error code
**/
-int __must_check make_uds_io_factory(const char *path,
+int __must_check make_uds_io_factory(struct block_device *bdev,
struct io_factory **factory_ptr);
/**
* Replace the backing store for an IO factory.
*
* @param factory The IO factory
- * @param path The path to the new block device or storage file
+ * @param bdev The new block device
*
* @return UDS_SUCCESS or an error code
**/
int __must_check replace_uds_storage(struct io_factory *factory,
- const char *path);
+ struct block_device *bdev);
/**
* Get another reference to an IO factory, incrementing its reference count.
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/uds.h kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/uds.h
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/uds.h 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/uds.h 2024-05-07 09:38:49.214509205 -0400
@@ -132,8 +132,8 @@
* The data used to configure a new index.
**/
struct uds_parameters {
- /** String describing the storage device */
- const char *name;
+ /** The block_device used for storage */
+ struct block_device *bdev;
/** The maximum allowable size of the index on storage */
size_t size;
/** The offset where the index should start */
@@ -404,9 +404,10 @@
bool save);
/**
- * Allows new index operations for an index, whether it was suspended or not.
- * If the index is suspended and the supplied path is different from the
- * current backing store, the index will start using the new backing store.
+ * Allow new index operations for an index, whether it was suspended or not.
+ * If the index is suspended and the supplied block device differs from the
+ * current backing store, the index will start using the new backing store
+ * instead.
*
* @param session The session to resume
* @param name A name describing the new backing store to use
@@ -414,7 +415,7 @@
* @return Either #UDS_SUCCESS or an error code
**/
int __must_check uds_resume_index_session(struct uds_index_session *session,
- const char *name);
+ struct block_device *bdev);
/**
* Waits until all callbacks for index operations are complete.
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/volume.c kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/volume.c
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/volume.c 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/volume.c 2024-05-07 09:38:49.215509205 -0400
@@ -1471,11 +1471,11 @@
int __must_check replace_volume_storage(struct volume *volume,
struct index_layout *layout,
- const char *name)
+ struct block_device *bdev)
{
int result;
- result = replace_index_layout_storage(layout, name);
+ result = replace_index_layout_storage(layout, bdev);
if (result != UDS_SUCCESS) {
return result;
}
diff -Naur kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/volume.h kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/volume.h
--- kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a.orig/vdo/volume.h 2023-10-19 18:57:25.000000000 -0400
+++ kvdo-c6254c6db5cfa02ecf5bbb4db2c5728f23aa3b2a/vdo/volume.h 2024-05-07 09:38:49.215509205 -0400
@@ -95,13 +95,13 @@
*
* @param volume The volume to reconfigure
* @param layout The index layout
- * @param path The path to the new backing store
+ * @param bdev The backing store block device
*
* @return UDS_SUCCESS or an error code
**/
int __must_check replace_volume_storage(struct volume *volume,
struct index_layout *layout,
- const char *path);
+ struct block_device *bdev);
/**
* Enqueue a page read.