diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/isofs/inode.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index 95c72aa81867..043b470fd3b6 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c | |||
@@ -846,6 +846,15 @@ root_found: | |||
846 | goto out_no_root; | 846 | goto out_no_root; |
847 | if (!inode->i_op) | 847 | if (!inode->i_op) |
848 | goto out_bad_root; | 848 | goto out_bad_root; |
849 | |||
850 | /* Make sure the root inode is a directory */ | ||
851 | if (!S_ISDIR(inode->i_mode)) { | ||
852 | printk(KERN_WARNING | ||
853 | "isofs_fill_super: root inode is not a directory. " | ||
854 | "Corrupted media?\n"); | ||
855 | goto out_iput; | ||
856 | } | ||
857 | |||
849 | /* get the root dentry */ | 858 | /* get the root dentry */ |
850 | s->s_root = d_alloc_root(inode); | 859 | s->s_root = d_alloc_root(inode); |
851 | if (!(s->s_root)) | 860 | if (!(s->s_root)) |