Re: panic(cpu 1 caller ...): vnode_put(...): iocount < 1
Re: panic(cpu 1 caller ...): vnode_put(...): iocount < 1
- Subject: Re: panic(cpu 1 caller ...): vnode_put(...): iocount < 1
- From: Roman Zippel <email@hidden>
- Date: Wed, 26 Oct 2005 12:05:56 +0200
- Organization: Ardis Technologies BV
Hi,
James Reynolds wrote:
> I'm still debugging my iocount < 1 panic.
>
> I noticed this about 2 different vp's. They have the same v_op values.
> If they are the same will they clobber each other?
>
> I hoping like crazy someone on the list knows more about this and can
> confirm.
If you can compile your own kernel, you can try the attached patch.
The problem is insufficient locking, so that hfs_getnewvnode() is
entered from two cpus and modification to the node are lost.
I sent this patch also to Apple, but so far there has been no reaction,
so I don't know if this will be fixed in 10.4.3.
bye, Roman
diff -pur xnu-792.2.4.org/bsd/hfs/hfs_vnops.c xnu-792.2.4/bsd/hfs/hfs_vnops.c
--- xnu-792.2.4.org/bsd/hfs/hfs_vnops.c 2005-07-12 23:36:53.000000000 +0200
+++ xnu-792.2.4/bsd/hfs/hfs_vnops.c 2005-10-12 19:18:20.000000000 +0200
@@ -267,7 +267,7 @@ hfs_vnop_getattr(struct vnop_getattr_arg
enum vtype v_type;
int error = 0;
- if ((error = hfs_lock(VTOC(vp), HFS_SHARED_LOCK))) {
+ if ((error = hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK))) {
return (error);
}
cp = VTOC(vp);
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden