Subject: Re: 1Nov -current kernel problem
To: None <msanders@confusion.net>
From: John Kohl <jtk@kolvir.arlington.ma.us>
List: current-users
Date: 11/02/1995 07:35:27
>>>>> "Michael" == Michael K Sanders <msanders@confusion.net> writes:
Michael> After building a GENERIC kernel from Nov 1st sources, I got
Michael> 'Operation not supported by device' during the boot process when
Michael> it tried to mount sd0d on /usr. Any ideas?
You need a matched set of kernel and mount_ffs programs, or you need to
apply the last patch in PR#1403, which I've reproduced below. It won't
apply cleanly, since part of the change is already in place.
==John
*** /sys/kern/vfs_conf.c Fri Oct 13 22:41:57 1995
--- kern/vfs_conf.c Thu Oct 12 23:51:01 1995
***************
*** 50,56 ****
* The types are defined in mount.h.
*/
#ifdef FFS
! extern struct vfsops ufs_vfsops;
#endif
#ifdef LFS
--- 50,59 ----
* The types are defined in mount.h.
*/
#ifdef FFS
! extern struct vfsops ffs_vfsops;
! #ifdef COMPAT_10
! extern struct vfsops ffs_ufs_vfsops;
! #endif
#endif
#ifdef LFS
***************
*** 116,122 ****
struct vfsops *vfssw[] = {
NULL, /* 0 = MOUNT_NONE */
#ifdef FFS
! &ufs_vfsops, /* 1 = MOUNT_UFS */
#else
NULL,
#endif
--- 119,125 ----
struct vfsops *vfssw[] = {
NULL, /* 0 = MOUNT_NONE */
#ifdef FFS
! &ffs_vfsops, /* 1 = MOUNT_FFS */
#else
NULL,
#endif
***************
*** 188,193 ****
--- 191,201 ----
#endif
#ifdef ADOSFS
&adosfs_vfsops, /* 16 = MOUNT_ADOSFS */
+ #else
+ NULL,
+ #endif
+ #if defined(FFS) && defined(COMPAT_10)
+ &ffs_ufs_vfsops, /* 1 = MOUNT_FFS */
#else
NULL,
#endif
diff -c /sys/ufs/ffs/ffs_vfsops.c ufs/ffs/ffs_vfsops.c
*** /sys/ufs/ffs/ffs_vfsops.c Fri Oct 13 22:58:15 1995
--- ufs/ffs/ffs_vfsops.c Thu Oct 12 23:53:43 1995
***************
*** 78,83 ****
--- 78,100 ----
ffs_init,
};
+ #ifdef COMPAT_10
+ struct vfsops ffs_ufs_vfsops = {
+ "ufs",
+ ffs_mount,
+ ufs_start,
+ ffs_unmount,
+ ufs_root,
+ ufs_quotactl,
+ ffs_statfs,
+ ffs_sync,
+ ffs_vget,
+ ffs_fhtovp,
+ ffs_vptofh,
+ ffs_init,
+ };
+ #endif
+
extern u_long nextgennumber;
/*
***************
*** 243,248 ****
--- 260,269 ----
}
VOP_UNLOCK(devvp);
}
+ #ifdef COMPAT_10
+ if (mp->mnt_op == &ffs_ufs_vfsops)
+ mp->mnt_op = &ffs_vfsops; /* change name, etc. */
+ #endif
if ((mp->mnt_flag & MNT_UPDATE) == 0)
error = ffs_mountfs(devvp, mp, p);
else {