The patch titled ext3: reject filehandles referring to special files has been added to the -mm tree. Its filename is ext3-reject-filehandles-referring-to-special-files.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: ext3: reject filehandles referring to special files From: Neil Brown <neilb@xxxxxxx> Inodes earlier than the 'first' inode (e.g. journal, resize) should be rejected early - except the root inode. Signed-off-by: Neil Brown <neilb@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/exportfs/expfs.c | 4 +++- fs/ext3/super.c | 15 +++++++++++++++ include/linux/fs.h | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff -puN fs/exportfs/expfs.c~ext3-reject-filehandles-referring-to-special-files fs/exportfs/expfs.c --- a/fs/exportfs/expfs.c~ext3-reject-filehandles-referring-to-special-files +++ a/fs/exportfs/expfs.c @@ -392,7 +392,8 @@ out: } -static struct dentry *export_iget(struct super_block *sb, unsigned long ino, __u32 generation) +struct dentry *export_iget(struct super_block *sb, unsigned long ino, + __u32 generation) { /* iget isn't really right if the inode is currently unallocated!! @@ -434,6 +435,7 @@ static struct dentry *export_iget(struct } return result; } +EXPORT_SYMBOL_GPL(export_iget); static struct dentry *get_object(struct super_block *sb, void *vobjp) diff -puN fs/ext3/super.c~ext3-reject-filehandles-referring-to-special-files fs/ext3/super.c --- a/fs/ext3/super.c~ext3-reject-filehandles-referring-to-special-files +++ a/fs/ext3/super.c @@ -554,6 +554,20 @@ static int ext3_show_options(struct seq_ return 0; } + +static struct dentry *ext3_get_dentry(struct super_block *sb, void *vobjp) +{ + __u32 *objp = vobjp; + unsigned long ino = objp[0]; + __u32 generation = objp[1]; + + if (ino != EXT3_ROOT_INO && ino < EXT3_FIRST_INO(sb)) + return ERR_PTR(-ESTALE); + + return export_iget(sb, ino, generation); +} + + #ifdef CONFIG_QUOTA #define QTYPE2NAME(t) ((t)==USRQUOTA?"user":"group") #define QTYPE2MOPT(on, t) ((t)==USRQUOTA?((on)##USRJQUOTA):((on)##GRPJQUOTA)) @@ -622,6 +636,7 @@ static struct super_operations ext3_sops static struct export_operations ext3_export_ops = { .get_parent = ext3_get_parent, + .get_dentry = ext3_get_dentry, }; enum { diff -puN include/linux/fs.h~ext3-reject-filehandles-referring-to-special-files include/linux/fs.h --- a/include/linux/fs.h~ext3-reject-filehandles-referring-to-special-files +++ a/include/linux/fs.h @@ -1325,6 +1325,8 @@ extern struct dentry * find_exported_dentry(struct super_block *sb, void *obj, void *parent, int (*acceptable)(void *context, struct dentry *de), void *context); +struct dentry *export_iget(struct super_block *sb, unsigned long ino, + __u32 generation); struct file_system_type { const char *name; _ Patches currently in -mm which might be from neilb@xxxxxxx are ext3-avoid-triggering-ext3_error-on-bad-nfs-file-handle.patch ext3-avoid-triggering-ext3_error-on-bad-nfs-file-handle-fix.patch git-klibc.patch ext3-reject-filehandles-referring-to-special-files.patch md-dm-reduce-stack-usage-with-stacked-block-devices.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html