[97] in arla-drinkers

home help back first fref pref prev next nref lref last post

Re: freebsd problems and newwalk() problem & solution

daemon@ATHENA.MIT.EDU (Assar Westerlund)
Mon Jul 13 11:04:32 1998

From arla-drinkers-request@sundance.stacken.kth.se Mon Jul 13 15:04:31 1998
Return-Path: <arla-drinkers-request@sundance.stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 22478 invoked from network); 13 Jul 1998 15:04:30 -0000
Received: from unknown (HELO sundance.stacken.kth.se) (130.237.234.41)
  by bloom-picayune.mit.edu with SMTP; 13 Jul 1998 15:04:30 -0000
Received: from assaris.sics.se (assaris.sics.se [193.10.66.108])
	by sundance.stacken.kth.se (8.8.8/8.8.8) with ESMTP id QAA13144
	for <arla-drinkers@stacken.kth.se>; Mon, 13 Jul 1998 16:58:26 +0200 (MET DST)
Received: (from assar@localhost) by assaris.sics.se (8.8.5/8.7.3) id QAA07354; Mon, 13 Jul 1998 16:59:56 +0200 (MET DST)
To: "Alec Wolman" <wolman@cs.washington.edu>
Cc: arla-drinkers@stacken.kth.se
Subject: Re: freebsd problems and newwalk() problem & solution
References: <199807100220.TAA22710@miles.cs.washington.edu>
Mime-Version: 1.0 (generated by tm-edit 7.68)
Content-Type: multipart/mixed;
 boundary="Multipart_Mon_Jul_13_16:59:56_1998-1"
Content-Transfer-Encoding: 7bit
From: Assar Westerlund <assar@sics.se>
Date: 13 Jul 1998 16:59:56 +0200
In-Reply-To: "Alec Wolman"'s message of "Thu, 09 Jul 1998 19:20:58 -0700"
Message-ID: <5ld8b9dcer.fsf@assaris.sics.se>
Lines: 84
X-Mailer: Gnus v5.5/Emacs 19.34

--Multipart_Mon_Jul_13_16:59:56_1998-1
Content-Type: text/plain; charset=US-ASCII

"Alec Wolman" <wolman@cs.washington.edu> writes:
> I'm trying to setup arla-0.7.2 with a FreeBSD 2.2.6 system.
> I can't seem to get through the INSTALL directions.  The first
> problem I ran into is that when I use the modload command to install
> the xfs module, it doesn't tell me what the major device number
> is.  I fixed that problem (I've appended my one-line patch below),
> but I still get an error when I attempt to mount the afs filesystem.

You should get that output on your console (and in your
/var/log/messages), do you?

> miles# /usr/arla/bin/mount_xfs /dev/xfs0 /afs
> mount_xfs: mount: Operation not supported by device

This can be due to a number of reasons, the most common being using
the wrong major number for /dev/xfs0.  Have you double-checked that
it's correct?

Otherwise, I suggest applying the appended patch and see if it gives
you any better hint as to what could be wrong.

> Also, a while back I reported a problem with using arlad in test mode.
> I finally got around to fixing the newwalk() routine so that it
> works much better now.  Here is my patch:

Thanks for your patch.  I have installed it.

/assar

--Multipart_Mon_Jul_13_16:59:56_1998-1
Content-Type: text/plain; charset=US-ASCII

Index: xfs/bsd/xfs_vfsops.c
===================================================================
RCS file: /usr/local/cvsroot/arla/xfs/bsd/xfs_vfsops.c,v
retrieving revision 1.15
diff -u -w -u -w -r1.15 xfs_vfsops.c
--- xfs_vfsops.c	1998/04/19 06:09:12	1.15
+++ xfs_vfsops.c	1998/07/13 14:47:42
@@ -90,6 +90,7 @@
     devvp = ndp->ni_vp;
 
     if (devvp->v_type != VCHR) {
+	XFSDEB(XDEBVFOPS, ("xfs_mount: %s not a cdev\n", data));
 	vput(devvp);
 	return ENXIO;
     }
@@ -102,17 +103,27 @@
     vput(devvp);
 
     /* Check that this device really is an xfs_dev */
-    if (major(dev) < 0 || nchrdev < major(dev))
+    if (major(dev) < 0 || nchrdev < major(dev)) {
+	XFSDEB(XDEBVFOPS, ("xfs_mount: bad major: %u [0,%u)\n",
+			   major(dev), nchrdev));
 	return ENXIO;
-    if (minor(dev) < 0 || NXFS < minor(dev))
+    }
+    if (minor(dev) < 0 || NXFS < minor(dev)) {
+	XFSDEB(XDEBVFOPS, ("xfs_mount: bad minor: %u [0,%u)\n",
+			   minor(dev), NXFS));
 	return ENXIO;
+    }
 #if defined(__NetBSD__) || defined(__OpenBSD__)
-    if (cdevsw[major(dev)].d_open != xfs_devopen)
+    if (cdevsw[major(dev)].d_open != xfs_devopen) {
+	XFSDEB(XDEBVFOPS, ("xfs_mount: not xfs dev_open\n"));
 	return ENXIO;
+    }
 #elif defined(__FreeBSD__)
     if (cdevsw[major(dev)] == NULL
-	|| cdevsw[major(dev)]->d_open != xfs_devopen)
+	|| cdevsw[major(dev)]->d_open != xfs_devopen) {
+	XFSDEB(XDEBVFOPS, ("xfs_mount: not xfs dev_open\n"));
 	return ENXIO;
+    }
 #endif
 
     if (xfs[minor(dev)].status & XFS_MOUNTED)

--Multipart_Mon_Jul_13_16:59:56_1998-1--

home help back first fref pref prev next nref lref last post