This file is indexed.

/usr/src/kernel-patches/lustre/patches/iopen-misc-2.6.12.patch is in linux-patch-lustre 1.8.5+dfsg-3ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
Index: linux-2.6.16.46-0.14/Documentation/filesystems/ext2.txt
===================================================================
--- linux-2.6.16.46-0.14.orig/Documentation/filesystems/ext2.txt
+++ linux-2.6.16.46-0.14/Documentation/filesystems/ext2.txt
@@ -58,6 +58,22 @@ nobh				Do not attach buffer_heads to fi
 
 xip				Use execute in place (no caching) if possible
 
+iopen				Makes an invisible pseudo-directory called 
+				__iopen__ available in the root directory
+				of the filesystem.  Allows open-by-inode-
+				number.  i.e., inode 3145 can be accessed
+				via /mntpt/__iopen__/3145
+
+iopen_nopriv			This option makes the iopen directory be
+				world-readable.  This may be safer since it
+				allows daemons to run as an unprivileged user,
+				however it significantly changes the security
+				model of a Unix filesystem, since previously
+				all files under a mode 700 directory were not
+				generally avilable even if the
+				permissions on the file itself is
+				world-readable.
+
 grpquota,noquota,quota,usrquota	Quota options are silently ignored by ext2.
 
 
Index: linux-2.6.16.46-0.14/fs/dcache.c
===================================================================
--- linux-2.6.16.46-0.14.orig/fs/dcache.c
+++ linux-2.6.16.46-0.14/fs/dcache.c
@@ -1309,17 +1309,26 @@ static void __d_rehash(struct dentry * e
  * Adds a dentry to the hash according to its name.
  */
  
-void d_rehash(struct dentry * entry)
+void d_rehash_cond(struct dentry * entry, int lock)
 {
 	struct hlist_head *list = d_hash(entry->d_parent, entry->d_name.hash);
 
-	spin_lock(&dcache_lock);
+	if (lock)
+		spin_lock(&dcache_lock);
 	spin_lock(&entry->d_lock);
 	__d_rehash(entry, list);
 	spin_unlock(&entry->d_lock);
-	spin_unlock(&dcache_lock);
+	if (lock)
+		spin_unlock(&dcache_lock);
 }
 
+EXPORT_SYMBOL(d_rehash_cond);
+
+void d_rehash(struct dentry * entry)
+{
+	d_rehash_cond(entry, 1);
+ }
+
 #define do_switch(x,y) do { \
 	__typeof__ (x) __tmp = x; \
 	x = y; y = __tmp; } while (0)
@@ -1392,14 +1401,13 @@ static void switch_names(struct dentry *
  * dcache entries should not be moved in this way.
  */
 
-void d_move(struct dentry * dentry, struct dentry * target)
+void d_move_locked(struct dentry * dentry, struct dentry * target)
 {
 	struct hlist_head *list;
 
 	if (!dentry->d_inode)
 		printk(KERN_WARNING "VFS: moving negative dcache entry\n");
 
-	spin_lock(&dcache_lock);
 	write_seqlock(&rename_lock);
 	/*
 	 * XXXX: do we really need to take target->d_lock?
@@ -1450,6 +1458,14 @@ already_unhashed:
 	fsnotify_d_move(dentry);
 	spin_unlock(&dentry->d_lock);
 	write_sequnlock(&rename_lock);
+}
+
+EXPORT_SYMBOL(d_move_locked);
+
+void d_move(struct dentry *dentry, struct dentry *target)
+{
+	spin_lock(&dcache_lock);
+	d_move_locked(dentry, target);
 	spin_unlock(&dcache_lock);
 }
 
Index: linux-2.6.16.46-0.14/include/linux/dcache.h
===================================================================
--- linux-2.6.16.46-0.14.orig/include/linux/dcache.h
+++ linux-2.6.16.46-0.14/include/linux/dcache.h
@@ -236,6 +236,7 @@ extern int have_submounts(struct dentry 
  * This adds the entry to the hash queues.
  */
 extern void d_rehash(struct dentry *);
+extern void d_rehash_cond(struct dentry *, int lock);
 
 /**
  * d_add - add dentry to hash queues
@@ -271,6 +272,7 @@ static inline struct dentry *d_add_uniqu
 
 /* used for rename() and baskets */
 extern void d_move(struct dentry *, struct dentry *);
+extern void d_move_locked(struct dentry *, struct dentry *);
 
 /* appendix may either be NULL or be used for transname suffixes */
 extern struct dentry * d_lookup(struct dentry *, struct qstr *);