openafs.git
15 years agowindows-afsd-init-lock-order-validation-20080830
Jeffrey Altman [Sat, 30 Aug 2008 15:13:03 +0000]
windows-afsd-init-lock-order-validation-20080830

LICENSE MIT

Add TransarcAFSDaemon/Parameters key "LockOrderValidation" DWORD
to control lock order validation functionality.  Defaults to off
for release builds and on for checked builds.

15 years agowindows-lock-order-validation-20080830
Jeffrey Altman [Sat, 30 Aug 2008 15:03:27 +0000]
windows-lock-order-validation-20080830

LICENSE MIT

Add osi_SetLockOrderValidation(int) to permit lock order validation
to be turned on and off.  Must be executed before the first lock
is obtained.

15 years agowindows-buf-shutdown-20080829
Jeffrey Altman [Sat, 30 Aug 2008 03:08:20 +0000]
windows-buf-shutdown-20080829

LICENSE MIT

During buf_Shutdown() all dirty buffers should be written to the file
server if they can be.

15 years agowindows-afsd-shutdown-20080829
Jeffrey Altman [Sat, 30 Aug 2008 03:04:53 +0000]
windows-afsd-shutdown-20080829

LICENSE MIT

reorganize the service shutdown order to permit dirty buffers to be
flushed to the file server without competition from incoming requests.

15 years agowindows-check-servers-20080828
Jeffrey Altman [Thu, 28 Aug 2008 10:45:45 +0000]
windows-check-servers-20080828

LICENSE MIT

if the server count is zero, don't both trying

15 years agowindows-check-server-heap-overwrite2-20080827
Jeffrey Altman [Thu, 28 Aug 2008 00:42:26 +0000]
windows-check-server-heap-overwrite2-20080827

LICENSE MIT

the incorporation of nconns into the foo incremental was a mistake

15 years agowindows-check-server-heap-overwrite-20080827
Jeffrey Altman [Wed, 27 Aug 2008 23:08:06 +0000]
windows-check-server-heap-overwrite-20080827

LICENSE MIT

Protect against a heap overwrite that could occur is the number of file
servers or vldb servers grows while the maximum number of connections
is computed and when the connection list is populated.

15 years agowindows-callback-lock-order-20080827
Jeffrey Altman [Wed, 27 Aug 2008 23:01:51 +0000]
windows-callback-lock-order-20080827

LICENSE MIT

do not hold cm_server_t mutex when calling cm_FindVolumeByID because
the cm_volume_t lock must be obtained ahead of the cm_server_t mutex

15 years agowindows-lock-order-20080827
Jeffrey Altman [Wed, 27 Aug 2008 13:17:05 +0000]
windows-lock-order-20080827

LICENSE MIT

do not hold cm_scacheLock while obtaining cm_scache_t->rw

15 years agowindows-short-names-20080827
Jeffrey Altman [Wed, 27 Aug 2008 12:47:23 +0000]
windows-short-names-20080827

LICENSE MIT

plus and equal are not valid characters in short names.
we replace them with left and right brace in order to
minimize the instability in the file names.

15 years agofreebsd-70-client-20080826
Matt Benjamin [Tue, 26 Aug 2008 15:59:42 +0000]
freebsd-70-client-20080826

LICENSE IPL10

FreeBSD 7.0 client support (and 8.0 support but that's a moving target)

15 years agostudio12-solaris-updates-20080826
Tom Keiser [Tue, 26 Aug 2008 15:11:28 +0000]
studio12-solaris-updates-20080826

LICENSE IPL10
FIXES 113671

update so we build with studio 12 on solaris

15 years agolinux-rpm-make-dkms-remove-work-20080826
Derrick Brashear [Tue, 26 Aug 2008 14:44:31 +0000]
linux-rpm-make-dkms-remove-work-20080826

LICENSE IPL10

rpm -e failed because of a typo here when removing our dkms rpm

15 years agowindows-scache-lock-20080825
Jeffrey Altman [Tue, 26 Aug 2008 05:55:40 +0000]
windows-scache-lock-20080825

LICENSE MIT

restore a missing obtain write lock

15 years agowindows-misc-20080825
Jeffrey Altman [Tue, 26 Aug 2008 05:36:34 +0000]
windows-misc-20080825

LICENSE MIT

avoid a deadlock in cm_GiveUpAllCallbacks

log UAEEXIST / EEXIST in cm_Analyze

15 years agowindows-client-osi-20080825
Jeffrey Altman [Tue, 26 Aug 2008 05:14:14 +0000]
windows-client-osi-20080825

LICENSE MIT

add more asserts to attempt to catch locks released in threads other
than the one that obtained them.

15 years agoserver-argument-consistency-and-jumbograms-off-20080824
Derrick Brashear [Mon, 25 Aug 2008 02:14:39 +0000]
server-argument-consistency-and-jumbograms-off-20080824

LICENSE IPL10
FIXES 108703

go through and make servers able to take debug log level on command line;
add -jumbo; default to -nojumbo

15 years agowindows-smb-more-check-open-done-20080824
Jeffrey Altman [Sun, 24 Aug 2008 22:45:24 +0000]
windows-smb-more-check-open-done-20080824

LICENSE MIT

call cm_CheckNTOpenDone() in error conditions as well

15 years agowindows-prefetch-lock-order-20080824
Jeffrey Altman [Sun, 24 Aug 2008 18:46:23 +0000]
windows-prefetch-lock-order-20080824

LICENSE MIT

lock order violation between cm_daemonLock and cm_scache_t rw lock

15 years agowindows-smb-locks-20080224
Jeffrey Altman [Sun, 24 Aug 2008 17:31:28 +0000]
windows-smb-locks-20080224

LICENSE MIT

smb_dirSearch_t refCount field is protected by smb_globalLock not the
smb_dirSearch_t mutex.

Do not hold the smb_fid_t mutex across calls to smb_NotifyChange()

15 years agowindows-check-nt-open-lock-sync-20080224
Jeffrey Altman [Sun, 24 Aug 2008 17:25:57 +0000]
windows-check-nt-open-lock-sync-20080224

LICENSE MIT

Move cm_SyncOpDone(CM_SCACHESYNC_LOCK) from cm_CheckNTOpen to
cm_CheckNTOpenDone.  This is necessary to synchronize lock operations.

15 years agowindows-callback-shutdown-head-20080801
Jeffrey Altman [Fri, 22 Aug 2008 21:57:53 +0000]
windows-callback-shutdown-head-20080801

LICENSE MIT

When the cache manager is shutting down, return an error to all
callback requests.  Otherwise, it is possible for a callback to get
stuck waiting for a lock and when the lock clears to be left with
nothing but invalid memory addresses to crash on.

In the meantime, the file server is waiting for the response.

15 years agodarwin-fake-afs-bigger-20080822
Derrick Brashear [Fri, 22 Aug 2008 20:26:38 +0000]
darwin-fake-afs-bigger-20080822

LICENSE IPL10
FIXES 112564

set up max uint64 "free" in afs so finder isn't dumb.

15 years agoanalyze-srvr-safety-check-20080822
Derrick Brashear [Fri, 22 Aug 2008 19:52:44 +0000]
analyze-srvr-safety-check-20080822

LICENSE IPL10
FIXES 112681

safety check to make sure a conn's srvr is set before dereferencing it

15 years agowindows-misc-20080822
Jeffrey Altman [Fri, 22 Aug 2008 19:06:04 +0000]
windows-misc-20080822

LICENSE MIT

1. In multi-threaded applications deadlocking is always a problem.
Deadlock avoidance requires a strict adherence to a documented
hierarchy.  The lock hierarchy for OAFW is described in a file
called locks.txt.  There are two problems.  First, some of the
locks are not included in locks.txt.  Second, it is nearly
impossible given the depth of function calls for any programmer
 to identify all of the locks that are held at any given time
a function is called.  This patch implements a new locking order
verification mechanism.  Each lock is assigned a lock level at
initialization.  Each thread maintains a queue of held locks.
Each time a lock is acquired the queue is checked to ensure that
no locks with a higher level than the requested lock has already
been acquired.  If a violation occurs, the service panics.

2. When the service panics ensure that a minidump will always be generated.

3. Remove unused lock cm_bufGetMutex.

4. The lock order verifier identified approximately a dozen
lock order violations that are corrected.

5. A race condition within the function path cm_GetSCache() ->
cm_GetNewSCache() -> cm_RecycleSCache() permitted a cm_scache_t
object to be issued simultaneously to two threads.  This would
eventually result in a panic due to the resulting under count.

6. Fix interpretation of the empty string as the ioctl path to
mean the current directory.   "fs lsm", "symlink list", etc.
now return a "not a ..." error instead of "does not exist".

7. Add SMB_STRF_SRCNULTERM flag to smb_ParseStringXXX functions
to indicate that the input string is a nul terminated string.
Assign it when input strings are nul terminated.

8. The CIFS protocol specification for handling NT_TRANSACT_CREATE
does not match the observed behavior.  The 'nameLength' is specified
in bytes not in characters.  Fix the implementation to match.

9. The cm_HaveAccessRights() attempt at deadlock avoidance by calling
lock_TryRead() on the parent directory cm_scache_t rw-lock does not
avoid the deadlock.  Avoid the deadlock by enforcing the lock order
of lowest vnode first.  Then remove the infinite loop avoidance in
cm_SyncOp() that was returning an unwarranted access denied error.

15 years agorx-allow-jumbogram-disabling-really-20080822
Derrick Brashear [Fri, 22 Aug 2008 05:31:32 +0000]
rx-allow-jumbogram-disabling-really-20080822

LICENSE IPL10

right now, jumbograms can still be sent when -nojumbo is specified. make the
current macro a default and override when we're supposed to.

15 years agowindows-list-symlink-20080820
Jeffrey Altman [Wed, 20 Aug 2008 20:44:56 +0000]
windows-list-symlink-20080820

LICENSE MIT

Another casaulty of the Unicode transition, the return value of the
ListLink operation was not being convered from wchar to char before
it was copied into the output buffer.

15 years agowindows-afsd-service-20080820
Jeffrey Altman [Wed, 20 Aug 2008 20:41:17 +0000]
windows-afsd-service-20080820

LICENSE MIT

When afsd_service.exe is not running as a service do not call the
Service Manager functions.  Doing so causes invalid access exceptions
to be thrown in the kernel and can corrupt the heap.

15 years agoredhat-spec-default-build-authlibs-20080820
Derrick Brashear [Wed, 20 Aug 2008 19:45:05 +0000]
redhat-spec-default-build-authlibs-20080820

LICENSE IPL10
FIXES 101879

make build_authlibs default usefully

15 years agonamei-by-default-on-sol10-20080816
Derrick Brashear [Sat, 16 Aug 2008 22:37:29 +0000]
namei-by-default-on-sol10-20080816

LICENSE IPL10

default to namei, not inode, on solaris 10 except by request

15 years agovolser-initialize-volume-updatedate-20080816
Dan Hyde [Sat, 16 Aug 2008 21:07:30 +0000]
volser-initialize-volume-updatedate-20080816

LICENSE IPL10
FIXES 110943

right now this isn't set until a vnode update happens. technically creating
the root directory is an update, so let's set it to now.

15 years agonetbsd-sigwait-broken-til-nbsd5-20080816
Tracy Di Marco White [Sat, 16 Aug 2008 20:46:44 +0000]
netbsd-sigwait-broken-til-nbsd5-20080816

LICENSE IPL10
FIXES 111404

work around netbsd sigwait brokenness

15 years agolinux-2-6-27-20080816
Marc Dionne [Sat, 16 Aug 2008 20:42:34 +0000]
linux-2-6-27-20080816

LICENSE IPL10
FIXES 111634

add support for 2.6.27, which removes asm/semaphore.h

15 years agowindows-build-20080815
Jeffrey Altman [Sat, 16 Aug 2008 18:39:33 +0000]
windows-build-20080815

LICENSE MIT

remove duplicate rules for man-pages

15 years agowindows-rx-extra-packets-20080816
Jeffrey Altman [Sat, 16 Aug 2008 18:00:50 +0000]
windows-rx-extra-packets-20080816

LICENSE MIT

Make the default number of pre-allocated rx packets equal to the number
of threads times the rx window size.

15 years agowindows-pioctl-getdrivetype-20080816
Jeffrey Altman [Sat, 16 Aug 2008 17:48:17 +0000]
windows-pioctl-getdrivetype-20080816

LICENSE MIT

Use GetDriveType() to check if the current path is a local disk.
If it is, fail the pioctl attempt immediately.  This should avoid
the reported 30 second delay in the AFS Shell Extension.

15 years agowindows-freelance-deadlock-20080815
Jeffrey Altman [Fri, 15 Aug 2008 21:17:02 +0000]
windows-freelance-deadlock-20080815

LICENSE MIT

avoid a deadlock in cm_reInitLockMountPoints() and make the function
useful again by actually using the index value in the construction
of the FIDs

15 years agowindows-shlibafsauthent-20080814
Jeffrey Altman [Fri, 15 Aug 2008 00:37:20 +0000]
windows-shlibafsauthent-20080814

LICENSE MIT

export pioctl_utf8

15 years agowindows-server-dereference-null-two-20080814
Jeffrey Altman [Thu, 14 Aug 2008 21:22:49 +0000]
windows-server-dereference-null-two-20080814

LICENSE MIT

protect against a potential null pointer dereference of a cm_server_t
object

15 years agowindows-server-dereference-null-20080814
Jeffrey Altman [Thu, 14 Aug 2008 21:19:34 +0000]
windows-server-dereference-null-20080814

LICENSE MIT

protect against a null pointer dereference of a cm_server_t object

15 years agowindows-memdump-20080814
Jeffrey Altman [Thu, 14 Aug 2008 18:23:28 +0000]
windows-memdump-20080814

LICENSE MIT

add locks, waiting lock requests, smb user, smb tid, and cell expiration
to the memory dump output (fs memdump)

15 years agowindows-free-server-deadlock-20080813
Jeffrey Altman [Thu, 14 Aug 2008 03:36:43 +0000]
windows-free-server-deadlock-20080813

LICENSE MIT

avoid a deadloc when freeing servers.  cm_serverLock must be released
around cm_GCConnections()

15 years agowindows-search-cell-file-20080813
Jeffrey Altman [Thu, 14 Aug 2008 03:32:54 +0000]
windows-search-cell-file-20080813

LICENSE MIT

if a cell has been found with addresses and the next cell name
is reached before the EOF, return success.

If the cell has been found and there are no addresses, return -6

15 years agorx-buffer-allocation-corrected-20080813
Jeffrey Altman [Thu, 14 Aug 2008 03:27:36 +0000]
rx-buffer-allocation-corrected-20080813

LICENSE MIT

a corrected version of delta rx-buffer-allocation-20080812

15 years agowindows-build-man-pages-20080813
Jeffrey Altman [Thu, 14 Aug 2008 03:15:34 +0000]
windows-build-man-pages-20080813

LICENSE MIT

move building of man pages to installer phase

15 years agonfstrans-extra-protection-20080813
Derrick Brashear [Thu, 14 Aug 2008 00:49:15 +0000]
nfstrans-extra-protection-20080813

LICENSE IPL10

ensure, at least, that there is a filehandle for everything we check

15 years agosalvager-dont-corrupt-dir-lengths-20080812
Rainer Toebbicke [Thu, 14 Aug 2008 00:44:16 +0000]
salvager-dont-corrupt-dir-lengths-20080812

LICENSE IPL10
FIXES 111585

make the int64 macros work when the "64 bit" number to fill isn't.
use the correct variable type for length in salvager

15 years agorx-buffer-allocation-pulled-20080813
Jeffrey Altman [Wed, 13 Aug 2008 15:10:42 +0000]
rx-buffer-allocation-pulled-20080813

LICENSE MIT

remove delta rx-buffer-allocation-20080812 as it leads to data corruption

15 years agorx-buffer-allocation-20080812
Jeffrey Altman [Tue, 12 Aug 2008 19:39:59 +0000]
rx-buffer-allocation-20080812

LICENSE MIT

Prevent rxi_MorePacketsNoLock() from dereferencing a NULL pointer if
the requested allocation size cannot be satsified.  In that case back
off the number of packets until osi_Alloc() succeeds or panic if no
packets can be allocated at all.

In AllocPacketBufs() do not transfer more than rx_TSFPQGlobSize packets.

Modify RX_TS_FPQ_GTOL2() macro to protect against transfering more packets
that are actually free.

Modify RX_TS_FPQ_COMPUTE_LIMITS() to enforce a rx_TSFPQGlobSize maximum
value of 64 packets to prevent ever increasing allocation sizes within
AllocPacketBufs()

15 years agowindows-stack-overruns-20080811
Jeffrey Altman [Tue, 12 Aug 2008 05:29:52 +0000]
windows-stack-overruns-20080811

LICENSE MIT

prevent stack overruns

15 years agowindows-fs-mkmount-20080811
Jeffrey Altman [Tue, 12 Aug 2008 00:54:48 +0000]
windows-fs-mkmount-20080811

LICENSE MIT

fix volume name validity test.  strip trailing '.' from volume name

15 years agowindows-make-nls-win2000-compat-20080809
Jeffrey Altman [Sun, 10 Aug 2008 01:00:59 +0000]
windows-make-nls-win2000-compat-20080809

LICENSE MIT

make the nls module compatible with windows 2000.
cannot use LOCALE_INVARIANT instead must lie and
say everyone is US English.  windows 2000 does not
have normalization functions and now doesn't have
case insensitive string comparison functions either
for languages other than English.

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
LICENSE MIT

not all applications that link to cm_nls perform initialization.
Call initialization if it has not already been done explicitly.

15 years agowindows-freelance-deadlock-20080809
Jeffrey Altman [Sat, 9 Aug 2008 23:31:09 +0000]
windows-freelance-deadlock-20080809

LICENSE MIT

avoid a deadlock between cm_freelanceLock and cm_scacheLock

15 years agowindows-rx-udpbufsize-20080809
Jeffrey Altman [Sat, 9 Aug 2008 05:52:36 +0000]
windows-rx-udpbufsize-20080809

LICENSE MIT

Set UdpBufSize to 256K.  Add RxUdpBufSize registry value to permit
runtime configuration.

15 years agowindows-smb-skip-nuls-20080809
Jeffrey Altman [Sat, 9 Aug 2008 05:48:10 +0000]
windows-smb-skip-nuls-20080809

LICENSE MIT

rename SMB_STF_IGNORENULL to SMB_STF_IGNORENUL

apply SMB_STR_IGNORENUL when copying length tagged strings into
the smb response packets.

15 years agowindows-lock-corrections-20080808
Jeffrey Altman [Fri, 8 Aug 2008 17:43:37 +0000]
windows-lock-corrections-20080808

LICENSE MIT

Derrick helped identify a few locations where rw or mx locks where
not properly being tracked.  As a result there were some locations
in which an assertion could be thrown due to releasing the wrong
type of lock.

Also added lock_AssertXXX calls to some locations to ensure that
the correct lock type is being held when the calls are made.  volume
location updates, cm_SyncOp, cm_SyncOpDone.

15 years agowindows-max-cell-name-20080807
Jeffrey Altman [Thu, 7 Aug 2008 14:46:11 +0000]
windows-max-cell-name-20080807

LICENSE MIT

Anywhere cm_GetCell_Gen() is called CELL_MAXNAMELEN must be used
otherwise there will be a stack overflow error.

15 years agowindows-misc-20080806
Jeffrey Altman [Thu, 7 Aug 2008 06:35:36 +0000]
windows-misc-20080806

LICENSE MIT

Return CM_ERROR_READONLY if the caller wants PRSFS_DELETE and the
volume is readonly.

In cm_CheckNTDelete() do not call cm_SyncOpDone if cm_SyncOp failed

Do not force the use of fake directory data if the user does not
have PRSFS_READ on the directory.  Let the bulkstatus call take
place now that it is actually being used efficiently.

In ApplyV3SearchDirPatches, use cm_SyncOp(CM_SCACHESYNC_GETSTATUS)
to obtain the status info for Freelance entries instead of the
bulkstatus call.

Fix the truncation of 8.3 names in directory search responses.

15 years agowindows-cell-name-length-consistency-two-20080806
Jeffrey Altman [Wed, 6 Aug 2008 21:25:43 +0000]
windows-cell-name-length-consistency-two-20080806

LICENSE MIT

fix what I broke

15 years agowindows-afssw-20080806
Jeffrey Altman [Wed, 6 Aug 2008 06:10:14 +0000]
windows-afssw-20080806

LICENSE MIT

prevent buffer underrun and overrun errors

15 years agowindows-cell-name-length-consistency-20080806
Jeffrey Altman [Wed, 6 Aug 2008 06:09:34 +0000]
windows-cell-name-length-consistency-20080806

LICENSE MIT

make all cell name lengths consistent so that safer string copy/cat
functions can be used to prevent buffer overruns

15 years agowindows-getaccessrights-20080805
Jeffrey Altman [Tue, 5 Aug 2008 16:45:35 +0000]
windows-getaccessrights-20080805

LICENSE MIT

Do not permit GetAccessRights() to be called multiple times within
cm_SyncOp for the same rights check.  If the GetAccessRights() succeeded
and in the next loop the rights check fails, the user simply doesn't
have the rights.

Move a call to cm_SyncOpDone(FETCHSTATUS) from GetBuffer() to MergeStatus().
Anytime an RPC completes successfully we get updated status info for
the object.  Might as well allow threads waiting for status info to us
it.

15 years agowindows-ioctl-make-submount-20080802
Jeffrey Altman [Sun, 3 Aug 2008 04:28:32 +0000]
windows-ioctl-make-submount-20080802

LICENSE MIT
FIXES 109951

Restore the ascii version of cm_NormalizeAfsPathAscii() so that it
can be used by cm_IoctlMakeSubmount().

15 years agowindows-afsconfig-header-20080802
Jeffrey Altman [Sat, 2 Aug 2008 20:46:14 +0000]
windows-afsconfig-header-20080802

LICENSE MIT

Enable Bos Restricted mode for Windows

15 years agowindows-smb-dir-search-20080802
Jeffrey Altman [Tue, 5 Aug 2008 15:29:14 +0000]
windows-smb-dir-search-20080802

LICENSE MIT

Apply the bulk stat improvements to smb_ApplyDirListPatches() and
smb_ReceiveCoreSearchDir() for consistency even though
smb_ReceiveCoreSearchDir() is no longer called by any of the platforms
we support.

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
LICENSE MIT

Only return 50 items at a time to the caller.
Do not apply patches based on buffer boundaries.  Instead
apply patches when AFSCBMAX entries are ready to be processed
in order to minimize the number of RPCs.

15 years agowindows-smb-dir-search-20080801
Jeffrey Altman [Sat, 2 Aug 2008 05:56:57 +0000]
windows-smb-dir-search-20080801

LICENSE MIT

minimize the number of RPCs sent to the file server. only request
status for objects that we are actually reporting on and only if
we do not already have status for the object
and then make sure that we return as much as we can at once but
not so much that it exceeds the RDR timeout

15 years agowindows-scache-deadlock-20080801
Jeffrey Altman [Fri, 1 Aug 2008 22:35:06 +0000]
windows-scache-deadlock-20080801

LICENSE MIT

do not recycle a deleted scache object unless the refcount is 0

15 years agowindows-smb-dumpvars-20080801
Jeffrey Altman [Fri, 1 Aug 2008 22:01:49 +0000]
windows-smb-dumpvars-20080801

LICENSE MIT

When dumping the smb data structs, report flags in hex and
paths are now wchar_t strings.

15 years agowindows-smb-warnings-20080801
Jeffrey Altman [Fri, 1 Aug 2008 14:36:54 +0000]
windows-smb-warnings-20080801

LICENSE MIT

cast away a number of compile time data size warnings

15 years agowindows-smb-vc-refcount-debugging-20080801
Jeffrey Altman [Fri, 1 Aug 2008 14:30:21 +0000]
windows-smb-vc-refcount-debugging-20080801

LICENSE MIT

define DEBUG_SMB_REFCOUNT in smb.h to activate refcount debugging
versions of the functions that log the file and line number as
well as object and refcount.  This is for use in debugging refcount
leaks.

rename GetPacket and GetNCB to smb_GetPacket and smb_GetNCB, etc.,
to enforce the name space.  Do not confuse with similar Win32 API
functions.

restructure some code that refers to smb_vc_t references in order
to clarify where the refcount is dropped.

15 years agowindows-smb-dead-vc-gc-on-head-20080801
Jeffrey Altman [Fri, 1 Aug 2008 14:14:50 +0000]
windows-smb-dead-vc-gc-on-head-20080801

LICENSE MIT

deltas windows-smb-dead-vc-gc-20080627 and
windows-dead-vc-cleanup-take-two-20080703 attempted to
protect against an infinite recursion when cleaning up
dead smb virtual circuits.  they failed to address the
incrementing of the vc refcount in smb_ReleaseVCInternal
when it is about to call smb_CleanupDeadVC.  If the vc
is already being cleaned, then smb_ReleaseVCInternal
should not increment the refCount and should not call
smb_CleanupDeadVC.

(This commit was committed incorrectly to the 1-5
branch first.  delta name on the head was modified
to avoid the delta name collision.)

15 years agowindows-osilog-20080731
Jeffrey Altman [Fri, 1 Aug 2008 05:22:08 +0000]
windows-osilog-20080731

LICENSE MIT

increase the number of parms from 4 to 5 for osi_Log

15 years agowindows-ioctl-create-mount-point-validate-volume-20080731
Jeffrey Altman [Thu, 31 Jul 2008 18:01:12 +0000]
windows-ioctl-create-mount-point-validate-volume-20080731

LICENSE MIT

validate the specified volume to make sure it exists before permitting
the mount point to be created.   This will catch many instances in which
the user swaps the parameters to "fs mkmount".

15 years agowindows-wix-custom-20080731
Jeffrey Altman [Thu, 31 Jul 2008 13:43:00 +0000]
windows-wix-custom-20080731

LICENSE MIT

in c++, arrays allocated with new[] must be deallocated with delete[]

15 years agowindows-handle-vl_badname-20080731
Jeffrey Altman [Thu, 31 Jul 2008 13:37:29 +0000]
windows-handle-vl_badname-20080731

LICENSE MIT

Process VL_BADNAME so that when a user creates an mount point with
an invalid volume name we will do something sane.

15 years agowindows-volume-recycling-race-condition-20080731
Jeffrey Altman [Thu, 31 Jul 2008 05:45:44 +0000]
windows-volume-recycling-race-condition-20080731

LICENSE MIT

When recycling cm_volume_t objects, avoid a race condition that could
result in the same cm_volume_t object being recycling simultaneously
in two threads.  The end result would be a reference count miscount
and an undercount assertion being thrown.

15 years agowindows-buf-clean-error-handling-20080731
Jeffrey Altman [Thu, 31 Jul 2008 05:39:29 +0000]
windows-buf-clean-error-handling-20080731

LICENSE MIT

When an error such as access denied, out of space, out of quota,
invalid fid, etc. is received while writing a dirty buffer to the
file server, apply that error code to all outstanding dirty buffers
immediately instead of attempting to write each buffer to the file
server only to obtain the same error.

15 years agowindows-remove-unnecessary-malloc-include-20080731
Jeffrey Altman [Thu, 31 Jul 2008 05:32:57 +0000]
windows-remove-unnecessary-malloc-include-20080731

LICENSE MIT

remove unnecessary #include <malloc.h>

15 years agowindows-stat-resource-files-20080730
Jeffrey Altman [Wed, 30 Jul 2008 23:16:24 +0000]
windows-stat-resource-files-20080730

LICENSE MIT

Add version resource info to xstat_cm_test.exe and xstat_fs_test.exe

15 years agoviced-write-perm-grants-read-lock-20080730
Jeffrey Altman [Wed, 30 Jul 2008 21:00:21 +0000]
viced-write-perm-grants-read-lock-20080730

LICENSE MIT

Remove extra return(EACCES) added by delta
viced-write-perm-grants-read-lock-20070423 on head and 1.5 branch.

15 years agowindows-buf-overquota-20080728
Jeffrey Altman [Tue, 29 Jul 2008 03:54:34 +0000]
windows-buf-overquota-20080728

LICENSE MIT

propagate overquota errors through buf_Write() and cm_FSync().

15 years agowindows-large-files-20080728
Jeffrey Altman [Mon, 28 Jul 2008 23:57:24 +0000]
windows-large-files-20080728

LICENSE MIT

as part of the restructuring of code to separate the smb layer
from the cm layer, large file support was broken.   Define AFS_LARGEFILES
in the right place so that it will be used in the cm.

15 years agosalvager-avoid-directory-issues-and-mark-volumes-busy-20080728
Hartmut Reuter [Mon, 28 Jul 2008 13:58:30 +0000]
salvager-avoid-directory-issues-and-mark-volumes-busy-20080728

LICENSE IPL10
FIXES 107767

avoid corrupting length in vnodeds when salvaging directories.
avoid tag reuse leaving data behind (not verified)
avoid not marking something busy during salvage

15 years agowindows-ioctl-prefix-data-20080726
Jeffrey Altman [Sun, 27 Jul 2008 03:43:14 +0000]
windows-ioctl-prefix-data-20080726

LICENSE MIT

The ioctl-prefix-data can be accessed either via a char_t or a wchar_t.
Copy the data buffer with memcpy() and not strcpy() because we need to
copy the entire string if it happens to be Unicode.

15 years agowindows-build-20080725
Jeffrey Altman [Fri, 25 Jul 2008 21:25:55 +0000]
windows-build-20080725

LICENSE MIT

update README-NT and src/ntbuild.bat build instructions.

15 years agowindows-nsis-vc-runtime-install-20080725
Jeffrey Altman [Fri, 25 Jul 2008 20:43:36 +0000]
windows-nsis-vc-runtime-install-20080725

LICENSE MIT

The NSIS installer was building a msi for the vc runtime that included
the Debug merge modules when the Retail merge modules should have been
used instead.

15 years agowindows-buf-setdirty-20080724
Jeffrey Altman [Thu, 24 Jul 2008 20:32:58 +0000]
windows-buf-setdirty-20080724

LICENSE MIT

Everytime the CM_BUF_DIRTY flag is set on a cm_buf_t, the userp field
on the cm_buf_t must also be set.  Add a cm_user_t parameter to buf_SetDirty()
so that each function that calls it doesn't have to manually set the
last write user.  This improves code readability and the abstraction layering.

15 years agowindows-cm-makedir-20080724
Jeffrey Altman [Thu, 24 Jul 2008 18:54:53 +0000]
windows-cm-makedir-20080724

LICENSE MIT

Extend the cm_MakeDir() function signature to permit the (optional)
return of the cm_scache_t object that was created by the operation
in the same way that cm_Create() does.

Make the return of the cm_scache_t by cm_Create() optional although
it is never used that way.

In both cm_Create() and cm_MakeDir() avoid releasing the cm_scache_t
object until we are actually finished with it.

15 years agowindows-cm-req-smb-20080723
Jeffrey Altman [Wed, 23 Jul 2008 22:40:34 +0000]
windows-cm-req-smb-20080723

LICENSE MIT

Add smb_InitReq() calls cm_InitReq() and then sets the new
CM_REQ_SOURCE_SMB flag.  When this flag is set, the source of the
request is known to be the SMB interface.  This flag will not be
set on requests generated by the various background daemons.

15 years agowindows-cm-rename-debugging-20080723
Jeffrey Altman [Wed, 23 Jul 2008 22:24:51 +0000]
windows-cm-rename-debugging-20080723

LICENSE MIT

Add some trace log statements to cm_Rename() that can be used for
debugging.

15 years agowindows-btree-enum-20080723
Jeffrey Altman [Wed, 23 Jul 2008 22:19:19 +0000]
windows-btree-enum-20080723

LICENSE MIT

Fix next enum to return an invalid param error when beyond the end
of the list.

15 years agowindows-volume-deadlock-20080722
Jeffrey Altman [Wed, 23 Jul 2008 05:55:36 +0000]
windows-volume-deadlock-20080722

LICENSE MIT

When updating the volume location information, if a new server must
be allocated and the server is down, then it is possible for a deadlock
to occur on the cm_volume_t rw lock.  Prevent that from happening.

15 years agowindows-build-system-20080722
Jeffrey Altman [Tue, 22 Jul 2008 16:01:22 +0000]
windows-build-system-20080722

LICENSE MIT

Move the man-pages build out of the 'install' step.

15 years agowindows-volume-vlgetaddrs-deadlock-20080721
Jeffrey Altman [Tue, 22 Jul 2008 07:42:20 +0000]
windows-volume-vlgetaddrs-deadlock-20080721

LICENSE MIT

A missing tilde makes a huge difference.

15 years agowindows-more-rxconnp-20080721
Jeffrey Altman [Mon, 21 Jul 2008 21:55:06 +0000]
windows-more-rxconnp-20080721

LICENSE MIT

convert additional 'connp' instances to 'rxconnp'

in cm_volume.c, make sure that we hold a reference to the rxconnp
whenever we use it to perform an RPC.

15 years agowindows-cm_conn-20080721
Jeffrey Altman [Mon, 21 Jul 2008 19:34:05 +0000]
windows-cm_conn-20080721

LICENSE MIT

callp -> rxconnp

15 years agowindows-callp-to-rxcallp-20080721
Jeffrey Altman [Mon, 21 Jul 2008 17:18:41 +0000]
windows-callp-to-rxcallp-20080721

LICENSE MIT

There has been long time confusion in the windows cache manager because
there are cm_conn object ptrs call connp and rx_connection object ptrs
call connp and rx_call object ptrs called callp and rx_connection object
ptrs called callp.

From now on, rxconnp is a ptr to an rx_connection object;
rxcallp is a ptr to an rx_call object; and connp is a ptr to an
cm_conn object.

15 years agowindows-smb-ioctl-setacl-20080721
Jeffrey Altman [Mon, 21 Jul 2008 10:19:26 +0000]
windows-smb-ioctl-setacl-20080721

LICENSE MIT

setacl does not support the options structure.  just call parse ioctl path.
bug introduced during ioctl refactoring.

15 years agowindows-volume-vlgetaddrs-deadlock-20080719
Jeffrey Altman [Sat, 19 Jul 2008 15:47:40 +0000]
windows-volume-vlgetaddrs-deadlock-20080719

LICENSE MIT

During cm_InitVolume() clear CM_VOLUMEFLAG_UPDATING_VL if we are reusing
the cache data just in case.

In cm_UpdateVolumeLocation() add trace logging to the sleeping, waking,
and awaking states; move the destruction of the old server list into
the region protected by the CM_VOLUMEFLAG_UPDATING_VL flag.

15 years agoalways-wrap-vos-ctime-20080718
Russ Allbery [Sat, 19 Jul 2008 07:41:06 +0000]
always-wrap-vos-ctime-20080718

LICENSE MIT

When calling ctime on an afs_int32, always use a wrapper that assigns the
variable to a time_t before passing it in rather than conditionally doing
so on hosts with a large time_t.  This eliminates a configure test,
removes a bunch of warnings in vos.c on platforms with 32-bit time_t, and
will make no difference in generated code with any decent compiler.