From 979cd1d1c6bb749c90fc741025c5ca7ae9a639c6 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Mon, 22 Sep 2003 22:51:07 -0700 Subject: [PATCH] [PATCH] prepare for 32-bit dev_t: jffs2 cleanups Minor cleanup of jffs2 fill_super. --- fs/jffs2/super.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c index ed5480b71982f..cc55f6176f9bd 100644 --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c @@ -173,7 +173,6 @@ static struct super_block *jffs2_get_sb(struct file_system_type *fs_type, int err; struct nameidata nd; int mtdnr; - dev_t dev; if (!dev_name) return ERR_PTR(-EINVAL); @@ -227,26 +226,31 @@ static struct super_block *jffs2_get_sb(struct file_system_type *fs_type, if (err) return ERR_PTR(err); - if (!S_ISBLK(nd.dentry->d_inode->i_mode)) { - path_release(&nd); - return ERR_PTR(-EINVAL); - } + err = -EINVAL; + + if (!S_ISBLK(nd.dentry->d_inode->i_mode)) + goto out; + if (nd.mnt->mnt_flags & MNT_NODEV) { - path_release(&nd); - return ERR_PTR(-EACCES); + err = -EACCES; + goto out; } - dev = nd.dentry->d_inode->i_rdev; - path_release(&nd); - - if (MAJOR(dev) != MTD_BLOCK_MAJOR) { + if (imajor(nd.dentry->d_inode) != MTD_BLOCK_MAJOR) { if (!(flags & MS_VERBOSE)) /* Yes I mean this. Strangely */ printk(KERN_NOTICE "Attempt to mount non-MTD device \"%s\" as JFFS2\n", dev_name); - return ERR_PTR(-EINVAL); + goto out; } - return jffs2_get_sb_mtdnr(fs_type, flags, dev_name, data, MINOR(dev)); + mtdnr = iminor(nd.dentry->d_inode); + path_release(&nd); + + return jffs2_get_sb_mtdnr(fs_type, flags, dev_name, data, mtdnr); + +out: + path_release(&nd); + return ERR_PTR(err); } -- 2.53.0