Index: linux-2.6.11/Documentation/filesystems/ext2.txt =================================================================== --- linux-2.6.11.orig/Documentation/filesystems/ext2.txt 2005-03-02 02:37:50.000000000 -0500 +++ linux-2.6.11/Documentation/filesystems/ext2.txt 2005-04-13 22:49:42.116372414 -0400 @@ -58,6 +58,22 @@ nobh Do not attach buffer_heads to file pagecache. +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.11/fs/dcache.c =================================================================== --- linux-2.6.11.orig/fs/dcache.c 2005-04-13 22:44:50.482498026 -0400 +++ linux-2.6.11/fs/dcache.c 2005-04-13 22:50:43.846174872 -0400 @@ -1289,14 +1289,13 @@ * dcache entries should not be moved in this way. */ -void d_move(struct dentry * dentry, struct dentry * target) +void __d_move(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? @@ -1356,6 +1355,14 @@ spin_unlock(&target->d_lock); spin_unlock(&dentry->d_lock); write_sequnlock(&rename_lock); +} + +EXPORT_SYMBOL(__d_move); + +void d_move(struct dentry *dentry, struct dentry *target) +{ + spin_lock(&dcache_lock); + __d_move(dentry, target); spin_unlock(&dcache_lock); } Index: linux-2.6.11/include/linux/dcache.h =================================================================== --- linux-2.6.11.orig/include/linux/dcache.h 2005-04-13 22:44:53.777168980 -0400 +++ linux-2.6.11/include/linux/dcache.h 2005-04-13 22:49:42.119372070 -0400 @@ -239,6 +239,7 @@ * This adds the entry to the hash queues. */ extern void d_rehash(struct dentry *); +extern void __d_rehash(struct dentry *, int lock); /** * d_add - add dentry to hash queues @@ -274,6 +275,7 @@ /* used for rename() and baskets */ extern void d_move(struct dentry *, struct dentry *); +extern void __d_move(struct dentry *, struct dentry *); /* appendix may either be NULL or be used for transname suffixes */ extern struct dentry * d_lookup(struct dentry *, struct qstr *);