Module Name:    src
Committed By:   ttoth
Date:           Mon Aug 13 13:12:51 UTC 2012

Modified Files:
        src/sys/ufs/chfs: chfs_readinode.c chfs_subr.c chfs_vnode.c

Log Message:
chfs fixes
1. nodes are obsoleted only once during truncating a file
2. frags don't stay in pool_cache


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/ufs/chfs/chfs_readinode.c
cvs rdiff -u -r1.5 -r1.6 src/sys/ufs/chfs/chfs_subr.c
cvs rdiff -u -r1.6 -r1.7 src/sys/ufs/chfs/chfs_vnode.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/ufs/chfs/chfs_readinode.c
diff -u src/sys/ufs/chfs/chfs_readinode.c:1.3 src/sys/ufs/chfs/chfs_readinode.c:1.4
--- src/sys/ufs/chfs/chfs_readinode.c:1.3	Fri Aug 10 09:26:58 2012
+++ src/sys/ufs/chfs/chfs_readinode.c	Mon Aug 13 13:12:51 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: chfs_readinode.c,v 1.3 2012/08/10 09:26:58 ttoth Exp $	*/
+/*	$NetBSD: chfs_readinode.c,v 1.4 2012/08/13 13:12:51 ttoth Exp $	*/
 
 /*-
  * Copyright (c) 2010 Department of Software Engineering,
@@ -609,6 +609,7 @@ chfs_remove_frags_of_node(struct chfs_mo
 		next = frag_next(fragtree, this);
 		if (this->node->nref == nref) {
 			rb_tree_remove_node(fragtree, this);
+			chfs_free_node_frag(this);
 		}
 		this = next;
 	}

Index: src/sys/ufs/chfs/chfs_subr.c
diff -u src/sys/ufs/chfs/chfs_subr.c:1.5 src/sys/ufs/chfs/chfs_subr.c:1.6
--- src/sys/ufs/chfs/chfs_subr.c:1.5	Fri Aug 10 09:26:58 2012
+++ src/sys/ufs/chfs/chfs_subr.c	Mon Aug 13 13:12:51 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: chfs_subr.c,v 1.5 2012/08/10 09:26:58 ttoth Exp $	*/
+/*	$NetBSD: chfs_subr.c,v 1.6 2012/08/13 13:12:51 ttoth Exp $	*/
 
 /*-
  * Copyright (c) 2010 Department of Software Engineering,
@@ -299,7 +299,8 @@ chfs_chsize(struct vnode *vp, u_quad_t s
 		// remove from the list
 		mutex_enter(&chmp->chm_lock_vnocache);
 		chfs_remove_frags_of_node(chmp, &ip->fragtree, fd->nref);
-		chfs_remove_and_obsolete(chmp, ip->chvc, fd->nref, &ip->chvc->dnode);
+		// don't obsolete here, because setattr will obsolete this node
+		chfs_remove_node_from_list(chmp, ip->chvc, fd->nref, &ip->chvc->dnode);
 		mutex_exit(&chmp->chm_lock_vnocache);
 
 		blknum = lastfrag->ofs / PAGE_SIZE;

Index: src/sys/ufs/chfs/chfs_vnode.c
diff -u src/sys/ufs/chfs/chfs_vnode.c:1.6 src/sys/ufs/chfs/chfs_vnode.c:1.7
--- src/sys/ufs/chfs/chfs_vnode.c:1.6	Fri Aug 10 09:26:58 2012
+++ src/sys/ufs/chfs/chfs_vnode.c	Mon Aug 13 13:12:51 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: chfs_vnode.c,v 1.6 2012/08/10 09:26:58 ttoth Exp $	*/
+/*	$NetBSD: chfs_vnode.c,v 1.7 2012/08/13 13:12:51 ttoth Exp $	*/
 
 /*-
  * Copyright (c) 2010 Department of Software Engineering,
@@ -83,7 +83,7 @@ chfs_readvnode(struct mount* mp, ino_t i
 
 	if (chvc && ino != CHFS_ROOTINO) {
 		/* debug... */
-		printf("readvnode; offset: %" PRIu32 ", lnr: %d\n",
+		dbg("offset: %" PRIu32 ", lnr: %d\n",
 		    CHFS_GET_OFS(chvc->v->nref_offset), chvc->v->nref_lnr);
 
 		KASSERT((void *)chvc != (void *)chvc->v);

Reply via email to