Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Dec 2001 09:01:00 -0800 (PST)
From:      "Richard S. Conto" <rsc@merit.edu>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/32700: inode changes for large 
Message-ID:  <200112111701.fBBH10L72112@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         32700
>Category:       ports
>Synopsis:       inode changes for large
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 11 09:10:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Richard S. Conto
>Release:        4.4-STABLE
>Organization:
Merit Network, Inc
>Environment:
FreeBSD x25.family 4.4-STABLE FreeBSD 4.4-STABLE #0: Fri Nov 30 12:20:51 EST 2001     root@x25.family:/usr/src/sys/compile/INSPIRON3K  i386

>Description:
After change to ./src/sys/sys/vnode.h 1.111.2.14, 
Tue Oct 16 23:16:24 2001 UTC by dillon, 
`arla' (built against a previous version) would hang the system.
Attempts to re-compile arla would fail due to changes in vnode.h
>How-To-Repeat:
Build a system from before October 16.
Build arla from before October 16
Update to a recent (November 26) system.

arla will crash the system when files or directories in /afs are
referenced.

Attempts to re-compile arla will fail.
>Fix:
I have an ugly patch. I've been using it on two machines, and a
co-worker has been using it too.

I don't know how to make this patch work with systems prior to
the change to vnode.h on October 16.

cd /usr/ports/net/arla/work/arla-0.35.5
and apply the following patch

----------------------------------------------------------------

*** xfs/bsd/BAK/xfs_message.c	Fri Apr 27 19:43:05 2001
--- xfs/bsd/xfs_message.c	Wed Nov 28 12:35:56 2001
***************
*** 464,474 ****
--- 464,483 ----
  	/* XXX see comment in xfs_node_find */
  	/* XXXSMP do gone[l] need to get mntvnode_slock ? */
  
+ #if !defined(BIGJOBS)
+ 	for(vp = TAILQ_FIRST(&(XFS_TO_VFS(&xfs[fd])->mnt_nvnodelist));
+ 	    vp != NULL;
+ #else /* BIGJOBS */
  	for(vp = XFS_TO_VFS(&xfs[fd])->mnt_vnodelist.lh_first;
  	    vp != NULL; 
+ #endif /* BIGJOBS */
  	    vp = next) {
  
+ #if !defined(BIGJOBS)
+ 	    next = TAILQ_NEXT(vp, v_nmntvnodes);
+ #else
  	    next = vp->v_mntvnodes.le_next;
+ #endif /* BIGJOBS */
  	    gc_vnode (vp, p);
  	}
      } else {
*** xfs/bsd/BAK/xfs_node-bsd.c	Mon Nov 26 12:20:49 2001
--- xfs/bsd/xfs_node-bsd.c	Wed Nov 28 12:37:25 2001
***************
*** 270,278 ****
       *       on FreeBSD once.
       */
  
      for(t = XFS_TO_VFS(xfsp)->mnt_vnodelist.lh_first;
  	t != NULL; 
! 	t = t->v_mntvnodes.le_next) {
  	xn = VNODE_TO_XNODE(t);
  	if (xn && xfs_handle_eq(&xn->handle, handlep))
  	    break;
--- 270,285 ----
       *       on FreeBSD once.
       */
  
+ #if !defined(BIGJOBS)
+     for(t = TAILQ_FIRST(&(XFS_TO_VFS(xfsp)->mnt_nvnodelist));
+ 	t != NULL;
+ 	t = TAILQ_NEXT(t, v_nmntvnodes)
+ #else
      for(t = XFS_TO_VFS(xfsp)->mnt_vnodelist.lh_first;
  	t != NULL; 
! 	t = t->v_mntvnodes.le_next
! #endif  /* BIGJOBS */
! 		      ) {
  	xn = VNODE_TO_XNODE(t);
  	if (xn && xfs_handle_eq(&xn->handle, handlep))
  	    break;

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112111701.fBBH10L72112>