Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 340e01248478ba8b78a6d4d1809b1eff > files > 20

kvm-83-270.el5_11.src.rpm

From 5d569c63448766192f290d351e1c5262d44ef557 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost@redhat.com>
Date: Tue, 23 Sep 2008 14:40:13 -0300
Subject: [PATCH 15/54] Use native anon_inodes on RHEL5 if available

RHEL5 now includes anon_inodes on newer kernel versions. Detect this
case and use the native anon_inodes implementation when available.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
RH-Type: improvement
RH-Upstream-status: submitted(kvm-devel)
---
 kernel/anon_inodes.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/kernel/anon_inodes.c b/kernel/anon_inodes.c
index 68135a5..7a7fc45 100644
--- a/kernel/anon_inodes.c
+++ b/kernel/anon_inodes.c
@@ -21,7 +21,14 @@
 
 #include <asm/uaccess.h>
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
+/* anon_inodes on RHEL >= 5.2 is equivalent to 2.6.27 version */
+#ifdef RHEL_RELEASE_CODE
+#  if (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,2)) && defined(CONFIG_ANON_INODES)
+#    define RHEL_ANON_INODES
+#  endif
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) && !defined(RHEL_ANON_INODES)
 
 static struct vfsmount *anon_inode_mnt __read_mostly;
 static struct inode *anon_inode_inode;
@@ -230,7 +237,7 @@ void kvm_exit_anon_inodes(void)
 
 #undef anon_inode_getfd
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) && !defined(RHEL_ANON_INODES)
 
 int kvm_anon_inode_getfd(const char *name,
 			 const struct file_operations *fops,
@@ -247,7 +254,7 @@ int kvm_anon_inode_getfd(const char *name,
 	return fd;
 }
 
-#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,26)
+#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,26) && !defined(RHEL_ANON_INODES)
 
 int kvm_anon_inode_getfd(const char *name,
 			 const struct file_operations *fops,
-- 
1.6.1