diff --git a/utils/lvm2/patches/002-const-stdio.patch b/utils/lvm2/patches/002-const-stdio.patch
index fff379647..1d468f6ec 100644
--- a/utils/lvm2/patches/002-const-stdio.patch
+++ b/utils/lvm2/patches/002-const-stdio.patch
@@ -1,6 +1,6 @@
 --- a/lib/commands/toolcontext.c
 +++ b/lib/commands/toolcontext.c
-@@ -1747,8 +1747,10 @@ struct cmd_context *create_toolcontext(u
+@@ -1785,8 +1785,10 @@ struct cmd_context *create_toolcontext(u
  				       unsigned set_filters)
  {
  	struct cmd_context *cmd;
@@ -11,7 +11,7 @@
  
  #ifdef M_MMAP_MAX
  	mallopt(M_MMAP_MAX, 0);
-@@ -1784,7 +1786,7 @@ struct cmd_context *create_toolcontext(u
+@@ -1822,7 +1824,7 @@ struct cmd_context *create_toolcontext(u
  	/* FIXME Make this configurable? */
  	reset_lvm_errno(1);
  
@@ -20,7 +20,7 @@
  	/* Set in/out stream buffering before glibc */
  	if (set_buffering) {
  		/* Allocate 2 buffers */
-@@ -2167,7 +2169,7 @@ void destroy_toolcontext(struct cmd_cont
+@@ -2205,7 +2207,7 @@ void destroy_toolcontext(struct cmd_cont
  	if (cmd->libmem)
  		dm_pool_destroy(cmd->libmem);
  
@@ -31,7 +31,7 @@
  		if (is_valid_fd(STDIN_FILENO) &&
 --- a/tools/lvmcmdline.c
 +++ b/tools/lvmcmdline.c
-@@ -1744,6 +1744,7 @@ int lvm_split(char *str, int *argc, char
+@@ -1782,6 +1782,7 @@ int lvm_split(char *str, int *argc, char
  /* Make sure we have always valid filedescriptors 0,1,2 */
  static int _check_standard_fds(void)
  {
@@ -39,7 +39,7 @@
  	int err = is_valid_fd(STDERR_FILENO);
  
  	if (!is_valid_fd(STDIN_FILENO) &&
-@@ -1770,6 +1771,12 @@ static int _check_standard_fds(void)
+@@ -1808,6 +1809,12 @@ static int _check_standard_fds(void)
  		       strerror(errno));
  		return 0;
  	}
diff --git a/utils/lvm2/patches/004-device-include-goto-lable-as-well.patch b/utils/lvm2/patches/004-device-include-goto-lable-as-well.patch
new file mode 100644
index 000000000..3bbf8a19a
--- /dev/null
+++ b/utils/lvm2/patches/004-device-include-goto-lable-as-well.patch
@@ -0,0 +1,31 @@
+From a887fe76be459d32a638d0abde96cc715632c8d5 Mon Sep 17 00:00:00 2001
+From: Daniel Golle <daniel@makrotopia.org>
+Date: Fri, 20 May 2016 06:31:15 +0200
+Subject: [PATCH] device: include goto lable as well
+To: lvm-devel@redhat.com
+
+commit b5314c2a6ae5fe4f802e82a4f31cf2fad398ded9
+device:  Retry open without O_NOATIME if it fails.
+
+makes use of goto lable 'opened:' but that might not be defined, e.g.
+on standard C libraries without O_DIRECT_SUPPORT.
+---
+ lib/device/dev-io.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c
+index a9a2374..4d71967 100644
+--- a/lib/device/dev-io.c
++++ b/lib/device/dev-io.c
+@@ -529,7 +529,7 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet)
+ 		return 0;
+ 	}
+ 
+-#ifdef O_DIRECT_SUPPORT
++#if defined(O_DIRECT_SUPPORT) || defined(O_NOATIME)
+       opened:
+ 	if (direct)
+ 		dev->flags |= DEV_O_DIRECT_TESTED;
+-- 
+2.8.2
+