@@ -3708,8 +3708,17 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
goto failed_mount;
}
- if (ext4_proc_root)
+ if (ext4_proc_root) {
+ if (proc_lookup_subdir_by_name(ext4_proc_root,
+ sb->s_id) == 0) {
+ ext4_msg(sb, KERN_ERR, "could'nt mount because"
+ " mount point is busy and /proc/%s/%s is"
+ " already present",
+ ext4_proc_root->name, sb->s_id);
+ goto failed_mount;
+ }
sbi->s_proc = proc_mkdir(sb->s_id, ext4_proc_root);
+ }
if (sbi->s_proc)
proc_create_data("options", S_IRUGO, sbi->s_proc,