]> git.michaelhowe.org Git - packages/o/openafs.git/log
packages/o/openafs.git
14 years agoDAFS: Deal with exclusive-state volume headers
Andrew Deason [Fri, 4 Nov 2011 17:42:33 +0000 (12:42 -0500)]
DAFS: Deal with exclusive-state volume headers

GetVolumeHeader assumes that headers on the LRU are not associated
with a volume in an exclusive state. This is known to not be true for
some cases when salvage requests are received over FSSYNC, and may be
true in other scenarios. It's easy to just skip such headers, so skip
them.

Reviewed-on: http://gerrit.openafs.org/5808
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit c2ee7b00ddfe8b1b8c296a99f0244eb33c726e8e)

Change-Id: I0eda511071114b01cd8984d30858b0aa9157727a
Reviewed-on: http://gerrit.openafs.org/6085
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoukernel: handle pioctl errors properly in ktc
Derrick Brashear [Fri, 4 Nov 2011 15:43:01 +0000 (11:43 -0400)]
ukernel: handle pioctl errors properly in ktc

the straight return from call_syscall isn't what we want. munge so
e.g. EDOM handling for ktc_GetToken does the right thing.

Reviewed-on: http://gerrit.openafs.org/5807
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit b06c700ee40ca70ef08259af819e2a6084137457)

Change-Id: I8929615940cb4f025bdd04139399f0ceb82955c9
Reviewed-on: http://gerrit.openafs.org/6084
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agosalvager: Implement AskDAFS via SYNC flags
Andrew Deason [Thu, 3 Nov 2011 18:17:33 +0000 (13:17 -0500)]
salvager: Implement AskDAFS via SYNC flags

Instead of probing the DAFS-ness of the fileserver by probing which
FSSYNC opcodes it supports, detect DAFS-ness by looking at the SYNC
response header flags, which explicitly state whether or not the
endpoint is DAFS. This avoids unnecessary "protocol mismatch" log
messages when the endpoint is not DAFS.

Reviewed-on: http://gerrit.openafs.org/5800
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 7fee28bae30c5a65898a2e3fd7149f07e8ca0df6)

Change-Id: I0643b0e61795f39b63783c937e88c4a74c3c8312
Reviewed-on: http://gerrit.openafs.org/6083
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoregen: Fail on failures
Andrew Deason [Tue, 8 Nov 2011 18:52:50 +0000 (12:52 -0600)]
regen: Fail on failures

If something fails, don't ignore the error.

Reviewed-on: http://gerrit.openafs.org/5817
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 6d519cf1234d54630dcfe48f6ecd393e2dfe71dd)

Change-Id: I5e5ac4d843b9dafce7b7f3acadfcdb0901aed214
Reviewed-on: http://gerrit.openafs.org/6082
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoviced: avoid bogus handle in rename
Derrick Brashear [Wed, 9 Nov 2011 15:34:10 +0000 (10:34 -0500)]
viced: avoid bogus handle in rename

because fileptr's handle can be reset during CopyOnWrite
we need to SetDirHandle after that call

FIXES 130215

Reviewed-on: http://gerrit.openafs.org/5818
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit a1669f3e37299c11bf29a458212e03d1bdb22334)

Change-Id: I57e084102048916b04e45aa32792dc91193e43d8
Reviewed-on: http://gerrit.openafs.org/6081
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agovolser: Preserve needsSalvaged during restore
Andrew Deason [Wed, 9 Nov 2011 23:04:09 +0000 (17:04 -0600)]
volser: Preserve needsSalvaged during restore

Some of the routines during a volume restore may set needsSalvaged, if
an inconsistency is detected while writing the given volume data.
However, after the data is read, we set the volume header information
to what was found in the dump stream, ignoring any needsSalvaged that
may have been set.

To ensure that inconsistent volumes in this situation actually get
demand-salvaged (for DAFS) or offlined (non-DAFS), keep the value of
needsSalvaged in the header, if it was set.

Reviewed-on: http://gerrit.openafs.org/5822
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 9ba891676a15512fa58915662cf599ea73eac430)

Change-Id: Iece9f5b03f0454b7f833e4f3e86da4478b4441fe
Reviewed-on: http://gerrit.openafs.org/6080
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agonamei: Remove extraneous rmdir
Andrew Deason [Thu, 10 Nov 2011 17:58:12 +0000 (11:58 -0600)]
namei: Remove extraneous rmdir

We just unlinked the file, so we know we won't be able to rmdir() the
same thing. Give a path one level higher to
namei_RemoveDataDirectories, so we start rmdir()ing at the parent dir.

Reviewed-on: http://gerrit.openafs.org/5833
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit b41e30a55c8aeb6d7f42d74f9eb090232032057f)

Change-Id: Ibd14490e2d85bd78522472203ad57120237bff22
Reviewed-on: http://gerrit.openafs.org/6079
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agonamei: tweak getlinkbyte error handling
Jeffrey Altman [Fri, 11 Nov 2011 16:00:47 +0000 (11:00 -0500)]
namei: tweak getlinkbyte error handling

in the event of a pread error, add the same error exit path
trigger that we have elsewhere

Reviewed-on: http://gerrit.openafs.org/5843
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 51f71e533b20cd875eec8adda71edea044a606da)

Change-Id: I05623d392e7e3446b7b41dcc1778c6aca986bca1
Reviewed-on: http://gerrit.openafs.org/6078
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoafs: Leave cellnum alone for explicit mtpt cell
Andrew Deason [Tue, 15 Nov 2011 19:18:48 +0000 (13:18 -0600)]
afs: Leave cellnum alone for explicit mtpt cell

When a mountpoint is given an explicit cell, don't alter cellnum.
Cellnum represents the cell for the parent, and is used for
determining whether or not we're crossing a cell boundary.

Previously, this code forced the mount point to always be treated as
foreign (for a mountpoint prefixed with a cell name), or to always be
treated as local (for a mountpoint prefixed with a cell number).

Change-Id: I7b98ccc94bf61dc3d7be0b7d6b54019cd797e884
Reviewed-on: http://gerrit.openafs.org/6051
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agonamei: tweak getlinkbyte error handling
Jeffrey Altman [Fri, 11 Nov 2011 16:00:47 +0000 (11:00 -0500)]
namei: tweak getlinkbyte error handling

in the event of a pread error, add the same error exit path
trigger that we have elsewhere

Change-Id: Id7a371f3fd710f3c6dad21bccb0662cf8562d99f
Reviewed-on: http://gerrit.openafs.org/5843
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoauth: avoid excessive stat of cellservdb
Michael Meffie [Thu, 27 Oct 2011 21:53:47 +0000 (17:53 -0400)]
auth: avoid excessive stat of cellservdb

The modified time resolution is one second, so only
stat the cellservdb file at most only once per second.

Change-Id: I7d9a58f9af72b8c36b50374e49c07b4db85285e0
Reviewed-on: http://gerrit.openafs.org/5743
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agovol: rate-limit volume usage updates
Michael Meffie [Thu, 3 Nov 2011 21:09:28 +0000 (17:09 -0400)]
vol: rate-limit volume usage updates

Add threshold and time rate-limit parameters for volume usage
updates to disk.  This reduces the amount of i/o needed for
volume usage statistics on very busy fileservers.  Set the
default to limit updates to one every 5 seconds per volume.

Change-Id: I6b4274476ef6b8f9e4288b109d5a3edbdea6e91c
Reviewed-on: http://gerrit.openafs.org/5803
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Tom Keiser <tkeiser@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
14 years agoWindows: RDR_RequestFileExtentsAsync unheld lock
Jeffrey Altman [Fri, 18 Nov 2011 14:54:43 +0000 (09:54 -0500)]
Windows: RDR_RequestFileExtentsAsync unheld lock

commit 55f5f356af2ef884413bd656f100055741ae871b forgot to remove
a lock_ReleaseWrite(&scp->rw) in RDR_RequestFileExtentsAsync().

Change-Id: I787ceddcada3659c7b2fae9bb90aa005a71d2ceb
Reviewed-on: http://gerrit.openafs.org/6075
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: must obtain and release an actual lock
Jeffrey Altman [Fri, 18 Nov 2011 05:39:24 +0000 (00:39 -0500)]
Windows: must obtain and release an actual lock

Change-Id: I2bb490ba3c1db05c4dc7660ca7319d7d96d16c0f
Reviewed-on: http://gerrit.openafs.org/6072
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: non-release only worker threads can release
Jeffrey Altman [Thu, 17 Nov 2011 05:30:24 +0000 (00:30 -0500)]
Windows: non-release only worker threads can release

There are two classes of worker threads created by the service
and donated to the afsredir as part of the reverse ioctl processing
model.  Normal workers can process any kind of ioctl and Release
Only workers that can only process release extent events.

Use a KeWaitForMultipleEvents in the normal worker case to permit
processing any type of event.  The previous implementation excluded
release extent ioctls from the normal workers.

Change-Id: I05e86f62c08e322cf7aa9bdd2fd325919bcbfe8f
Reviewed-on: http://gerrit.openafs.org/6071
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoauth: initKeys before first error exit path
Jeffrey Altman [Wed, 16 Nov 2011 05:29:34 +0000 (00:29 -0500)]
auth: initKeys before first error exit path

In afsconf_OpenInternal() _afsconf_InitKeys() must be called
before the first opportunity to call afsconf_CloseInternal()
or a crash can occur if the CellServDB file cannot be parsed.

Change-Id: I5b2487056a24d0c4ad78921d85df755758c7679e
Reviewed-on: http://gerrit.openafs.org/6059
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Do not install IBM AFS HLP files
Jeffrey Altman [Wed, 16 Nov 2011 15:33:41 +0000 (10:33 -0500)]
Windows: Do not install IBM AFS HLP files

The IBM AFS HLP files are so out of date at this point
that they are simply confusing.  They reference tools and screens
that no longer exist and claim the product is "IBM AFS".  Incorrect
documentation is worse than no documentation.

The HLP files cannot be updated since we do not have the sources.

HLP file format is no longer supported on Windows Vista or 7.

The afs-nt.hlp file will continue to be installed conditionally
when afscreds.exe is installed but the shortcut to it in the
Start menu is being removed.  afscreds.exe is not installed by
default.

Change-Id: I3443a5c4ca65472a16cbf7ae1d52da39e917136a
Reviewed-on: http://gerrit.openafs.org/6065
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: buf_CleanAsyncLocked dirty range only
Jeffrey Altman [Tue, 15 Nov 2011 23:35:26 +0000 (18:35 -0500)]
Windows: buf_CleanAsyncLocked dirty range only

buf_CleanAsyncLocked() should not instruct cm_BufWrite() to
write a full chunk if the current buffer is the only one that
is dirty.  cm_BufWrite() will determine if it is appropriate
to fill a full chunk when storing.  Instructing it to check
a full chunk forces it to do more work than necessary.

Change-Id: Ie140d405147d700196532b72f04885a301a2550f
Reviewed-on: http://gerrit.openafs.org/6054
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: create scache->redirMx to reduce contention
Jeffrey Altman [Tue, 15 Nov 2011 23:23:46 +0000 (18:23 -0500)]
Windows: create scache->redirMx to reduce contention

Relying on the cm_scache_t.rw lock to protect the cm_scache_t.redirQueue*
results in a large amount of contention between processing extent
requests and releases from the afs redirector and the threads attempting
to read from or write data to the file server.   There is no reason why
the same lock must be used.  Allocate a dedicated mutex to protect the
queue.

By placing the new mutex after the buf_globalLock in the locking
hierarchy it permits the lock acquisition logic for extent processing
to be simplified further reducing cm_scache_t.rw lock transitions.

Change-Id: Id2ded86c1f3757a2f1071c8cf39f2fbc6bcfcfaa
Reviewed-on: http://gerrit.openafs.org/6053
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Increase default number of daemon threads
Jeffrey Altman [Wed, 16 Nov 2011 00:03:14 +0000 (19:03 -0500)]
Windows: Increase default number of daemon threads

With the SMB interface there was little benefit to having
a large background daemon worker pool since it was so rarely
used.  Now that the redirector does everything in the background
daemon workers, increase the default from 4 to 16 threads.

Change-Id: I319182e4c539c14d06fe62dde2b41a159e4edea6
Reviewed-on: http://gerrit.openafs.org/6058
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: cm_SetupStoreBIOD use firstModOffset chunk
Jeffrey Altman [Wed, 16 Nov 2011 00:00:05 +0000 (19:00 -0500)]
Windows: cm_SetupStoreBIOD use firstModOffset chunk

When cm_SetupStoreBIOD attempts to store a chunk to the file
server it should not use *inOffsetp as the start of the range.
There is no guarantee that the buffer at *inOffsetp is dirty.
Instead use firstModOffset which refers to the first known
dirty buffer in the range specified by the caller.  Attempt
to fill a chunk of consecutive dirty buffers from that point.

Change-Id: I468e896b046192461d6fe0dc3669e5feeb7886ba
Reviewed-on: http://gerrit.openafs.org/6057
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Fairness for background operations
Jeffrey Altman [Tue, 15 Nov 2011 23:40:21 +0000 (18:40 -0500)]
Windows: Fairness for background operations

The background daemon worker pool is responsible for processing
background Store and Fetch operations.  With the SMB interface
primary store and fetch operations are performed in the SMB worker
thread which makes sense since those operations must be synchronous
to the incoming request.

With the AFS redirector interface almost all of the work is performed
by the background daemon worker pool.  It is therefore critical that
the workers not get stuck in a state that starves applications.
For example, copy of a file that is larger than the cache to \\AFS
will result in a background store request for each chunk size of
the file.  If each worker thread grabs one to process, only one will
make progress and the rest will block.  If a cleanup operation
(aka handle close) occurs the entire file will be flushed to the
server synchronously in the redirector worker thread.  That thread
will cause of the background daemon threads to block.

Any subsequent fetch data requests that get queued behind the list
of stores will in turn block until they clear.  This behavior is not
fair.

This patchset adds a new test to the cm_BkgDaemon() request
selection loop, cm_RequestWillBlock().  If a request will block it
is skipped.  If there are no requests to process that would not have
blocked, the worker will sleep for 25ms instead of the usual 1s.

For BkgStore operations, the CM_SCACHEFLAG_DATASTORING flag is
used to indicating a blocking state.

For BkgFetch and PreFetch operations, the CM_BUF_WRITING and
CM_BUF_READING flags on the first cm_buf_t of the range is used
to indicate a blocking state.

Change-Id: I95d9d1f14dbe0c7d717e6a7253ccfb10a9fac851
Reviewed-on: http://gerrit.openafs.org/6056
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agovlserver: Avoid atoi for vol ids
Andrew Deason [Tue, 15 Nov 2011 17:53:12 +0000 (11:53 -0600)]
vlserver: Avoid atoi for vol ids

Change-Id: I27c30f9320ea6d2093846148ad455eda71b0b713
Reviewed-on: http://gerrit.openafs.org/6050
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Create default Security Descriptor
Jeffrey Altman [Tue, 15 Nov 2011 14:03:59 +0000 (09:03 -0500)]
Windows: Create default Security Descriptor

A misplaced #endif prevented the allocation of a default
security descriptor.  This results in STATUS_INSUFFICIENT_RESOURCES
errors.

FIXES 130284

Change-Id: I9c1d67368a1b5d770a4c9a981bdb4a24f8ad3c8e
Reviewed-on: http://gerrit.openafs.org/6048
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: interlocked refCount increment in cm_GetSCache
Jeffrey Altman [Mon, 14 Nov 2011 22:49:45 +0000 (17:49 -0500)]
Windows: interlocked refCount increment in cm_GetSCache

Failure to use interlocked operations in cm_GetSCache can
result in an under count

Change-Id: I370bcb9ac8b40f1c1b7ea3b7647fc76e3a554e2c
Reviewed-on: http://gerrit.openafs.org/6046
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Track active RPCs per scache_t
Jeffrey Altman [Sat, 12 Nov 2011 18:45:08 +0000 (13:45 -0500)]
Windows: Track active RPCs per scache_t

It has been noticed that multiple RPCs can be active on
a cm_scache_t object at the same time.  This is especially
true of directory objects with the redirector.  Track the
number of active RPCs and use that number in cm_MergeStatus
when deciding whether or not to discard the cached data for
the object.

Reviewed-on: http://gerrit.openafs.org/6001
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 090f6279c5496f648893606d298c698f376c7ae0)

Change-Id: Ic40b73ae44c47ad6077fcbbe41bf0d783ab776fc
Reviewed-on: http://gerrit.openafs.org/6045
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Add Vista/Win7 Firewall Configuration
Jeffrey Altman [Sat, 5 Nov 2011 08:10:42 +0000 (04:10 -0400)]
Windows: Add Vista/Win7 Firewall Configuration

Make use of the INetFwPolicy2 COM interface to configure
the Vista/Win7 firewall for all network profile types.

Reviewed-on: http://gerrit.openafs.org/5812
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit b15b4b15822bee87720bb0d78c2ce54051180339)

Change-Id: I3022b2480c7c7273e819d0a10c092f22f4af3800
Reviewed-on: http://gerrit.openafs.org/6044
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: cm_Rename break in 9cf7a628c2ff178b2fa236d2c0a41ca9be315036
Jeffrey Altman [Fri, 28 Oct 2011 21:43:24 +0000 (17:43 -0400)]
Windows: cm_Rename break in 9cf7a628c2ff178b2fa236d2c0a41ca9be315036

9cf7a628c2ff178b2fa236d2c0a41ca9be315036 broke renaming of
a file to a name that does not exist.  Put back the code that
makes that possible with a comment.

Reviewed-on: http://gerrit.openafs.org/5735
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 7a426424b7fb45659f6000a564e8c71a9108a33c)

Change-Id: Ia82ddc46b303cb80380c342d44db437c490b8508
Reviewed-on: http://gerrit.openafs.org/6043
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: out of date version not in current chunk
Jeffrey Altman [Fri, 28 Oct 2011 15:36:10 +0000 (11:36 -0400)]
Windows: out of date version not in current chunk

In buf_GetNewLocked(), the comparision to decide whether a
cm_buf_t is a member of the current chunk must take the data
version into account.  If the data version is out of date, it
is not part of the current chunk and is an object that can be
safely recycled.

Reviewed-on: http://gerrit.openafs.org/5734
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 1dad690fc34fdd8d9df8a3be6d580441b7cae8bb)

Change-Id: I626562d2189182b434f8da0f4f0a6213c5b695fe
Reviewed-on: http://gerrit.openafs.org/6042
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: only flush buffers on shutdown if running
Jeffrey Altman [Thu, 27 Oct 2011 21:57:25 +0000 (17:57 -0400)]
Windows: only flush buffers on shutdown if running

If a service shutdown message is received prior to the
service entering the running state, do not attempt to
buf_CleanAndReset() because the required data structures
and locks are not initialized.

Reviewed-on: http://gerrit.openafs.org/5733
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 9743f5729d1a55513e861bb1334599a8e597de6b)

Change-Id: I2bda1c4a538c83595f2d60ad4661c7e6865c5fc3
Reviewed-on: http://gerrit.openafs.org/6041
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Do not EEXIST exact match during rename
Jeffrey Altman [Tue, 25 Oct 2011 19:32:11 +0000 (15:32 -0400)]
Windows: Do not EEXIST exact match during rename

AFS Rename operations on the file server will delete a
target file if it exists.  Do not prevent renames because
an exact match of the target name exists in the target
directory.

Reviewed-on: http://gerrit.openafs.org/5731
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 9cf7a628c2ff178b2fa236d2c0a41ca9be315036)

Change-Id: I02c32fab18053e1a37811089812f402d351a6666
Reviewed-on: http://gerrit.openafs.org/6040
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: validate buffer hash tables in cm_MergeStatus
Jeffrey Altman [Wed, 14 Sep 2011 21:46:32 +0000 (17:46 -0400)]
Windows: validate buffer hash tables in cm_MergeStatus

Reviewed-on: http://gerrit.openafs.org/5425
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit cf57eb294f28084cbb138b1a06bc813e14e6d0ec)

Change-Id: Ia685aebdc443113b4ddb968155f306cc53680af9
Reviewed-on: http://gerrit.openafs.org/6039
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: record history of read lock threads
Jeffrey Altman [Sun, 21 Aug 2011 04:38:24 +0000 (00:38 -0400)]
Windows: record history of read lock threads

Maintance an array of up to 32 reader threads that have
acquired a rwlock.  Use it for debugging when things go bad.

Reviewed-on: http://gerrit.openafs.org/5411
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit c9d655b9a6edf02fd92455961445f239f4667821)

Change-Id: Icab5ffc36e4c6245b7d0699596eca66a66bc9538
Reviewed-on: http://gerrit.openafs.org/6038
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: ignore SYNCHRONIZE privilege in cm_CheckNTOpen
Jeffrey Altman [Fri, 9 Sep 2011 16:47:52 +0000 (12:47 -0400)]
Windows: ignore SYNCHRONIZE privilege in cm_CheckNTOpen

SYNCHRONIZE has not meaning for AFS so just ignore it.  Do not
deny an open request because it is set.

Reviewed-on: http://gerrit.openafs.org/5410
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 793fdd3360982c48bf60eefbd9c56b4a3c1e09f0)

Change-Id: Ice8758dcbd0b355c9fdfb5af293b6d670ec8c1e4
Reviewed-on: http://gerrit.openafs.org/6037
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: permit offline volume check to be disabled
Jeffrey Altman [Sun, 4 Sep 2011 18:58:23 +0000 (14:58 -0400)]
Windows: permit offline volume check to be disabled

Setting the registry value to 0 can now be used as a
method of disabling the offline volume check.

Reviewed-on: http://gerrit.openafs.org/5370
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 19a5b5e67c65f0a9109b0fb5410b5ba74ad85b41)

Change-Id: I50dfa3c5387ba8a1cbdd3ca80f9e8dc03e92c404
Reviewed-on: http://gerrit.openafs.org/6036
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: add clean rule to src/afs/NTMakefile
Jeffrey Altman [Tue, 6 Sep 2011 15:57:18 +0000 (11:57 -0400)]
Windows: add clean rule to src/afs/NTMakefile

Reviewed-on: http://gerrit.openafs.org/5368
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 4ec6fd003084b02c299466bcaeac3850be10f79c)

Change-Id: I0cadd04598e78f9b8a5c0774e0636af153a5030c
Reviewed-on: http://gerrit.openafs.org/6035
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: correct comments in cm_BkgStore
Jeffrey Altman [Wed, 7 Sep 2011 17:33:36 +0000 (13:33 -0400)]
Windows: correct comments in cm_BkgStore

Reviewed-on: http://gerrit.openafs.org/5369
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit b6e5493437b942d5550247761dac3311c6d73a86)

Change-Id: I73c2fcab9ccff73e4419d3edf3ffc7395230e6e5
Reviewed-on: http://gerrit.openafs.org/6034
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: remove CM_BUF_CMBKGFETCH flag
Jeffrey Altman [Mon, 14 Dec 2009 18:33:02 +0000 (13:33 -0500)]
Windows: remove CM_BUF_CMBKGFETCH flag

The processing of the CM_BUF_CMBKGFETCH flag adds more
overhead than it prevents.  Get rid of it.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/5359
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit b6f23864ffa380923f50d424063ad0804e407f4a)

Change-Id: I423aa105bad99c70942d6b967a1dde70216fb096
Reviewed-on: http://gerrit.openafs.org/6033
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: use lock conversion in cm_EndDirOp
Jeffrey Altman [Mon, 5 Sep 2011 14:11:09 +0000 (10:11 -0400)]
Windows: use lock conversion in cm_EndDirOp

Instead of dropping the lock for read and reacquiring for write
use lock_ConvertRToW() which will make the change atomicly if
it is possible or place the thread into the wait list if not.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/5360
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 33af0f92e9b8a50c5a6dd17a9065c0ef58597c28)

Change-Id: Id92298fa848becb4131139579fd31b0c5f98a4ad
Reviewed-on: http://gerrit.openafs.org/6032
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: cm_SymLink export created cm_scache_t
Jeffrey Altman [Fri, 2 Sep 2011 17:54:01 +0000 (13:54 -0400)]
Windows: cm_SymLink export created cm_scache_t

Permit the caller to request the cm_scache_t that represents
the created symlink or mount point object.

Reviewed-on: http://gerrit.openafs.org/5355
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 9b0cb614387403ff433cf39f84c13b626b1b9bdc)

Change-Id: I170059255e3bbc7e3ccbd59b66d7d8b11005a94f
Reviewed-on: http://gerrit.openafs.org/6031
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: correct cm_buf use of Head/Tail queues
Jeffrey Altman [Sun, 4 Sep 2011 01:07:13 +0000 (21:07 -0400)]
Windows: correct cm_buf use of Head/Tail queues

The buffer free list least recently used queue has both
head and tail points.  Use the proper versions of the queue
mgmt functions and do not handle edge cases as special cases.

Reviewed-on: http://gerrit.openafs.org/5354
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 537592f6bbda0c659c25ae7068f50504e2a5e116)

Change-Id: I0d5afaf59895f34ced739f4626a351fe41186008
Reviewed-on: http://gerrit.openafs.org/6030
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: remove dead code from cm_scache.c
Jeffrey Altman [Sun, 4 Sep 2011 00:22:19 +0000 (20:22 -0400)]
Windows: remove dead code from cm_scache.c

Reviewed-on: http://gerrit.openafs.org/5353
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 1e23761b7fadc260b32bebb0343a9b5b1de37cf4)

Change-Id: Ifd8cf9ec7b517da80b22853e0f90034586560e0d
Reviewed-on: http://gerrit.openafs.org/6029
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: add logging to smb_IoctlRead
Jeffrey Altman [Sun, 4 Sep 2011 00:06:21 +0000 (20:06 -0400)]
Windows: add logging to smb_IoctlRead

Reviewed-on: http://gerrit.openafs.org/5350
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 69463ac0cb367202485aac9977f8b4c47fb067f2)

Change-Id: I1f72db5148d2f596f4b0b58cb6788a244fd4fa44
Reviewed-on: http://gerrit.openafs.org/6028
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: remove potential data loss warning with cast
Jeffrey Altman [Sun, 4 Sep 2011 00:03:28 +0000 (20:03 -0400)]
Windows: remove potential data loss warning with cast

Reviewed-on: http://gerrit.openafs.org/5349
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 2588dd12478afb96a72f0cd788233ecf2145830f)

Change-Id: I02a87c4980c6ebe6ef671f90e2c6000ab2eeb60e
Reviewed-on: http://gerrit.openafs.org/6027
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agowindows: pass cm_req_t through background ops
Jeffrey Altman [Sat, 3 Sep 2011 23:14:11 +0000 (19:14 -0400)]
windows: pass cm_req_t through background ops

add cm_req_t object to background daemon operations in order to
permit request source to be propagated to the background daemon.

pass a cm_req_t into buf_SetDirty().

Reviewed-on: http://gerrit.openafs.org/5348
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 722843e2df533e8fcf245f2a3b10ef686992deb2)

Change-Id: I2fbc78cf765c534fc6fc673695634fcf946dca0b
Reviewed-on: http://gerrit.openafs.org/6026
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: correct log message in buf_Sync()
Jeffrey Altman [Sat, 3 Sep 2011 23:03:05 +0000 (19:03 -0400)]
Windows: correct log message in buf_Sync()

Reviewed-on: http://gerrit.openafs.org/5347
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 20772897654b58da6f7d4cd0bd2caf169abddd50)

Change-Id: I676a919701c4edfbc130a04c94f4092676a1d53c
Reviewed-on: http://gerrit.openafs.org/6025
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: buf_SetDirty do nothing if length is zero
Jeffrey Altman [Thu, 1 Sep 2011 13:51:06 +0000 (09:51 -0400)]
Windows: buf_SetDirty do nothing if length is zero

Reviewed-on: http://gerrit.openafs.org/5358
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 7dcc4766377b99c60db60328c21a3990db132268)

Change-Id: I30dc0f218df56e6e38fe6ce3736a5450b7036e51
Reviewed-on: http://gerrit.openafs.org/6024
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: remove MULTIHOMED ifdef
Jeffrey Altman [Sat, 3 Sep 2011 03:51:59 +0000 (23:51 -0400)]
Windows: remove MULTIHOMED ifdef

All builds include the MULTIHOMED functionality.
Get rid of the #ifdef MULTIHOMED.

Reviewed-on: http://gerrit.openafs.org/5333
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 2271d481d33b2b2ad56dcd4fc9fbdd726fc1967b)

Change-Id: Ia11e4bfdc83737720e5274bad3d01232f0f2dbbe
Reviewed-on: http://gerrit.openafs.org/6023
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: missing ! in update volume location
Jeffrey Altman [Fri, 2 Sep 2011 22:36:13 +0000 (18:36 -0400)]
Windows: missing ! in update volume location

The check to see if the volume name is numeric or not was
missing a ! in order to perform the correct test.  Add it.

Reviewed-on: http://gerrit.openafs.org/5331
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 8127e9332be8cadda001f05c6036d4c87e04cb4a)

Change-Id: I9760845b597c1653a78ab3e496166e5df03b7575
Reviewed-on: http://gerrit.openafs.org/6022
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: improve handling of volume rename
Jeffrey Altman [Fri, 2 Sep 2011 22:32:40 +0000 (18:32 -0400)]
Windows: improve handling of volume rename

The windows cache manager tracks volumes by volume group.
Up to this point all volume location updates have been performed
by the volume name.  What if the volume name was altered?  In this
case the volume location information for the in use volume ids will
fail until a mount point to the new name is queried.  Before
marking the volume group as non-existent attempt to perform a
lookup using either the volume id for the readwrite or readonly
volume.

Reviewed-on: http://gerrit.openafs.org/5330
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit f37b6dfaf050ec0270979c8310fb471c16b66cd3)

Change-Id: I33771780a4ace4aa5b4613bef4590d5efaf15922
Reviewed-on: http://gerrit.openafs.org/6021
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: refactor volume location updates
Jeffrey Altman [Fri, 2 Sep 2011 22:28:31 +0000 (18:28 -0400)]
Windows: refactor volume location updates

Break out the VL_GetEntryByName RPC calls into support
functions so we can reduce the amount of duplicated code.

Reviewed-on: http://gerrit.openafs.org/5329
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 9563dd68fc1fb4b86016106aaacd33732d4cf6ed)

Change-Id: I7fc8b9ac2902c0909b39c446468307fba30b2a51
Reviewed-on: http://gerrit.openafs.org/6020
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: netidmgr krb5_cc_get_principal can fail
Jeffrey Altman [Mon, 14 Nov 2011 15:23:53 +0000 (10:23 -0500)]
Windows: netidmgr krb5_cc_get_principal can fail

Do not dereference a NULL pointer if krb5_cc_get_principal fails.

On master this bug is fixed by e55d1774b1b5b27a3617467b5e2a24ee2be3a38c
but that change is after the conversion to the Kerberos Compatibility
SDK and cannot be applied to openafs-stable-1_6_x.

Change-Id: I646011dd3171fd1aa6f40f349329f8261546b809
Reviewed-on: http://gerrit.openafs.org/6019
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: netidmgr krb5_cc_get_principal can fail
Jeffrey Altman [Sun, 13 Nov 2011 17:06:18 +0000 (12:06 -0500)]
Windows: netidmgr krb5_cc_get_principal can fail

Do not dereference a NULL pointer if krb5_cc_get_principal fails.

Change-Id: Ic213f0c41249931441bcedaf551acaa160ff7f0f
Reviewed-on: http://gerrit.openafs.org/6016
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: smb_ReceiveNTCreateX create smb_fid earlier
Jeffrey Altman [Sat, 12 Nov 2011 23:33:18 +0000 (18:33 -0500)]
Windows: smb_ReceiveNTCreateX create smb_fid earlier

smb_ReceiveNTCreateX() calls cm_CheckNTOpen() which now
requires the smb_fid_t allocated fid value for use in share
mode locking.   Move the allocation of the smb_fid earlier
in the function and apply necessary cleanup in error paths.

Change-Id: Iee0e39cdf393bfd245829bdfb42ddfba63908451
Reviewed-on: http://gerrit.openafs.org/6004
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: cm_GetSCache avoid holding cm_scacheLock
Jeffrey Altman [Sat, 12 Nov 2011 22:32:06 +0000 (17:32 -0500)]
Windows: cm_GetSCache avoid holding cm_scacheLock

cm_GetSCache used to hold cm_scacheLock write-locked from
start to finish except that it didn't.  There were several
places where cm_scacheLock was dropped and reacquired due
to lock ordering requirements.  Unfortunately, this has
two problems. First, the function isn't very fast in the
most common case since cm_scacheLock is write-locked for
the search for an existing FID.  Second, there is a race
that results when cm_GetNewSCache() drops the cm_scacheLock.

To make things faster, use a read-lock for the common case.

To avoid the race, if the FID cannot be located, call
cm_GetNewSCache() first and then obtain the cell and volume
information.  Then perform a second lookup for the FID while
holding cm_scacheLock write-locked.  If we lost the race or
there was an error obtaining the cell and volume info, put
the new cm_scache_t back onto the end of the LRU queue.

Change-Id: Idb94275d23c160ee0a2dc8fdcfd0f09506ecb2d3
Reviewed-on: http://gerrit.openafs.org/6003
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: avoid null ptr in RDR_RequestFileExtentsAsync
Jeffrey Altman [Sat, 12 Nov 2011 22:24:12 +0000 (17:24 -0500)]
Windows: avoid null ptr in RDR_RequestFileExtentsAsync

If the cm_scache_t cannot be obtained, do not dereference it
while returning an error to the redirector.

Change-Id: Ia8aaa33ca4ab410dc1b0100ea5668d5660d90b75
Reviewed-on: http://gerrit.openafs.org/6002
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Track active RPCs per scache_t
Jeffrey Altman [Sat, 12 Nov 2011 18:45:08 +0000 (13:45 -0500)]
Windows: Track active RPCs per scache_t

It has been noticed that multiple RPCs can be active on
a cm_scache_t object at the same time.  This is especially
true of directory objects with the redirector.  Track the
number of active RPCs and use that number in cm_MergeStatus
when deciding whether or not to discard the cached data for
the object.

Change-Id: If291bb4c0e48d0ec087c3a7c2640e4598e7fd419
Reviewed-on: http://gerrit.openafs.org/6001
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: fix locking hierarchy in service
Jeffrey Altman [Sat, 12 Nov 2011 18:41:30 +0000 (13:41 -0500)]
Windows: fix locking hierarchy in service

The smb username lock and the daemon global lock can be requested
while the scache dirlock is held if there are no free buffers
and the service is forced to claw back extents from the redirector.
Adjust the locking hierarchy accordingly.

Change-Id: I85387a16ca580d678af45f3931aa5e81fe0a0f2c
Reviewed-on: http://gerrit.openafs.org/6000
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoafs: Do not use separate array for srvAddrs
Andrew Deason [Wed, 2 Nov 2011 21:55:49 +0000 (16:55 -0500)]
afs: Do not use separate array for srvAddrs

The array of srvAddr structs we use in afs_LoopServers have indices
unrelated to the indices of conns, rxconns, etc. Several places were
assuming that addr[i] corresponded to conn[i], which is not
necessarily true. So instead, do not use the separate addr array
(except when populating the conn and rxconn arrays), and just get the
srvAddr structure by going through the relevant conn[i].

Change-Id: Ib60126811f51943bfc81ab7c48d7f247f00f1cad
Reviewed-on: http://gerrit.openafs.org/5790
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agorx: Turn the rxevent_Cancel macro into a function
Simon Wilkinson [Sat, 22 Oct 2011 15:37:04 +0000 (16:37 +0100)]
rx: Turn the rxevent_Cancel macro into a function

Turn rxevent_Cancel into a function rather than a macro which modifies
its argument as a side effect. rxevent_Cancel now checks whether the
event being cancelled is already NULL, as well as NULLifying the event
when it is actually cancelled.

Update all of the callers to reflect this new API, and so they no
longer do unecessary work.

Change-Id: I75b68f1c8f1a3023edd6113600663fe2b60d6097
Reviewed-on: http://gerrit.openafs.org/5840
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agorx: New signature for rx event functions
Simon Wilkinson [Sat, 22 Oct 2011 15:22:36 +0000 (16:22 +0100)]
rx: New signature for rx event functions

For a while now, we've had both new and old-style rx event callback
functions. Modify all of our event handlers, and the functions that
install them, to use only new style functions, and get rid of the
old-style function prototypes.

Change-Id: Ic7c568df9d191edb082fb41fb7705c54ca93cf48
Reviewed-on: http://gerrit.openafs.org/5839
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoopr: Add a red/black tree implementation
Simon Wilkinson [Sat, 22 Oct 2011 10:22:51 +0000 (11:22 +0100)]
opr: Add a red/black tree implementation

Add an implementation of red/black trees to our runtime library.

This is originally derived from the FreeBSD macro-based rbtree
implementation, but is heavily reworked to not use macros, to improve
legibility, and to favour speed over structure compactness.

A test suite is provided in tests/opr/

Change-Id: I123209d3f89b5f8c1b85d1e5cd7d1d650ccc68ed
Reviewed-on: http://gerrit.openafs.org/5838
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agorx: Add a helper function for delayed acks
Simon Wilkinson [Sat, 22 Oct 2011 10:10:53 +0000 (11:10 +0100)]
rx: Add a helper function for delayed acks

The code to schedule a new delayed ack event is distributed throughout
the RX code. Consolidate this into a single helper function.

Change-Id: If54e36b5648f8caffe64cc2203dc0041fd06b8b3
Reviewed-on: http://gerrit.openafs.org/5837
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoopr: Add opr_containerof
Simon Wilkinson [Sat, 22 Oct 2011 08:45:10 +0000 (09:45 +0100)]
opr: Add opr_containerof

Add the opr_containerof macro, which can be used to find the base
address of a structure which contains a member whose location is known.

This formulation is heavily used throughout OpenAFS to determine the
base address of structures containing queue pointers - this provides
a central definition, rather than coding it from scratch each time.

Change-Id: I2a32a214252ad304238f740ad92579e5bb7287be
Reviewed-on: http://gerrit.openafs.org/5836
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoWindows: Add Vista/Win7 Firewall Configuration
Jeffrey Altman [Sat, 5 Nov 2011 08:10:42 +0000 (04:10 -0400)]
Windows: Add Vista/Win7 Firewall Configuration

Make use of the INetFwPolicy2 COM interface to configure
the Vista/Win7 firewall for all network profile types.

Change-Id: Id96d98f6e166f3529a117997f5a3c35b0051d1a4
Reviewed-on: http://gerrit.openafs.org/5812
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Enforce Share Access
Jeffrey Altman [Wed, 5 Oct 2011 07:36:48 +0000 (03:36 -0400)]
Windows: Enforce Share Access

Use file server locks to enforce file share access modes
via the afs redirector interface.  The approach taken
integrates share mode enforcement with the file server
lock tracking code in the service.  The share mode
enforcement mimics that of the SMB Server interface.

This patchset includes two functional changes to
the previous locking and share mode processing:

 1. The cm_scache_t fsLockCount field is used to
    determine if the desired lock can be granted
    by the file server.  If not, the RXAFS_SetLock()
    request is skipped and the request is failed
    locally.

 2. cm_CheckNTOpen() now accepts the desired and
    and share access modes.  The share access mode
    is used to determine if a test lock should be
    obtained at all.  If the share mode is FILE_SHARE_WRITE
    then no lock is requested.  This change permits
    Microsoft Office applications to offer the user
    the ability to open the file in read-only mode
    and notify the user when the document can be
    opened in read-write mode.

Developed with Peter Scott <pscott@kerneldrivers.com>

FIXES 130239

Change-Id: If9b4beb74586296d4feae52dd06c03f0b8b595cd
Reviewed-on: http://gerrit.openafs.org/5823
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoSOLARIS: Do not build x86 kernel module on 5.11
Andrew Deason [Thu, 10 Nov 2011 21:18:41 +0000 (15:18 -0600)]
SOLARIS: Do not build x86 kernel module on 5.11

Oracle Solaris 11 no longer supports x86 (amd64 is required). If we
try to build the x86 module, /usr/include/sys/kobj.h complains that
the ISA is unsupported, and refuses to go on. So, just remove
MODLOAD32 from the libafs directories to build on sunx86_511.

Change-Id: Ic18936d1a0f53ed290d885617d313347aa6ce87a
Reviewed-on: http://gerrit.openafs.org/5835
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agovolser: Remove debugging log messages
Andrew Deason [Fri, 4 Nov 2011 22:19:28 +0000 (17:19 -0500)]
volser: Remove debugging log messages

While the -log option to volserver is supposed to print additional log
information, it shouldn't spam the log with useless data. Remove some
of the log lines that are really more "debug" information, so we log
the same amount of information as in the 1.4 series.

Reviewed-on: http://gerrit.openafs.org/5810
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 2a1251c5d0c1b0fd4024d7b3282187a838b551fd)

Change-Id: I1af47fa1910a98a6175f1f000d0432af1e1126e8
Reviewed-on: http://gerrit.openafs.org/5831
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agonamei: Remove extraneous rmdir
Andrew Deason [Thu, 10 Nov 2011 17:58:12 +0000 (11:58 -0600)]
namei: Remove extraneous rmdir

We just unlinked the file, so we know we won't be able to rmdir() the
same thing. Give a path one level higher to
namei_RemoveDataDirectories, so we start rmdir()ing at the parent dir.

Change-Id: Ifa54d1cc07ed2d277416d09eabc45aa1e1c3803a
Reviewed-on: http://gerrit.openafs.org/5833
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agovol: Remove O_EXCL|O_TRUNC combinations
Andrew Deason [Thu, 10 Nov 2011 17:05:28 +0000 (11:05 -0600)]
vol: Remove O_EXCL|O_TRUNC combinations

A few places were specifying both O_EXCL and O_TRUNC to open().
O_TRUNC does not make any sense with O_EXCL, and doesn't do anything,
so remove O_TRUNC from these instances to make the code more clear.

Change-Id: Ie8d9d7b9912a96683ef34f762607e75468b5ac78
Reviewed-on: http://gerrit.openafs.org/5832
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoWindows: FSCTL_SET_REPARSE_POINT not yet implemented
Jeffrey Altman [Thu, 10 Nov 2011 03:52:37 +0000 (22:52 -0500)]
Windows: FSCTL_SET_REPARSE_POINT not yet implemented

Since FSCTL_SET_REPARSE_POINT is not yet implemented
return STATUS_INVALID_PARAMETER to all requests that
do not fail validity tests.

Change-Id: I53d4b4fc9d957daa70b16d37a529778ed8bbfa5e
Reviewed-on: http://gerrit.openafs.org/5829
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: FSCTL_SET_REPARSE_POINT error
Jeffrey Altman [Thu, 10 Nov 2011 03:47:55 +0000 (22:47 -0500)]
Windows: FSCTL_SET_REPARSE_POINT error

According to MS_FSCC 2.3.54 if the input buffer length is less than the size
of a REPARSE_DATA_BUFFER structure, or the input buffer length is greater
than 16,384, or a REPARSE_DATA_BUFFER structure has been specified for a
third party reparse tag, or the GUID specified for a third party reparse tag
does not match the GUID known by the operating system for this reparse
point, or the reparse tag is 0 or 1, then the return status shall be
STATUS_IO_REPARSE_DATA_INVALID.

Change-Id: I0072902afc8bc354af8f9b84b1021b37191dc23a
Reviewed-on: http://gerrit.openafs.org/5828
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: FSCTL_IS_PATHNAME_VALID return success
Jeffrey Altman [Thu, 10 Nov 2011 03:45:07 +0000 (22:45 -0500)]
Windows: FSCTL_IS_PATHNAME_VALID return success

Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista,
Windows Server 2008, Windows 7, and Windows Server 2008 R2 support the
FSCTL_IS_PATHNAME_VALID Request (section 2.3.21) and return STATUS_SUCCESS
whenever this request is invoked.  We will do the same.

Change-Id: I432c8a41e1102648faaa3d8c0f3b8c36ea89bfc8
Reviewed-on: http://gerrit.openafs.org/5827
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: these fsctl cmds are not implemented
Jeffrey Altman [Thu, 10 Nov 2011 03:42:54 +0000 (22:42 -0500)]
Windows: these fsctl cmds are not implemented

Return STATUS_NOT_IMPLEMENTED since the following
FSCTL_ operations are not:

FSCTL_LOCK_VOLUME
FSCTL_UNLOCK_VOLUME
FSCTL_DISMOUNT_VOLUME
FSCTL_MARK_VOLUME_DIRTY
FSCTL_IS_VOLUME_DIRTY
FSCTL_IS_VOLUME_MOUNTED

Change-Id: Idfe26a4b71538defd1919be575d62b32dd415a06
Reviewed-on: http://gerrit.openafs.org/5826
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Additional trace logging
Jeffrey Altman [Thu, 10 Nov 2011 03:33:11 +0000 (22:33 -0500)]
Windows: Additional trace logging

Add additional trace logging to the redirector to assist
with debugging reparse point processing.

Change-Id: I89d7a26d7d10ba5fff001d91f5e67baa224f4179
Reviewed-on: http://gerrit.openafs.org/5825
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: service must set reparse point attribute
Jeffrey Altman [Thu, 10 Nov 2011 01:05:05 +0000 (20:05 -0500)]
Windows: service must set reparse point attribute

When populating the directory entry information for the
redirector the service must set the reparse point attribute.

Change-Id: I26db0b822f850f0a19606eeed3c29e0e72562e2f
Reviewed-on: http://gerrit.openafs.org/5824
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Correctly increment PIOCtl DE
Peter Scott [Thu, 10 Nov 2011 20:34:53 +0000 (13:34 -0700)]
Windows: Correctly increment PIOCtl DE

When performing a directory enumeraiton, correctly increment ref count on
the PIOCtl DE structures

Change-Id: I44de6ab2d804378723e31887089aca4890d15fa6
Reviewed-on: http://gerrit.openafs.org/5834
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: FileNetworkPhysicalNameInfo implementation
Peter Scott [Thu, 10 Nov 2011 16:06:53 +0000 (09:06 -0700)]
Windows: FileNetworkPhysicalNameInfo implementation

Handle this File information query

Change-Id: Id16c22396cbb7e22b8958bc0438e58da048f4f70
Reviewed-on: http://gerrit.openafs.org/5830
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: improve store data parallelism
Jeffrey Altman [Mon, 31 Oct 2011 03:52:00 +0000 (23:52 -0400)]
Windows: improve store data parallelism

The file server will set the rx call status bit (0x1)
when the rpc is in process and all of the locks are held.
At this point it is not possible for another store data rpc
to begin on the vnode prior to the completion of the current
rpc.  Once this status bit is detected as set, the exclusive
store data synchronization on the cm_scache_t can be dropped.

This permits the next store data rpc to perform its biod
construction.

Change-Id: Ic856769650781b4f5f4ab4ac86df4946496bd655
Reviewed-on: http://gerrit.openafs.org/5741
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agovolser: Preserve needsSalvaged during restore
Andrew Deason [Wed, 9 Nov 2011 23:04:09 +0000 (17:04 -0600)]
volser: Preserve needsSalvaged during restore

Some of the routines during a volume restore may set needsSalvaged, if
an inconsistency is detected while writing the given volume data.
However, after the data is read, we set the volume header information
to what was found in the dump stream, ignoring any needsSalvaged that
may have been set.

To ensure that inconsistent volumes in this situation actually get
demand-salvaged (for DAFS) or offlined (non-DAFS), keep the value of
needsSalvaged in the header, if it was set.

Change-Id: I575d14d84120be0fbbeb185ed2726f1285e6f2ce
Reviewed-on: http://gerrit.openafs.org/5822
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoviced: avoid bogus handle in rename
Derrick Brashear [Wed, 9 Nov 2011 15:34:10 +0000 (10:34 -0500)]
viced: avoid bogus handle in rename

because fileptr's handle can be reset during CopyOnWrite
we need to SetDirHandle after that call

FIXES 130215

Change-Id: I8578d30da42bdd9be2c552cdac4d2c526c22ee45
Reviewed-on: http://gerrit.openafs.org/5818
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoregen: Fail on failures
Andrew Deason [Tue, 8 Nov 2011 18:52:50 +0000 (12:52 -0600)]
regen: Fail on failures

If something fails, don't ignore the error.

Change-Id: I3ae90009f0a0f61f269a05b39e9bfe478ccf256f
Reviewed-on: http://gerrit.openafs.org/5817
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agorx: Don't clear the receive queue when out of packets
Simon Wilkinson [Wed, 12 Oct 2011 13:47:14 +0000 (09:47 -0400)]
rx: Don't clear the receive queue when out of packets

We can end up discarding a receive queue that's been soft acked,
effectively taking back soft acks we sent. Whilst the RX
documentation says that a client can drop soft acked packets at
will, our RX implementation assumes that if the final packet in
a call has been soft acked, we won't clear the queue. If a client
clears the queue in this situation, the call will hang.

What *should* happen is that we should take necessary locks,
confirm that we have not soft-acked all of the packets in a flow,
and then discard, or, if we're just going to discard, error the
call.

Reviewed-on: http://gerrit.openafs.org/5603
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry-picked from f722a75fe21963d64217375f1f7bbb0eb14befb4)

Change-Id: Ie2f14a0ed7b6d258a7f456387df44ac95fd1748c
Reviewed-on: http://gerrit.openafs.org/5820
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoAdd "pretty" build option
Andrew Deason [Wed, 13 Apr 2011 18:15:57 +0000 (13:15 -0500)]
Add "pretty" build option

Add the capability to do a "pretty" build, where we output something
like "  CC  /path/to/foo.o" to build foo.o, instead of the entire
compiler invocation, similarly to how the Linux kernel build appears.
Add the "pretty" building for CC and LD rules.

This also prints out some helpful information when a command fails,
which can sometimes otherwise be annoying to figure out post-mortem.

To enable the pretty building, make with V=0. To output everything
that is actually run with V=0, make with 'V=0 Q=' .

Note that this does not work with all makes, since not all makes will
propagate command-line-specified variables to sub-makes without -e.
Non-working makes include /usr/ccs/bin/make on HP-UX and Solaris.
However, GNU make will work, as will /usr/xpg4/bin/make on Solaris.

Change-Id: Idce0afffe7d5be88b0743ec3f926a52efb1a6a74
Reviewed-on: http://gerrit.openafs.org/4486
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoSpecify pattern rules in addition to suffix rules
Andrew Deason [Tue, 8 Nov 2011 18:29:39 +0000 (12:29 -0600)]
Specify pattern rules in addition to suffix rules

A few makefiles specify an old-style suffix rule, such as:

  .c.o:
          $(AFS_CCRULE) $<

Not all makes seem to interpret these rules correctly (such as Solaris
/usr/xpg4/bin/make). Since it is easy to do so, specify pattern-based
rules along with these, like so:

  %.o: %.c
          $(AFS_CCRULE) $<

Change-Id: I052f1156d1a7e29beedb0fb59390073c2521459e
Reviewed-on: http://gerrit.openafs.org/5819
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoAdd setenv/unsetenv to roken
Andrew Deason [Thu, 3 Nov 2011 18:40:37 +0000 (13:40 -0500)]
Add setenv/unsetenv to roken

Add the replacement setenv and unsetenv functions to roken, for use on
(at least) HP-UX and older Solaris.

Change-Id: Id05137b6e6c88eb6648bd6a6e649f9ef311e32a4
Reviewed-on: http://gerrit.openafs.org/5801
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agodafs: avoid null deref getting volume header
Derrick Brashear [Sun, 6 Nov 2011 21:28:27 +0000 (16:28 -0500)]
dafs: avoid null deref getting volume header

we don't assign hd before dereferencing. stop dereferencing
and just use the queue cursor.

Change-Id: I023fd959c5d49575dbdf89fd4dab77341c5c52d0
Reviewed-on: http://gerrit.openafs.org/5814
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agosalvager: Implement AskDAFS via SYNC flags
Andrew Deason [Thu, 3 Nov 2011 18:17:33 +0000 (13:17 -0500)]
salvager: Implement AskDAFS via SYNC flags

Instead of probing the DAFS-ness of the fileserver by probing which
FSSYNC opcodes it supports, detect DAFS-ness by looking at the SYNC
response header flags, which explicitly state whether or not the
endpoint is DAFS. This avoids unnecessary "protocol mismatch" log
messages when the endpoint is not DAFS.

Change-Id: Ie05a587951d6d5f69ae03cf3749f8c53e1eb6b62
Reviewed-on: http://gerrit.openafs.org/5800
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoredhat: make rpms build on pre-f15 again
Derrick Brashear [Sat, 5 Nov 2011 15:24:43 +0000 (11:24 -0400)]
redhat: make rpms build on pre-f15 again

we don't have systemd everywhere. don't assume it

Change-Id: I4038bc1e1aff804e685d1987e368f2be1af35b05
Reviewed-on: http://gerrit.openafs.org/5813
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoukernel: handle pioctl errors properly in ktc
Derrick Brashear [Fri, 4 Nov 2011 15:43:01 +0000 (11:43 -0400)]
ukernel: handle pioctl errors properly in ktc

the straight return from call_syscall isn't what we want. munge so
e.g. EDOM handling for ktc_GetToken does the right thing.

Change-Id: I3fbba799e0156bad29b27c74a1c7709ee8c50c34
Reviewed-on: http://gerrit.openafs.org/5807
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
14 years agolibafsauthent: Remove obsolete HP-UX workaround
Andrew Deason [Fri, 4 Nov 2011 21:12:03 +0000 (16:12 -0500)]
libafsauthent: Remove obsolete HP-UX workaround

This workaround is no longer relevant. It is also error-prone and
there are far better ways to achieve a similar result, so get rid of
it.

Change-Id: If77f0cd95c8c608913d0c8717729a05c1ad67df9
Reviewed-on: http://gerrit.openafs.org/5811
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agovolser: Remove debugging log messages
Andrew Deason [Fri, 4 Nov 2011 22:19:28 +0000 (17:19 -0500)]
volser: Remove debugging log messages

While the -log option to volserver is supposed to print additional log
information, it shouldn't spam the log with useless data. Remove some
of the log lines that are really more "debug" information, so we log
the same amount of information as in the 1.4 series.

Change-Id: I1fd93344a7ebe11c6d5ad507dad87babe517785a
Reviewed-on: http://gerrit.openafs.org/5810
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
14 years agoUnix CM: Fix dir buffer leak in afs_readdir
Simon Wilkinson [Thu, 3 Nov 2011 10:10:23 +0000 (10:10 +0000)]
Unix CM: Fix dir buffer leak in afs_readdir

Resolve a buffer leak in afs_readdir that was visible on all non-Linux
platforms (Linux has an independent readdir implementation)

Change-Id: Ia5106f0e5c57430d3483b6add5b1629ff3fbc7b3
Reviewed-on: http://gerrit.openafs.org/5794
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoDAFS: Deal with exclusive-state volume headers
Andrew Deason [Fri, 4 Nov 2011 17:42:33 +0000 (12:42 -0500)]
DAFS: Deal with exclusive-state volume headers

GetVolumeHeader assumes that headers on the LRU are not associated
with a volume in an exclusive state. This is known to not be true for
some cases when salvage requests are received over FSSYNC, and may be
true in other scenarios. It's easy to just skip such headers, so skip
them.

Change-Id: I343d2e4f7af1c753641767be322420f38873c217
Reviewed-on: http://gerrit.openafs.org/5808
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
14 years agoWindows: NPCancelConnection set correct length
Jeffrey Altman [Fri, 4 Nov 2011 13:34:53 +0000 (09:34 -0400)]
Windows: NPCancelConnection set correct length

The RemoteNameLength passed in the IOCTL_AFS_CANCEL_CONNECTION call
must not include the trailing NUL.  NPGetConnection() returns the
size of the buffer used which does include the trailing NUL.

Change-Id: Ic5eae51aade91db4a799bea83d898af6fbc37504
Reviewed-on: http://gerrit.openafs.org/5806
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: do not leak resource in AFSQueryDirectory
Jeffrey Altman [Fri, 4 Nov 2011 12:40:03 +0000 (08:40 -0400)]
Windows: do not leak resource in AFSQueryDirectory

Track whether or not the pFcb->NPFcb->Resource is held so
it can be released in all error paths.

Change-Id: I8c8bfb912329e8c11ac7857086412d85aa64fea6
Reviewed-on: http://gerrit.openafs.org/5804
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: KFW_AFS should use API: ccache
Jeffrey Altman [Thu, 3 Nov 2011 20:39:18 +0000 (16:39 -0400)]
Windows: KFW_AFS should use API: ccache

During the Heimdal transition that default ccache type
was changed to FILE.  Restore the use of API: ccaches.

Change-Id: Idd8dfb46fc9167d8c1eb44466b76906a152eef9d
Reviewed-on: http://gerrit.openafs.org/5802
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Simplify KFW_AFS_klog
Jeffrey Altman [Thu, 3 Nov 2011 18:14:52 +0000 (14:14 -0400)]
Windows: Simplify KFW_AFS_klog

Reduce the complexity of KFW_AFS_klog.  Introduce
KFW_AFS_continue_aklog_processing_after_krb5_error() and
combine the input realm and realm_of_cell cases making
use of the RealmName variable.

Change-Id: I363544548652bc892f50dce00865e13e7d42de7f
Reviewed-on: http://gerrit.openafs.org/5799
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agoWindows: Failed to release correct lock
Peter Scott [Fri, 4 Nov 2011 13:31:57 +0000 (07:31 -0600)]
Windows: Failed to release correct lock

For cross-directory renames, the correct parent lock was not being tracked

Change-Id: Ib50aad63f56cde638ff3bf1595d4495338c15f91
Reviewed-on: http://gerrit.openafs.org/5805
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
14 years agodoc: limitations of addsite on different partitions
Ken Dreyer [Mon, 31 Oct 2011 14:27:16 +0000 (08:27 -0600)]
doc: limitations of addsite on different partitions

A user on the openafs-info mailing list noted that the Admin Guide is
unclear about creating read-only replicas on different partitions on
the same fileserver. Clarify the rules here.

Change-Id: I8229b4fba36c128772bb8198e6b8310a51206c03
Reviewed-on: http://gerrit.openafs.org/5745
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementix.org>