- align change message
- Most Important: read RCS Id from existing file and write it into the
newly generated file. That way, no update is announced when nothing
was changed. (Before, the RCS ID was reset to "$NetBSD$" which lead to
a changed file, but nothing of interrest changed)
make ntfs_ntref() real function and properly lock ip->i_interlock when
updating ip->i_usecount
g/c ntfs_uustricmp()
make ntfs_uastr[i]cmp() static, rename arguments to be a bit more mnemonic
add couple of casts to NTFS_TOUPPER() and ntfs_uastr[i]cmp() - this
corrects couple of cases when open()/stat() failed for
files which apparently existed and even showed in ls output
ntfs_ntlookup(): initialize ip properly if ntnode is found in hash table,
so that debug prints doesn't print garbage in that case
some whitespace policy
With nfsv2, the nfsm_reply() macro always causes the service routine
to return if error was nonzero.
With nfsv3, we can keep going after nfsm_reply() without returning,
but nqnfsrv_getlease() didn't take this into account, so add a
return(0) after each error-case nfsm_reply(0).
stack-allocate a sockaddr_storage for the temporary sockaddr rather
than putting it in an mbuf.
neighbor discovery wants to delete expired ifa's from a timeout
handler. allowing rtinit(RTM_DELETE, ...) to run at interrupt level
allows this to work.
i think we can afford the extra ~128 bytes of stack depth ..
shared by several fnodes when the file is simultaneonsly opened by
several callers and different "attributes" (a.k.a. resource forks)
are requested. They have been converted to use lockmgr()-style locking.
guard the setting and checking of i_usecount by simplelock; as
situation where there would be several users of same ntnode is
extremery rare, it's not worth the efford to change the code to
hold the (exclusive) lock only when it's needed
* in struct fnode, g/c f_dev & f_type (former is already in ntnode,
latter is in parent vnode), move f_devvp from struct fnode into
struct ntnode (no reason this should be copied in each fnode)
stage. if this occurs, just call lostpeer() to close the connection. whilst this
might be considered brutal, it's also extremely handy if you're impatient or there's
lossage at the remote end.
don't save the signal mask on some foreign systems.
* ensure signal handlers don't use stdio and do reset errno if they
don't exit with siglongjmp()
* use a common SIGINT handler for {send,recv}request()
do a gross hack which allows seemingly-broken quantum drives to function
with this driver. The gross hack is to disable tagged queueing completely
when QUEUE FULL is received. That costs performance on drives which
do tagged queueing properly and which return QUEUE FULL, but given the way
this driver works it's seems to be the only thing short of significant
recoding which will make it function with the quantum drives in question.