Re2: NTFS problems.
Matthew Dillon
dillon at apollo.backplane.com
Sun Dec 28 12:03:45 PST 2003
Wait, I might have found it... please try the following patch.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
Index: ntfs_subr.c
===================================================================
RCS file: /cvs/src/sys/vfs/ntfs/ntfs_subr.c,v
retrieving revision 1.8
diff -u -r1.8 ntfs_subr.c
--- ntfs_subr.c 20 Aug 2003 09:56:33 -0000 1.8
+++ ntfs_subr.c 28 Dec 2003 20:03:08 -0000
@@ -359,8 +359,8 @@
dprintf(("ntfs_ntget: get ntnode %d: %p, usecount: %d\n",
ip->i_number, ip, ip->i_usecount));
- lwkt_gettoken(&ip->i_interlock);
ip->i_usecount++;
+ lwkt_gettoken(&ip->i_interlock);
LOCKMGR(&ip->i_lock, LK_EXCLUSIVE | LK_INTERLOCK, &ip->i_interlock);
return 0;
@@ -465,7 +465,7 @@
LIST_REMOVE(vap,va_list);
ntfs_freentvattr(vap);
}
-
+ lwkt_reltoken(&ip->i_interlock);
vrele(ip->i_devvp);
FREE(ip, M_NTFSNTNODE);
}
@@ -477,9 +477,7 @@
ntfs_ntref(ip)
struct ntnode *ip;
{
- lwkt_gettoken(&ip->i_interlock);
ip->i_usecount++;
- lwkt_reltoken(&ip->i_interlock);
dprintf(("ntfs_ntref: ino %d, usecount: %d\n",
ip->i_number, ip->i_usecount));
@@ -499,9 +497,10 @@
lwkt_gettoken(&ip->i_interlock);
ip->i_usecount--;
- if (ip->i_usecount < 0)
+ if (ip->i_usecount < 0) {
panic("ntfs_ntrele: ino: %d usecount: %d \n",
ip->i_number,ip->i_usecount);
+ }
lwkt_reltoken(&ip->i_interlock);
}
More information about the Bugs
mailing list