in recent 7-STABLE: VOP_WRITE...is not exclusive locked but should be

Tim Chase tim at chase2k.com
Thu Mar 19 12:15:54 PDT 2009


Hello,

Regarding:

>>>> As to the deadlock that started this exercise, if the machine follows
> its
>>>> recent pattern, that should happen within the next 2-4 hours.

FWIW, it did _not_ deadlock this morning and there haven't been any more of the 
"is exclusive locked" messages have come out, either.

John Baldwin asked:

> Hmm, it depends on where the check is I guess (before or after zfs_write()).
> Tim, can you do 'l *VOP_WRITE_APV+0x155' on your kernel from gdb?

(kgdb) l *VOP_WRITE_APV+0x155
0xffffffff8048f4b5 is in VOP_WRITE_APV (vnode_if.c:704).
699			ASSERT_VOP_ELOCKED(a->a_vp, "VOP_WRITE");
700		} else {
701			ASSERT_VI_UNLOCKED(a->a_vp, "VOP_WRITE");
702			ASSERT_VOP_ELOCKED(a->a_vp, "VOP_WRITE");
703		}
704		VOP_WRITE_POST(a, rc);
705		return (rc);
706	}
707 
708	struct vnodeop_desc vop_write_desc = {
(kgdb)

Line 704 would appear to be after the ZFS write which I guess means ZFS
is doing something it shouldn't be?

 	- Tim


More information about the freebsd-stable mailing list