modzilla99 / rpms / kmod-kvdo

Forked from rpms/kmod-kvdo 2 years ago
Clone

Blame SPECS/kvdo.spec

a40d71
%global commit                  8df6805f0c4eddae59c9edcebeeab885c835f93c
a40d71
%global gittag                  6.2.0.293
a40d71
%global shortcommit             %(c=%{commit}; echo ${c:0:7})
0b73f6
%define spec_release            53
a40d71
a40d71
%define kmod_name		kvdo
a40d71
%define kmod_driver_version	%{gittag}
a40d71
%define kmod_rpm_release	%{spec_release}
777417
%define kmod_kernel_version	4.18.0-147.6.el8
a40d71
%define kmod_headers_version	%(rpm -qa kernel-devel | sed 's/^kernel-devel-//')
a40d71
%define kmod_kbuild_dir		.
a40d71
%define kmod_dependencies       %{nil}
a40d71
%define kmod_build_dependencies	%{nil}
a40d71
%define kmod_devel_package	0
a40d71
a40d71
Source0:	https://github.com/dm-vdo/%{kmod_name}/archive/%{commit}/%{kmod_name}-%{shortcommit}.tar.gz
a40d71
a40d71
%define findpat %( echo "%""P" )
a40d71
a40d71
Name:		kmod-kvdo
a40d71
Version:	%{kmod_driver_version}
a40d71
Release:	%{kmod_rpm_release}%{?dist}
a40d71
Summary:	Kernel Modules for Virtual Data Optimizer
a40d71
License:	GPLv2+
a40d71
URL:		http://github.com/dm-vdo/kvdo
a40d71
BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
a40d71
BuildRequires:  elfutils-libelf-devel
a40d71
BuildRequires:	glibc
a40d71
BuildRequires:	kernel-devel >= %{kmod_kernel_version}
a40d71
a40d71
# Disable the kernel-debug requirement for now
a40d71
%if 0
a40d71
# kernel-debug appears to not be necessary at the moment. 
a40d71
BuildRequires:  kernel-debug >= %{kmod_kernel_version}
a40d71
%endif
a40d71
a40d71
BuildRequires:  libuuid-devel
a40d71
BuildRequires:  redhat-rpm-config
a40d71
ExcludeArch:    i686
a40d71
ExcludeArch:    ppc
a40d71
ExcludeArch:    ppc64
a40d71
ExcludeArch:    s390
a40d71
a40d71
%global kernel_source() /usr/src/kernels/%{kmod_headers_version}
a40d71
a40d71
%global _use_internal_dependency_generator 0
a40d71
Provides:	kernel-modules = %{kmod_kernel_version}.%{_target_cpu}
a40d71
Provides:	kmod-%{kmod_name} = %{?epoch:%{epoch}:}%{version}-%{release}
a40d71
Requires(post):	%{_sbindir}/weak-modules
a40d71
Requires(postun):	%{_sbindir}/weak-modules
a40d71
Requires:	kernel >= %{kmod_kernel_version}
a40d71
a40d71
%if "%{kmod_build_dependencies}" != ""
a40d71
BuildRequires:  %{kmod_build_dependencies}
a40d71
%endif
a40d71
%if "%{kmod_dependencies}" != ""
a40d71
Requires:       %{kmod_dependencies}
a40d71
%endif
a40d71
a40d71
%description
a40d71
Virtual Data Optimizer (VDO) is a device mapper target that delivers
a40d71
block-level deduplication, compression, and thin provisioning.
a40d71
a40d71
This package provides the kernel modules for VDO.
a40d71
a40d71
%pre
a40d71
# During the install, check whether kvdo or uds is loaded.  A warning here
a40d71
# indicates that a previous install was not completely removed.  This message
a40d71
# is purely informational to the user.
a40d71
for module in kvdo uds; do
a40d71
  if grep -q "^${module}" /proc/modules; then
a40d71
    if [ "${module}" == "kvdo" ]; then
a40d71
      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."
a40d71
    else
a40d71
      echo "WARNING: Found ${module} module previously loaded.  A reboot is recommended before attempting to use the newly installed module."
a40d71
    fi
a40d71
  fi
a40d71
done
a40d71
a40d71
%post
a40d71
modules=( $(find /lib/modules/%{kmod_headers_version}/extra/kmod-%{kmod_name} | grep '\.ko$') )
a40d71
printf '%s\n' "${modules[@]}" >> /var/lib/rpm-kmod-posttrans-weak-modules-add
a40d71
a40d71
%pretrans -p <lua>
a40d71
posix.unlink("/var/lib/rpm-kmod-posttrans-weak-modules-add")
a40d71
a40d71
%posttrans
a40d71
if [ -f "/var/lib/rpm-kmod-posttrans-weak-modules-add" ]; then
a40d71
	modules=( $(cat /var/lib/rpm-kmod-posttrans-weak-modules-add) )
a40d71
	rm -rf /var/lib/rpm-kmod-posttrans-weak-modules-add
a40d71
	printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --dracut=/usr/bin/dracut --add-modules
a40d71
fi
a40d71
a40d71
%preun
a40d71
rpm -ql kmod-kvdo-%{kmod_driver_version}-%{kmod_rpm_release}%{?dist}.$(arch) | grep '\.ko$' > /var/run/rpm-kmod-%{kmod_name}-modules
a40d71
# Check whether kvdo or uds is loaded, and if so attempt to remove it.  A
a40d71
# failure to unload means there is still something using the module.  To make
a40d71
# sure the user is aware, we print a warning with recommended instructions.
a40d71
for module in kvdo uds; do
a40d71
  if grep -q "^${module}" /proc/modules; then
a40d71
    warnMessage="WARNING: ${module} in use.  Changes will take effect after a reboot."
a40d71
    modprobe -r ${module} 2>/dev/null || echo ${warnMessage} && /usr/bin/true
a40d71
  fi
a40d71
done
a40d71
a40d71
%postun
a40d71
modules=( $(cat /var/run/rpm-kmod-%{kmod_name}-modules) )
a40d71
rm /var/run/rpm-kmod-%{kmod_name}-modules
a40d71
printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --dracut=/usr/bin/dracut --remove-modules
a40d71
a40d71
%files
a40d71
%defattr(644,root,root,755)
a40d71
/lib/modules/%{kmod_headers_version}
a40d71
/etc/depmod.d/%{kmod_name}.conf
a40d71
/usr/share/doc/kmod-%{kmod_name}/greylist.txt
a40d71
a40d71
%prep
a40d71
%setup -n %{kmod_name}-%{commit}
a40d71
%{nil}
a40d71
set -- *
a40d71
mkdir source
a40d71
mv "$@" source/
a40d71
mkdir obj
a40d71
a40d71
%build
a40d71
rm -rf obj
a40d71
cp -r source obj
a40d71
make -C %{kernel_source} M=$PWD/obj/%{kmod_kbuild_dir} V=1 \
a40d71
	NOSTDINC_FLAGS="-I $PWD/obj/include -I $PWD/obj/include/uapi"
a40d71
# mark modules executable so that strip-to-file can strip them
a40d71
find obj/%{kmod_kbuild_dir} -name "*.ko" -type f -exec chmod u+x '{}' +
a40d71
a40d71
whitelist="/lib/modules/kabi-current/kabi_whitelist_%{_target_cpu}"
a40d71
a40d71
for modules in $( find obj/%{kmod_kbuild_dir} -name "*.ko" -type f -printf "%{findpat}\n" | sed 's|\.ko$||' | sort -u ) ; do
a40d71
	# update depmod.conf
a40d71
	module_weak_path=$(echo $modules | sed 's/[\/]*[^\/]*$//')
a40d71
	if [ -z "$module_weak_path" ]; then
a40d71
		module_weak_path=%{name}
a40d71
	else
a40d71
		module_weak_path=%{name}/$module_weak_path
a40d71
	fi
a40d71
	echo "override $(echo $modules | sed 's/.*\///') $(echo %{kmod_headers_version} | sed 's/\.[^\.]*$//').* weak-updates/$module_weak_path" >> source/depmod.conf
a40d71
a40d71
	# update greylist
a40d71
	nm -u obj/%{kmod_kbuild_dir}/$modules.ko | sed 's/.*U //' |  sed 's/^\.//' | sort -u | while read -r symbol; do
a40d71
		grep -q "^\s*$symbol\$" $whitelist || echo "$symbol" >> source/greylist
a40d71
	done
a40d71
done
a40d71
sort -u source/greylist | uniq > source/greylist.txt
a40d71
a40d71
%install
a40d71
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
a40d71
export INSTALL_MOD_DIR=extra/%{name}
a40d71
make -C %{kernel_source} modules_install V=1 \
a40d71
	M=$PWD/obj/%{kmod_kbuild_dir}
a40d71
# Cleanup unnecessary kernel-generated module dependency files.
a40d71
find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
a40d71
a40d71
install -m 644 -D source/depmod.conf $RPM_BUILD_ROOT/etc/depmod.d/%{kmod_name}.conf
a40d71
install -m 644 -D source/greylist.txt $RPM_BUILD_ROOT/usr/share/doc/kmod-%{kmod_name}/greylist.txt
a40d71
a40d71
%clean
a40d71
rm -rf $RPM_BUILD_ROOT
a40d71
a40d71
%changelog
0b73f6
* Wed Aug 07 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-53
0b73f6
- Bumped NVR for new 4.18 kernel
0b73f6
- Resolves: rhbz#1739186
0b73f6
aee5fd
* Tue Jun 25 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-52
aee5fd
- Bumped NVR for new 4.18 kernel
aee5fd
- Relates: rhbz#1722371
aee5fd
aee5fd
* Wed Jun 19 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-51
aee5fd
- Bumped NVR for new 4.18 kernel
aee5fd
- Relates: rhbz#1722371
aee5fd
a40d71
* Mon Feb 25 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-50
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Feb 15 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-49
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Feb 13 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-48
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Sat Feb 09 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-47
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Feb 08 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-46
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Feb 06 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-45
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Jan 16 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-44
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Mon Jan 14 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-43
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Jan 11 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-42
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Mon Jan 07 2019 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-41
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Dec 19 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-40
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Mon Dec 17 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-39
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Dec 14 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.293-38
a40d71
- Improved dmsetup error reporting of invalid thread counts.
a40d71
- rhbz#1645324
a40d71
- Allowed VDO backing devices to specified by device number.
a40d71
- Resolves: rhbz#1594285
a40d71
- Eliminated memory allocations when suspended.
a40d71
- Resolves: rhbz#1658348
a40d71
- Improved error handling during suspend.
a40d71
- Resolves: rhbz#1658348
a40d71
a40d71
* Wed Dec 12 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-38
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Mon Dec 10 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-37
a40d71
- Bumped NVR for driver signing
a40d71
- Relates: rhbz#1589873
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Thu Nov 29 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-36
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Nov 16 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.273-35
a40d71
- Fixed more error path memory leaks in the uds and kvdo modules.
a40d71
- Resolves: rhbz#1639854
a40d71
- Removed the read cache.
a40d71
- Resolves: rhbz#1639512
a40d71
- Fixed a bug which prevented parsing of version 0 table lines.
a40d71
- Resolves: rhbz#1643639
a40d71
- In order to properly handle version 0 table lines, made no-op physical
a40d71
  growth not an error.
a40d71
- Resolves: rhbz#1643639
a40d71
- Limited the number of logical zones to 60.
a40d71
- Resolves: rhbz#1645324
a40d71
- Converted to use the kernel's bio zeroing method instead of a VDO
a40d71
  specific one.
a40d71
- Resolves: rhbz#1647446
a40d71
- Added a missing call to flush_cache_page() after writing pages which may
a40d71
  be owned by the page cache or a user as required by the kernel.
a40d71
- Resolves: rhbz#1647446
a40d71
- Added a version 2 table line which uses DM-style optional parameters.
a40d71
- Resolves: rhbz#1648469
a40d71
- Fixed a bug in the statistics tracking partial I/Os.
a40d71
- Resolves: rhbz#1648496
a40d71
- Added a maximum discard size table line parameter and removed the
a40d71
  corresponding sysfs parameter which applied to all VDO devices.
a40d71
- Resolves: rhbz#1648469
a40d71
a40d71
* Wed Nov 07 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-35
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Oct 24 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-34
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Oct 24 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-33
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Oct 19 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-32
a40d71
- Depend on more of the NVR for the kernel package.
a40d71
- Resolves: rhbz#1640699
a40d71
a40d71
* Tue Oct 16 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-31
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Tue Oct 16 2018 - Tomas Kopecek <tkopecek@redhat.com> 6.2.0.239-30
a40d71
- Bumped NVR for driver signing
a40d71
- Relates: rhbz#1589873
a40d71
a40d71
* Mon Oct 15 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-29
a40d71
- Bumped NVR for driver signing
a40d71
- Relates: rhbz#1589873
a40d71
a40d71
* Thu Oct 11 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-28
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Oct 10 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-27
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Sun Oct 07 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.239-26
a40d71
- Fixed error path memory leaks in the uds and kvdo modules.
a40d71
- Resolves: rhbz#1609403
a40d71
- Modified the physical and logical growth procedures to be consistent with
a40d71
  other device mapper targets.
a40d71
- Resolves: rhbz#1631868
a40d71
a40d71
* Fri Sep 28 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-26
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Thu Sep 27 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-25
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Tue Sep 25 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-24
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Tue Sep 25 2018 - Joseph Chapman <jochapma@redhat.com> 6.2.0.219-23
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Mon Sep 24 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-22
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Sep 21 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-21
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Thu Sep 20 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-20
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Sep 19 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-19
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Tue Sep 18 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-18
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Mon Sep 17 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.219-17
a40d71
- Fixed error path memory leaks in the uds and kvdo modules.
a40d71
- Resolves: rhbz#1609403
a40d71
- Fixed conflict errors when installing RPMs via dnf.
a40d71
- Resolves: rhbz#1601103
a40d71
- Fixed a hang when recovering a VDO volume with a physical size larger
a40d71
  than 16TB.
a40d71
- Resolves: rhbz#1628316
a40d71
- Fixed some potential initialization issues in the UDS module.
a40d71
- Resolves: rhbz#1609403
a40d71
- Fixed a use-after-free bug in a UDS error path.
a40d71
- Resolves: rhbz#1609403
a40d71
- Added missing va_end() calls.
a40d71
- Resolves: rhbz#1627953
a40d71
- Modified Makefile to take build flags from rpmbuild.
a40d71
- Resolves: rhbz#1624184
a40d71
a40d71
* Fri Sep 14 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-16
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Thu Sep 13 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-15
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Sep 12 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-14
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Aug 29 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-13
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Wed Aug 29 2018 - Joseph Chapman <jochapma@redhat.com> 6.2.0.197-12
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Tue Aug 28 2018 - Josh Boyer <jwboyer@redhat.com> 6.2.0.197-11
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1623006
a40d71
a40d71
* Fri Aug 24 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-10
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1611663
a40d71
a40d71
* Mon Aug 20 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-9
a40d71
- Patched a new compiler warning out
a40d71
- Relates: rhbz#1611663
a40d71
a40d71
* Mon Aug 20 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-8
a40d71
- Bumped NVR for new 4.18 kernel
a40d71
- Relates: rhbz#1611663
a40d71
a40d71
* Mon Aug 13 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-7
a40d71
- Bumped NVR for 4.18 rebase
a40d71
- Resolves: rhbz#1534087
a40d71
a40d71
* Wed Aug  8 2018 - Andy Walsh <awalsh@redhat.com> 6.2.0.197-6
a40d71
- Enabled the setting of max_discard_sectors for VDO devices via sysfs.
a40d71
  This allows users stacking dm-thin devices on top of VDO to set a value which
a40d71
  is large enough that dm-thin will send discards to VDO.
a40d71
- Resolves: rhbz#1612349
a40d71
a40d71
* Sat Jul 28 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.187-6
a40d71
- No longer attempt to unload modules in %preun
a40d71
- Resolves: rhbz#1553420
a40d71
- Fixed a bug in %preun that was attempting to call 'dnf'
a40d71
- Resolves: rhbz#1598924
a40d71
- Fixed weak-modules calls to use proper location for dracut
a40d71
- Resolves: rhbz#1609178
a40d71
- Fixed a potential deadlock in the UDS index by using the kernel supplied
a40d71
  struct callback instead of our own implementation of synchronous
a40d71
  callbacks.
a40d71
- Eliminated obsolete code and fields from UDS.
a40d71
- Converted the VDO module to use numeric.h from the UDS module instead of
a40d71
  having its own version.
a40d71
- Fixed a bug which would cause incorrect encoding of VDO data structures
a40d71
  on disk.
a40d71
- Removed or modified logging which prints pointers from the kernel since
a40d71
  newer kernels obfuscate the pointer values for security reasons.
a40d71
- Eliminated confusing and spurious error messages when rebuilding a UDS
a40d71
  index.
a40d71
- Improved memory allocation by not using the incorrect __GFP_NORETRY flag
a40d71
  and by using the memalloc_noio_save mechanism.
a40d71
- Finished conversion of the encoding and decoding of the VDO's on-disk
a40d71
  structures to be platform independent.
a40d71
- Converted VDO to use the atomic API from the UDS module instead of its
a40d71
  own.
a40d71
- Fixed memory leaks in UDS error paths.
a40d71
- Fixed a potential stack overflow when reaping the recovery journal.
a40d71
a40d71
* Fri Jul 06 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.132-5
a40d71
- Rebuilt to work with 4.18 kernel.
a40d71
a40d71
* Thu Jun 28 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.132-4
a40d71
Note: This is a pre-release version, future versions of VDO may not support
a40d71
VDO devices created with this version.
a40d71
- Removed obsolete code.
a40d71
- Continued conversion of the encoding and decoding of the VDO's on-disk
a40d71
  structures to be platform independent.
a40d71
- Adopted use of gcc's built-in byte order macros.
a40d71
- Converted the VDO module to use the platform independent version of the
a40d71
  Murmur3 hash from the UDS module.
a40d71
- Improved counting of dedupe timeouts by including in the count queries
a40d71
  which are not made due to their being a lack of resources from previous
a40d71
  queries taking too long.
a40d71
- Improved checking that VDO does not allocate memory from its own threads
a40d71
  during normal operation.
a40d71
- Fixed a bug which caused crashes with VDO on top of RAID-50.
a40d71
- Fixed a bug which caused VDO to ignore most flush requests on kernels
a40d71
  later than 4.10
a40d71
- Resolves: rhbz#1594062
a40d71
a40d71
* Thu Jun 21 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.109-4
a40d71
Note: This is a pre-release version, future versions of VDO may not support
a40d71
VDO devices created with this version.
a40d71
- Removed obsolete code.
a40d71
- Made uses of memory barriers and atomics more portable across platforms.
a40d71
- Converted the encoding and decoding of many of VDO's on-disk structures
a40d71
  to be platform independent.
a40d71
- Made the implementation of VDO's in-memory data structures platform
a40d71
  independent.
a40d71
- Fixed a logging bug which resulted in single log message being split
a40d71
  across multiple log lines on newer kernels.
a40d71
- Fixed a bug which would cause attempts to grow the physical size of a VDO
a40d71
  device to fail if the device below the VDO was resized while the VDO was
a40d71
  offline.
a40d71
- Converted to use GCC's built-in macros for determining endianness.
a40d71
- Converted some non-performance critical atomics to be spinlock protected
a40d71
  in order to avoid dealing with memory barrier portability issues.
a40d71
- Fixed a bug which could cause data loss when discarding unused portions
a40d71
  of a VDO's logical space.
a40d71
- Reduced memory usage (slightly) by rearranging structures to pack better
a40d71
  in memory.
a40d71
- Modified grow physical to fail in the prepare step if the size isn't
a40d71
  changing, avoiding a suspend-and-resume cycle.
a40d71
- Added support for building with a 4.18 kernel.
a40d71
a40d71
* Mon Jun 04 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.71-4
a40d71
Note: This is a pre-release version, future versions of VDO may not support
a40d71
VDO devices created with this version.
a40d71
- Updated to compile on aarch64, ppc64le, and s390x processor architectures
a40d71
  in addition to x86.
a40d71
- Updated atomics, memory barriers, and other synchronization mechanisms to
a40d71
  work on aarch64, ppc64le, and s390x processor architectures in addition
a40d71
  to x86.
a40d71
- Fixed thread safety issues in the UDS page cache.
a40d71
- Removed obsolete code and interfaces from the UDS module.
a40d71
- Added /sys/kvdo/version which contains the currently loaded version of
a40d71
  the kvdo module.
a40d71
- Updated the UDS module to consistently generate and encode on-disk data
a40d71
  regardless of the processor architecture.
a40d71
- Began Updating the VDO module to consistently encode on-disk data
a40d71
  regardless of the processor architecture.
a40d71
- Added logging of normal operation when a VDO device starts normally.
a40d71
- Fixed a potential use-after-free race when shutting down a VDO device.
a40d71
- Modified allocations made from VDO index threads to use the correct flags.
a40d71
- Exported the MurmurHash3 implementation from the UDS module rather than
a40d71
  having a seperate copy in the VDO module.
a40d71
- Fixed handling of I/O errors in 4.13 and later kernels.
a40d71
- Exported functions for handling endian conversions from the UDS module
a40d71
  for use by the VDO module.
a40d71
a40d71
* Tue May 01 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.35-3
a40d71
- Enabled aarch64 builds
a40d71
a40d71
* Fri Apr 27 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.35-2
a40d71
Note: This is a pre-release version, future versions of VDO may not support
a40d71
VDO devices created with this version.
a40d71
- Added validation that the release version numbers in the geometry and
a40d71
  super block match on load.
a40d71
- Fixed compilation problems on newer versions of GCC.
a40d71
a40d71
* Tue Apr 24 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.32-2
a40d71
Note: This is a pre-release version, future versions of VDO may not support
a40d71
VDO devices created with this version.
a40d71
- Merged the funnel queue implementations in the uds and kvdo modules.
a40d71
- Improved deduplication of concurrent requests containing the same data.
a40d71
- Enabled loading of VDO devices created with version 6.0 or 6.1.
a40d71
- Moved atomic.h from the UDS module to the VDO module since the UDS module
a40d71
  doesn't use it.
a40d71
- Removed spurious error messages when first creating the index for a new
a40d71
  VDO.
a40d71
- Added validation that the release version numbers in the geometry block
a40d71
  and VDO super block match.
a40d71
- Fixed bug in UDS on architectures with page sizes larger than 4K.
a40d71
- Reflected kernel change of SECTOR_SHIFT and SECTOR_SIZE from enums to
a40d71
  macros.
a40d71
- Continued to remove obsolete functionality from the UDS module.
a40d71
- Continued to add support for architectures other than x86.
a40d71
- Fixed a thread-safety issue in UDS module's chapter cache.
a40d71
a40d71
* Tue Apr 17 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.4-2
a40d71
- Fixed path to _sbindir for weak-mldules
a40d71
- Resolves: rhbz#1566144
a40d71
         
a40d71
* Fri Apr 13 2018 - Andy Walsh <awalsh@redhat.com> - 6.2.0.4-1
a40d71
- Updated to use github for Source0
a40d71
- Removed unused sections
a40d71
- Initial RHEL8 RPM rhbz#1534087
a40d71
         
a40d71
* Fri Apr 13 2018 - J. corwin Coburn <corwin@redhat.com> - 6.2.0.4-1
a40d71
- Initial pre-release for RHEL 8.
a40d71
  - Please be aware that this version is not compatible with previous versions
a40d71
    of VDO. Support for loading or upgrading devices created with VDO version
a40d71
    6.1 will be available soon.
a40d71
- Management tools will work with both python 2 and python 3.
a40d71
- Dedupe path improvements.
a40d71
- Beginnings of support for non-x86 architectures.
a40d71
- Removed obsolete code from UDS.
a40d71
a40d71
* Tue Feb 27 2018 - Andy Walsh <awalsh@redhat.com> - 6.1.0.153-15
a40d71
- Fixed preun handling of loaded modules
a40d71
- Resolves: rhbz#1549178
a40d71
a40d71
* Fri Feb 16 2018 - Joseph Chapman <jochapma@redhat.com> - 6.1.0.149-13
a40d71
- Sync mode is safe if underlying storage changes to requiring flushes
a40d71
- Resolves: rhbz#1540777
a40d71
a40d71
* Wed Feb 07 2018 - Joseph Chapman <jochapma@redhat.com> - 6.1.0.146-13
a40d71
- Module target is now "vdo" instead of "dedupe"
a40d71
- Fixed a bug where crash recovery led to failed kernel page request
a40d71
- Improved modification log messages
a40d71
- Improved package description and summary fields
a40d71
- Resolves: rhbz#1535127
a40d71
- Resolves: rhbz#1535597
a40d71
- Resolves: rhbz#1540696
a40d71
- Resolves: rhbz#1541409
a40d71
a40d71
* Tue Feb 06 2018 - Andy Walsh <awalsh@redhat.com> - 6.1.0.144-13
a40d71
- Updated summary and descriptions
a40d71
- Resolves: rhbz#1541409
a40d71
a40d71
* Thu Feb 01 2018 - Joseph Chapman <jochapma@redhat.com> - 6.1.0.130-12
a40d71
- Fix General Protection Fault unlocking UDS callback mutex
a40d71
- Removing kmod-kvdo package unloads kernel module
a40d71
- Fix URL to point to GitHub tree
a40d71
- Resolves: rhbz#1510176
a40d71
- Resolves: rhbz#1533260
a40d71
- Resolves: rhbz#1539061
a40d71
a40d71
* Fri Jan 19 2018 - Joseph Chapman <jochapma@redhat.com> - 6.1.0.124-11
a40d71
- Fixed provisional referencing for dedupe.
a40d71
- Only log a bio submission from a VDO to itself.
a40d71
- vdoformat cleans up metadata properly after fail.
a40d71
- Resolves: rhbz#1511587
a40d71
- Resolves: rhbz#1520972
a40d71
- Resolves: rhbz#1532481
a40d71
a40d71
* Wed Jan 10 2018 - Joseph Chapman <jochapma@redhat.com> - 6.1.0.114-11
a40d71
- /sys/uds permissions now resticted to superuser only
a40d71
- Remove /sys/uds files that should not be used in production
a40d71
- Removing kvdo module reports version
a40d71
- VDO automatically chooses the proper write policy by default
a40d71
- Fixed a Coverity-detected error path leak
a40d71
- Resolves: rhbz#1525305
a40d71
- Resolves: rhbz#1527734
a40d71
- Resolves: rhbz#1527737
a40d71
- Resolves: rhbz#1527924
a40d71
- Resolves: rhbz#1528399
a40d71
a40d71
* Thu Dec 21 2017 - Joseph Chapman <jochapma@redhat.com> - 6.1.0.106-11
a40d71
- Detect journal overflow after 160E of writes
a40d71
- Clean up UDS threads when removing last VDO
a40d71
- Resolves: rhbz#1512968
a40d71
- Resolves: rhbz#1523240
a40d71
a40d71
* Tue Dec 12 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.97-11
a40d71
- Default logical size is no longer over-provisioned
a40d71
- Remove debug logging when verifying dedupe advice
a40d71
- Resolves: rhbz#1519330
a40d71
a40d71
* Fri Dec 08 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.89-11
a40d71
- improve metadata cleanup after vdoformat failure
a40d71
- log REQ_FLUSH & REQ_FUA at level INFO
a40d71
- improve performance of cuncurrent write requests with the same data
a40d71
- Resolves: rhbz#1520972
a40d71
- Resolves: rhbz#1521200
a40d71
a40d71
* Fri Dec 01 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.72-10
a40d71
- clear VDO metadata on a vdo remove call
a40d71
- fix create of new dedupe indices
a40d71
- add magic number to VDO geometry block
a40d71
- do less logging when stopping a VDO
a40d71
- add a UUID
a40d71
- Resolves: rhbz#1512127
a40d71
- Resolves: rhbz#1516081
a40d71
- Resolves: rhbz#1511109
a40d71
- Resolves: rhbz#1515183
a40d71
a40d71
* Fri Nov 17 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.55-9
a40d71
- fail loading an uncreated index more gracefully
a40d71
- remove spurious/unnecessary files from the distribution
a40d71
- fix kernel module version
a40d71
- make logging less chatty
a40d71
- fix an integer overflow in makeVDOLayout
a40d71
- Resolves: rhbz#1511034
a40d71
- Resolves: rhbz#1511109
a40d71
- Resolves: rhbz#1511096
a40d71
a40d71
* Fri Nov 10 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.44-8
a40d71
- fix readCacheSize handling large numbers
a40d71
- vdoformat signals error when it finds a geometry block
a40d71
- prevent kernel oops when loading an old geometry block
a40d71
- vdoformat silently rounds down physical sizes to a block boundary
a40d71
- UDS threads identify related VDO device
a40d71
- clean up contents of source tarballs
a40d71
- Resolves: rhbz#1505936
a40d71
- Resolves: rhbz#1507996
a40d71
- Resolves: rhbz#1509466
a40d71
- Resolves: rhbz#1510558
a40d71
- Resolves: rhbz#1510585
a40d71
- Resolves: rhbz#1511201
a40d71
- Resolves: rhbz#1511209
a40d71
a40d71
* Fri Nov 03 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.34-7
a40d71
- Bugfixes
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Mon Oct 30 2017 Joe Chapman <jochapma@redhat.com> 6.1.0.13-6
a40d71
- Fixed some scanning tool complaints
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Tue Oct 24 2017 Andy Walsh <awalsh@redhat.com> 6.1.0.0-6
a40d71
- Fixed kernel requirement to allow subsequent releases without updating spec
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Fri Oct 20 2017 John Wiele <jwiele@redhat.com> 6.1.0.0-5
a40d71
- Bumped kernel requirement to 3.10.0-741
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Tue Oct 17 2017 John Wiele <jwiele@redhat.com> 6.1.0.0-4
a40d71
- Resolved some missing symbols
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Mon Oct 16 2017 John Wiele <jwiele@redhat.com> 6.1.0.0-3
a40d71
- Updated to provide a useable package
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Sat Oct 14 2017 Andy Walsh <awalsh@redhat.com> 6.1.0.0-2
a40d71
- Removed invalid requirement and some unnecessary comments in spec
a40d71
- Resolves: rhbz#1491422
a40d71
a40d71
* Wed Oct 11 2017 John Wiele <jwiele@redhat.com> 6.1.0.0-1
a40d71
- Initial vdo module for Driver Update Program
a40d71
- Resolves: rhbz#1491422