diff --git a/SOURCES/lvm2-2_02_167-fix-inability-of-lvconvert-repair-for-cache-raid-volumes.patch b/SOURCES/lvm2-2_02_167-fix-inability-of-lvconvert-repair-for-cache-raid-volumes.patch
new file mode 100644
index 0000000..8dc2754
--- /dev/null
+++ b/SOURCES/lvm2-2_02_167-fix-inability-of-lvconvert-repair-for-cache-raid-volumes.patch
@@ -0,0 +1,27 @@
+@@ -, +, @@ 
+ convert internal LV"
+---
+ tools/lvconvert.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+--- a/tools/lvconvert.c	
++++ a/tools/lvconvert.c	
+@@ -243,6 +243,7 @@ static int _lvconvert_name_params(struct lvconvert_params *lp,
+ 	    !strstr(lp->lv_name, "_tmeta") &&
+ 	    !strstr(lp->lv_name, "_cdata") &&
+ 	    !strstr(lp->lv_name, "_cmeta") &&
++	    !strstr(lp->lv_name, "_corig") &&
+ 	    !apply_lvname_restrictions(lp->lv_name))
+ 		return_0;
+ 
+@@ -4440,7 +4441,8 @@ static int _lvconvert(struct cmd_context *cmd, struct logical_volume *lv,
+ 		    !lv_is_thin_pool_metadata(lv) &&
+ 		    !lv_is_thin_pool_data(lv) &&
+ 		    !lv_is_used_cache_pool(lv) &&
+-		    !lv_is_raid_image(lv)) {
++		    !lv_is_raid_image(lv) &&
++		    !(lv_is_raid(lv) && strstr(lv->name, "_corig"))) {
+ 			log_error("Cannot convert internal LV %s.", display_lvname(lv));
+ 			ret = 0;
+ 			goto out;
+-- 
+
diff --git a/SOURCES/lvm2-fix-libdm-versioning-for-dm_tree_node_size_changed-symbol.patch b/SOURCES/lvm2-fix-libdm-versioning-for-dm_tree_node_size_changed-symbol.patch
new file mode 100644
index 0000000..5a941ea
--- /dev/null
+++ b/SOURCES/lvm2-fix-libdm-versioning-for-dm_tree_node_size_changed-symbol.patch
@@ -0,0 +1,21 @@
+ libdm/.exported_symbols.DM_1_02_107 | 1 +
+ libdm/.exported_symbols.DM_1_02_110 | 1 -
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libdm/.exported_symbols.DM_1_02_107 b/libdm/.exported_symbols.DM_1_02_107
+index 89d3464..0c7b7af 100644
+--- a/libdm/.exported_symbols.DM_1_02_107
++++ b/libdm/.exported_symbols.DM_1_02_107
+@@ -13,3 +13,4 @@ dm_stats_create_region
+ dm_stats_driver_supports_histogram
+ dm_stats_get_histogram
+ dm_stats_get_region_nr_histogram_bins
++dm_tree_node_size_changed
+diff --git a/libdm/.exported_symbols.DM_1_02_110 b/libdm/.exported_symbols.DM_1_02_110
+index eba5625..da742ee 100644
+--- a/libdm/.exported_symbols.DM_1_02_110
++++ b/libdm/.exported_symbols.DM_1_02_110
+@@ -1,3 +1,2 @@
+ dm_report_compact_given_fields
+ dm_hold_control_dev
+-dm_tree_node_size_changed
diff --git a/SPECS/lvm2.spec b/SPECS/lvm2.spec
index 83e0aba..557beac 100644
--- a/SPECS/lvm2.spec
+++ b/SPECS/lvm2.spec
@@ -51,17 +51,19 @@ Summary: Userland logical volume management tools
 Name: lvm2
 Epoch: 7
 Version: 2.02.166
-Release: 1%{?dist}
+Release: 1%{?dist}.1
 License: GPLv2
 Group: System Environment/Base
 URL: http://sources.redhat.com/lvm2
 Source0: ftp://sources.redhat.com/pub/lvm2/releases/LVM2.%{version}.tgz
 Patch0: lvm2-rhel7.patch
 Patch1: lvm2-set-default-preferred_names.patch
-Patch2: lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch
-Patch3: lvm2-default-allow-changes-with-duplicate-pvs.patch
-Patch4: lvm2-revert-fix-for-lvconvert-repair-for-raid-lvs.patch
-Patch5: lvm2-2_02_167-disable-lvconvert-of-thin-pool-to-raid-while-active.patch
+Patch2: lvm2-fix-libdm-versioning-for-dm_tree_node_size_changed-symbol.patch
+Patch3: lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch
+Patch4: lvm2-default-allow-changes-with-duplicate-pvs.patch
+Patch5: lvm2-revert-fix-for-lvconvert-repair-for-raid-lvs.patch
+Patch6: lvm2-2_02_167-disable-lvconvert-of-thin-pool-to-raid-while-active.patch
+Patch7: lvm2-2_02_167-fix-inability-of-lvconvert-repair-for-cache-raid-volumes.patch
 
 BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel
 BuildRequires: libblkid-devel >= %{util_linux_version}
@@ -109,10 +111,12 @@ or more physical volumes and creating one or more logical volumes
 %setup -q -n LVM2.%{version}
 %patch0 -p1 -b .rhel7
 %patch1 -p1 -b .preferred_names
-%patch2 -p1 -b .blkid_sublks_badcsum
-%patch3 -p1 -b .default_allow_dup
-%patch4 -p1 -b .lvconvert_repair_raid
-%patch5 -p1 -b .lvconvert_disable_thin_pool_to_raid
+%patch2 -p1 -b .libdm_symbol_versioning
+%patch3 -p1 -b .blkid_sublks_badcsum
+%patch4 -p1 -b .default_allow_dup
+%patch5 -p1 -b .lvconvert_repair_raid
+%patch6 -p1 -b .lvconvert_disable_thin_pool_to_raid
+%patch7 -p1 -b .lvconvert_cache_raid
 
 %build
 %global _default_pid_dir /run
@@ -760,13 +764,15 @@ of device-mapper devices.
 # http://cgit.freedesktop.org/systemd/systemd/commit/?id=57ab2eabb8f92fad5239c7d4492e9c6e23ee0678
 systemctl enable dm-event.socket
 systemctl start dm-event.socket
-if [ -e %{_default_pid_dir}/dmeventd.pid ]; then
-	%{_sbindir}/dmeventd -R || echo "Failed to restart dmeventd daemon. Please, try manual restart."
-fi
 
 %preun -n device-mapper-event
 %systemd_preun dm-event.service dm-event.socket
 
+%posttrans -n device-mapper-event
+if [ -e %{_default_pid_dir}/dmeventd.pid ]; then
+	%{_sbindir}/dmeventd -R || echo "Failed to restart dmeventd daemon. Please, try manual restart."
+fi
+
 %files -n device-mapper-event
 %defattr(444,root,root,-)
 %attr(555, -, -) %{_sbindir}/dmeventd
@@ -813,6 +819,11 @@ the device-mapper event library.
 %{_libdir}/pkgconfig/devmapper-event.pc
 
 %changelog
+* Wed Oct 12 2016 Peter Rajnoha <prajnoha@redhat.com> - 7:2.02.166-1.el7_3.1
+- Fix lvconvert to allow repair for cache raid LVs.
+- Fix time when dmeventd is reloaded on package upgrade to start using new code.
+- Fix libdm versioning for dm_tree_node_size_changed symbol.
+
 * Wed Sep 28 2016 Peter Rajnoha <prajnoha@redhat.com> - 7:2.02.166-1
 - Disable lvconvert of thin pool to raid while active.
 - Use dm_config_parse_without_dup_node_check() to speedup metadata reading.