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