Panic in getblkx() booting from disc1.iso in Qemu VM
Kirk McKusick
mckusick at mckusick.com
Fri Dec 21 01:20:15 UTC 2018
Thanks Rebecca for the report and Mark for the analysis of the problem.
This should be fixed in -r342290.
Kirk McKusick
=-=-=
From: Kirk McKusick <mckusick at FreeBSD.org>
Date: Fri, 21 Dec 2018 01:09:25 +0000 (UTC)
To: src-committers at freebsd.org, svn-src-all at freebsd.org,
svn-src-head at freebsd.org
Subject: svn commit: r342290 - head/sys/kern
Author: mckusick
Date: Fri Dec 21 01:09:25 2018
New Revision: 342290
URL: https://svnweb.freebsd.org/changeset/base/342290
Log:
Some filesystems (like cd9660 and ext3) require that VFS_STATFS()
be called before VFS_ROOT() is called. Move the call for VFS_STATFS()
so that it is done after VFS_MOUNT(), but before VFS_ROOT().
This change actually improves the robustness of the mount system
call because it returns an error rather than failing silently
when VFS_STATFS() returns failure.
Reported by: Rebecca Cran <rebecca at bluestop.org>
Sponsored by: Netflix
Modified:
head/sys/kern/vfs_mount.c
Modified: head/sys/kern/vfs_mount.c
==============================================================================
--- head/sys/kern/vfs_mount.c Thu Dec 20 22:39:58 2018 (r342289)
+++ head/sys/kern/vfs_mount.c Fri Dec 21 01:09:25 2018 (r342290)
@@ -895,6 +895,7 @@ vfs_domount_first(
*/
error1 = 0;
if ((error = VFS_MOUNT(mp)) != 0 ||
+ (error1 = VFS_STATFS(mp, &mp->mnt_stat)) != 0 ||
(error1 = VFS_ROOT(mp, LK_EXCLUSIVE, &newdp)) != 0) {
if (error1 != 0) {
error = error1;
@@ -916,7 +917,6 @@ vfs_domount_first(
vfs_freeopts(mp->mnt_opt);
mp->mnt_opt = mp->mnt_optnew;
*optlist = NULL;
- (void)VFS_STATFS(mp, &mp->mnt_stat);
/*
* Prevent external consumers of mount options from reading mnt_optnew.
More information about the freebsd-current
mailing list