+++ /dev/null
-Index: linux-2.6/Documentation/filesystems/ext2.txt
-===================================================================
---- linux-2.6.orig/Documentation/filesystems/ext2.txt 2006-04-03 22:46:38.000000000 +0800
-+++ linux-2.6/Documentation/filesystems/ext2.txt 2006-07-15 12:54:06.000000000 +0800
-@@ -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/fs/dcache.c
-===================================================================
---- linux-2.6.orig/fs/dcache.c 2006-07-15 12:48:18.000000000 +0800
-+++ linux-2.6/fs/dcache.c 2006-07-15 12:54:06.000000000 +0800
-@@ -1341,14 +1341,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?
-@@ -1399,6 +1398,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/include/linux/dcache.h
-===================================================================
---- linux-2.6.orig/include/linux/dcache.h 2006-07-15 12:48:41.000000000 +0800
-+++ linux-2.6/include/linux/dcache.h 2006-07-15 12:54:06.000000000 +0800
-@@ -292,6 +293,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 *);