From ce0896a547a532d1990db5ca0c0cde2351dff5d8 Mon Sep 17 00:00:00 2001
From: yangsheng <yangsheng>
Date: Tue, 15 Apr 2008 16:02:37 +0000
Subject: [PATCH] Branch b1_6 b=12652 i=shadow, johann

Add FMODE_EXEC flag to SLES10 SP1.
---
 lustre/ChangeLog                              |  4 +++
 .../patches/fmode-exec-2.6-sles10.patch       | 36 +++++++++++++++++++
 .../kernel_patches/series/2.6-sles10.series   |  1 +
 3 files changed, 41 insertions(+)
 create mode 100644 lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch

diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index f5d575448b..5cc30d3c9d 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -18,6 +18,10 @@ tbd  Sun Microsystems, Inc.
        * RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd' to a
         removed cwd "./" (refer to Bugzilla 14399).
 
+Severity   : normal
+Bugzilla   : 12652
+Description: Add FMODE_EXEC to SLES10 SP1 series.
+
 Severity   : enhancement
 Bugzilla   : 13397
 Description: Add server support for vanilla-2.6.22.14.
diff --git a/lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch b/lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch
new file mode 100644
index 0000000000..8ba560c940
--- /dev/null
+++ b/lustre/kernel_patches/patches/fmode-exec-2.6-sles10.patch
@@ -0,0 +1,36 @@
+Index: LINUX-SRC-TREE/include/linux/fs.h
+===================================================================
+--- LINUX-SRC-TREE.orig/include/linux/fs.h
++++ LINUX-SRC-TREE/include/linux/fs.h
+@@ -61,6 +61,7 @@ extern int dir_notify_enable;
+ 
+ #define FMODE_READ 1
+ #define FMODE_WRITE 2
++#define FMODE_EXEC 16
+ 
+ /* Internal kernel extensions */
+ #define FMODE_LSEEK	4
+Index: LINUX-SRC-TREE/fs/exec.c
+===================================================================
+--- LINUX-SRC-TREE.orig/fs/exec.c
++++ LINUX-SRC-TREE/fs/exec.c
+@@ -129,7 +129,8 @@ asmlinkage long sys_uselib(const char __
+ 	struct nameidata nd;
+ 	int error;
+ 
+-	error = __user_path_lookup_open(library, LOOKUP_FOLLOW, &nd, FMODE_READ);
++	error = __user_path_lookup_open(library, LOOKUP_FOLLOW, &nd,
++					FMODE_READ | FMODE_EXEC);
+ 	if (error)
+ 		goto out;
+ 
+@@ -481,7 +483,8 @@ struct file *open_exec(const char *name)
+ 	int err;
+ 	struct file *file;
+ 
+-	err = path_lookup_open(AT_FDCWD, name, LOOKUP_FOLLOW, &nd, FMODE_READ);
++	err = path_lookup_open(AT_FDCWD, name, LOOKUP_FOLLOW, &nd,
++			       FMODE_READ | FMODE_EXEC);
+ 	file = ERR_PTR(err);
+ 
+ 	if (!err) {
diff --git a/lustre/kernel_patches/series/2.6-sles10.series b/lustre/kernel_patches/series/2.6-sles10.series
index 6fc4de851e..8a3494302e 100644
--- a/lustre/kernel_patches/series/2.6-sles10.series
+++ b/lustre/kernel_patches/series/2.6-sles10.series
@@ -11,3 +11,4 @@ blkdev_tunables-2.6-sles10.patch
 jbd-stats-2.6-sles10.patch
 i_filter_data.patch
 quota-fix-oops-in-invalidate_dquots.patch
+fmode-exec-2.6-sles10.patch
-- 
GitLab