* vinvalbuf needs to be called without simplelocks held
* need to release the lock in opencount > 0 case
* need to release the lock before smbfs_findclose(), since that
can send a request to SMB server and attempt to pool_get() a request buffer
problem path found & testing by Martin Husemann, fix adresses PR kern/21067
is used to setup a 'PID' for the lock; if a SMB write request is sent
to server, it returns EDEADLK if it doesn't have same PID. since we
use '1' as request PID (see smb_rq_new()), we must use '1' here too,
for now
add a comment what is the ID used for, to avoid similar mistake in future
this partially back off rev 1.5, and makes advisory locking work
on SMB shares mounted from Windows again (sigh)
the condition was changed to be true when the file _should_ be removed,
but ended up wrong way
this fixes a problem where it wasn't possible to remove regular files
from mounted smbfs share
smbfs_smb_close() - that routine allocates memory and could sleep
problem found with LOCKDEBUG, change adresses PR kern/21067 by Martin Husemann
g/c unneeded VOP_GETATTR() call from smbfs_closel()
server supports it
for this, need NT CREATE AND X a directory in smbfs_open(), so that
we get the FID handle used for DIRECTORY CHANGE NOTIFY SMB
this could eventually be used to 'watch' even regular files, by
watching its parent directory and lookup/VN_KNOTE() when we get
REMOVED/RENAMED/MODIFIED action
also reorganize the kqueue code somewhat to use simplify locking
and knote detach
this is basically copy of what nfs_kq.c does - a thread periodically
polls server checking if any of the wateched files changed
eventually this should be changed to take advantage of SMB Directory
Change Notify
* make sure islastcn and lockparent is set before used when the entry is cached
* add VWRITE check for nameiop == RENAME, add necessary unlock/relock for
ISDOTDOT case
adjust smbfs_print() to have slightly nicer output
enable vnode locking
for different cache_lookup() semantics
fix smbfs_pathcheck() to not assume zero-ended component name
remove the bogus code in smbfs_close(), it's not needed on NetBSD
fix couple other vnop routines to do vput()/vrele()/PNBUF_PUT() as appropriate
KNF