Commit fb5cbe9e authored by Joel Becker's avatar Joel Becker

ocfs2: Return -EINVAL when a device is not ocfs2.

In case of non-modular kernels the root filesystem is mounted by trying
several filesystems. If ocfs2 was tried before the actual filesystem
type, the mount would fail because ocfs2_sb_probe() returns -EAGAIN
instead of -EINVAL.  ocfs2 will now return -EINVAL properly.
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
Reported-by: default avatarLaszlo Attila Toth <panther@balabit.hu>
parent 964fe080
...@@ -773,19 +773,21 @@ static int ocfs2_sb_probe(struct super_block *sb, ...@@ -773,19 +773,21 @@ static int ocfs2_sb_probe(struct super_block *sb,
if (tmpstat < 0) { if (tmpstat < 0) {
status = tmpstat; status = tmpstat;
mlog_errno(status); mlog_errno(status);
goto bail; break;
} }
di = (struct ocfs2_dinode *) (*bh)->b_data; di = (struct ocfs2_dinode *) (*bh)->b_data;
memset(stats, 0, sizeof(struct ocfs2_blockcheck_stats)); memset(stats, 0, sizeof(struct ocfs2_blockcheck_stats));
spin_lock_init(&stats->b_lock); spin_lock_init(&stats->b_lock);
status = ocfs2_verify_volume(di, *bh, blksize, stats); tmpstat = ocfs2_verify_volume(di, *bh, blksize, stats);
if (status >= 0) if (tmpstat < 0) {
goto bail;
brelse(*bh); brelse(*bh);
*bh = NULL; *bh = NULL;
if (status != -EAGAIN) }
if (tmpstat != -EAGAIN) {
status = tmpstat;
break; break;
} }
}
bail: bail:
return status; return status;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment