Apply by doing: cd /usr/src patch -p0 < 007_cd9660.patch And then rebuild your kernel. Index: sys/isofs/cd9660/cd9660_extern.h =================================================================== RCS file: /cvs/src/sys/isofs/cd9660/cd9660_extern.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- sys/isofs/cd9660/cd9660_extern.h 2000/02/07 04:57:15 1.4 +++ sys/isofs/cd9660/cd9660_extern.h 2000/06/07 23:25:08 1.5 @@ -84,8 +84,8 @@ #define lblkno(imp, loc) ((loc) >> (imp)->im_bshift) #define blksize(imp, ip, lbn) ((imp)->logical_block_size) -int cd9660_mount __P((struct mount *, - const char *, caddr_t, struct nameidata *, struct proc *)); +int cd9660_mount __P((struct mount *, const char *, caddr_t, + struct nameidata *, struct proc *)); int cd9660_start __P((struct mount *, int, struct proc *)); int cd9660_unmount __P((struct mount *, int, struct proc *)); int cd9660_root __P((struct mount *, struct vnode **)); @@ -96,6 +96,8 @@ int cd9660_fhtovp __P((struct mount *, struct fid *, struct vnode **)); int cd9660_vptofh __P((struct vnode *, struct fid *)); int cd9660_init __P((struct vfsconf *)); +int cd9660_check_export __P((struct mount *, struct mbuf *, int *, + struct ucred **)); #define cd9660_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \ size_t, struct proc *)))eopnotsupp) Index: sys/isofs/cd9660/cd9660_vfsops.c =================================================================== RCS file: /cvs/src/sys/isofs/cd9660/cd9660_vfsops.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- sys/isofs/cd9660/cd9660_vfsops.c 2000/02/07 04:57:15 1.19 +++ sys/isofs/cd9660/cd9660_vfsops.c 2000/06/07 23:25:08 1.20 @@ -77,7 +77,8 @@ cd9660_fhtovp, cd9660_vptofh, cd9660_init, - cd9660_sysctl + cd9660_sysctl, + cd9660_check_export }; /* @@ -962,5 +963,31 @@ printf("vptofh: ino %d, start %ld\n", ifhp->ifid_ino,ifhp->ifid_start); #endif + return (0); +} + +/* + * Verify a remote client has export rights and return these rights via + * exflagsp and credanonp. + */ +int +cd9660_check_export(mp, nam, exflagsp, credanonp) + register struct mount *mp; + struct mbuf *nam; + int *exflagsp; + struct ucred **credanonp; +{ + register struct netcred *np; + register struct iso_mnt *imp = VFSTOISOFS(mp); + + /* + * Get the export permission structure for this tuple. + */ + np = vfs_export_lookup(mp, &imp->im_export, nam); + if (np == NULL) + return (EACCES); + + *exflagsp = np->netc_exflags; + *credanonp = &np->netc_anon; return (0); }