tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]


While working on my project, I think I ran into an error in a man page for a function, VOP_ISLOCKED. The man page describes it as:

Test if the vnode vp is locked. A non-zero value is returned if
              the vnode is not locked, otherwise zero is returned.

I believe from what I've been able to tell, it is the opposite. A zero is returned if the vnode is not locked and non-zero value is returned if it is locked (the value representing the appropriate locks).

This is the test that I did to find this out:

printf("1bvp ISLOCKED = %d\n",VOP_ISLOCKED(bvp)); //should have been locked at this point
VOP_UNLOCK(bvp, 0);
printf("2bvp ISLOCKED = %d\n",VOP_ISLOCKED(bvp)); //should be unlocked at this point

when I do dmesg I get the following results though

1bvp ISLOCKED = 2
2bvp ISLOCKED = 0

So as you can see I'm getting the opposite results that I expected. This held up the progress of my project so if this is really wrong, as I suspect, I'd like to fix it so it doesn't confuse anyone else. Can someone confirm this or correct me if I am wrong somehow.

Adam Burkepile

Home | Main Index | Thread Index | Old Index