openafs.git
8 years agoafsd: switch to pthreads
Derrick Brashear [Sun, 22 Jul 2012 13:18:28 +0000]
afsd: switch to pthreads

kill one more lwp dependency.

Change-Id: I9a878d7b0e1ab50770c6162f6bd380119b7a4292
Reviewed-on: http://gerrit.openafs.org/7828
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agoafsd: cleanup syscall cleanup
Derrick Brashear [Tue, 24 Jul 2012 02:25:19 +0000]
afsd: cleanup syscall cleanup

sadly ead743db5d57afa175f5dc0828b76881bcbcbf54 missed a few bugs. fix
them here.

Change-Id: I03d52543fb096f75ccf6dbde4f7526a7c0c576bb
Reviewed-on: http://gerrit.openafs.org/7852
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agoWindows: get rid of _strdup and use rk_strdup
Jeffrey Altman [Sun, 22 Jul 2012 05:19:57 +0000]
Windows: get rid of _strdup and use rk_strdup

Do not use the _strdup() C RTL function.  Use strdup() so that
rk_strdup() roken replacement can be used.

Change-Id: Ifd2808a078b514468aee52ef76a9b51e606a2c88
Reviewed-on: http://gerrit.openafs.org/7848
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoroken: rk_strdup rk_wcsdup exports
Jeffrey Altman [Fri, 20 Jul 2012 14:19:07 +0000]
roken: rk_strdup rk_wcsdup exports

Change-Id: Iee3670ddf86599dd81f1247a9f8cfafcbc6e1e8f
Reviewed-on: http://gerrit.openafs.org/7847
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoImport of code from heimdal
Heimdal Developers [Mon, 23 Jul 2012 16:27:56 +0000]
Import of code from heimdal

This commit updates the code imported from heimdal to
b8a53329fc8bf2fe8c4f4058512f828d7654e3f8 (switch-from-svn-to-git-3003-gb8a5332)

Upstream changes are:

Jeffrey Altman (2):
      Windows: rk_strdup allocator
      Windows: rk_wcsdup allocator

Nicolas Williams (1):
      Fix bug in _krb5_expand_path_tokensv()

Change-Id: I08abb25b4f4136bccb3eaf8d8c44851ce748f395
Reviewed-on: http://gerrit.openafs.org/7842
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoptserver: Make ptclient build again
Simon Wilkinson [Wed, 18 Jul 2012 09:22:07 +0000]
ptserver: Make ptclient build again

Make the ptclient utility build again, and add it to the ptserver
Makefile so that it is built by default and, hopefully, won't
bitrot again.

Change-Id: I888a9d4392b62ecb2d7556694400a2853658052a
Reviewed-on: http://gerrit.openafs.org/7841
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agoauth: Fix GetTokenEx with NULL cellName
Simon Wilkinson [Mon, 16 Jul 2012 19:09:04 +0000]
auth: Fix GetTokenEx with NULL cellName

If GetTokenEx is called with a NULL cellName, it means use the
local cell. To do this with the legacy interface, a 0 length string
must be used for the cell instance of the ktc_principal passed to
GetToken. Fix this so that we do so, rather than attempting to
strcpy(..., NULL) which never ends well.

Caught by clang-analyzer

Change-Id: I53d9bdf0fc280ee073a2fb7693659269df29c2eb
Reviewed-on: http://gerrit.openafs.org/7840
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agorx: rxi_FindRpcStat must test for empty queue
Jeffrey Altman [Mon, 23 Jul 2012 00:40:41 +0000]
rx: rxi_FindRpcStat must test for empty queue

When queue_Scan is executed on an empty queue the queue element
variable, in this case 'rpc_stat' is the queue head, _RXQ(q),
and not NULL.  Callers of rxi_FindRpcStat() expect NULL on failure
to find or create an rx_interface_stat object.  Correct the behavior
by testing for an empty queue and return NULL immediately if the
queue is empty and the caller is not requesting creation.

Change-Id: I9952d7aaf357e039e87f6b8b17cb1a00208d6465
Reviewed-on: http://gerrit.openafs.org/7835
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoafsd: Tidy up system calls
Simon Wilkinson [Wed, 7 Sep 2011 17:31:32 +0000]
afsd: Tidy up system calls

Tidy up the way that we do system calls from afsd, by making
afsd_syscall a va_arg function, using a structure to pass system call
information around, and simplifying the #ifdef ladder that converts our
platform independent system calls into something platform specific.

This fixes all of the warnings in afsd which required the -Wno-error
option, the only warnings remaining are related to daemon being
deprecated on Darwin.

Change-Id: I357c7d175b5327007d50d213c6181881c842050e
Reviewed-on: http://gerrit.openafs.org/7188
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoWindows: cm_UpdateVolumeLocation volp locked
Jeffrey Altman [Mon, 23 Jul 2012 05:38:03 +0000]
Windows: cm_UpdateVolumeLocation volp locked

When calling cm_UpdateVolumeLocation the volp->mx must be held.
cm_Analyze() did not obtain the mutex as required.

Change-Id: Ida69105879a78692a367cd4439bee8e4bea751ff
Reviewed-on: http://gerrit.openafs.org/7839
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agolibafs: avoid flushing already freed dcaches in flush volumes
Michael Meffie [Thu, 7 Jun 2012 17:54:20 +0000]
libafs: avoid flushing already freed dcaches in flush volumes

When flushing volume data, skip flushing dcache entries which
are already freed.

Change-Id: I74d7e055e833dc91214dd9d544af3781f74db59b
Reviewed-on: http://gerrit.openafs.org/7539
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agovol: set correct bit in bitmap after VGrowBitmap
Marc Dionne [Fri, 20 Jul 2012 02:23:20 +0000]
vol: set correct bit in bitmap after VGrowBitmap

Set the correct bit after the bitmap is expanded with VGrowBitmap
so we don't allocate it twice and trigger a salvage.

Change-Id: Iee307a0913d4402c2d5a32d493ff489b35778811
Reviewed-on: http://gerrit.openafs.org/7793
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agouafs: avoid type-punning in get_user_struct()
Garrett Wollman [Fri, 20 Jul 2012 22:35:56 +0000]
uafs: avoid type-punning in get_user_struct()

There's no need for type-punning here; usr_getspecific() is a macro
that just assigns to the variable whose address we provide, so the
cast was just unnecessary (and erroneous) obfuscation.  This is the
only caller of usr_getspecific(), so if it needs to be more complex
in the future, it should probably just be open-coded here.

Change-Id: I81286cbce9a00908aa87073b728b07d8bcc8d1d1
Reviewed-on: http://gerrit.openafs.org/7799
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoubik: don't force an error just because calliter is early returning
Derrick Brashear [Sat, 21 Jul 2012 04:27:49 +0000]
ubik: don't force an error just because calliter is early returning

in this case, racing another ClientInit caller is not fatal.
clean up from 56b5b9a1c51c2197923aa373c180a834edabe4f6 which was
my fault.

Change-Id: I81d3298a775ed46972779b4121498560883fee01
Reviewed-on: http://gerrit.openafs.org/7803
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Garrett Wollman <wollman@csail.mit.edu>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agostrcompose: NULL must always be cast when passed to a variadic function
Garrett Wollman [Sat, 21 Jul 2012 05:35:15 +0000]
strcompose: NULL must always be cast when passed to a variadic function

The C standard allows NULL to be defined as a bare "0", which will
be passed to variadic functions as an int.  If the function expects
a pointer type, demons fly out of your nose.  strcompose() is such
a function, so make sure that all of its callers cast NULL appropriately.
(None of them did.)  This may be an opportune time to change all of
the callers to spell it opr_strcompose() as well, and avoid using a
reserved identifier, but this change does not do so.

Change-Id: Ia9007a48102da4d0a85a48b41a44e83102304b49
Reviewed-on: http://gerrit.openafs.org/7805
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoopr: constify various string functions and mark them AFS_NONNULL()
Garrett Wollman [Sat, 21 Jul 2012 05:22:02 +0000]
opr: constify various string functions and mark them AFS_NONNULL()

All of these string functions require at least one non-null argument.
Mark them as AFS_NONNULL() so that the compiler and static checker can
find erroneous uses.  The "source" arguments of lcstring and ucstring
can be const, so do so.  (This doesn't affect anything in the tree
right now.)  While here, note a few unfixed issues with these interfaces.)

Change-Id: If2a8dd4d617795560e92c09ee604780f90edce6a
Reviewed-on: http://gerrit.openafs.org/7804
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agolibafs: getattr should include S_IFDIR on fake dirs
Derrick Brashear [Wed, 18 Jul 2012 04:02:16 +0000]
libafs: getattr should include S_IFDIR on fake dirs

on macos, VDIR is not useful as part of a directory mode. it's just not.
on aix, solaris, we presumably want to pass S_ISDIR, so do so

Change-Id: I04ee49857febf1cf96d30bd6a8271f99192630c8
Reviewed-on: http://gerrit.openafs.org/7789
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoWindows: Recompute server rank periodically
Jeffrey Altman [Mon, 2 Jul 2012 14:26:05 +0000]
Windows: Recompute server rank periodically

After VL_ProbeServer and RXAFS_Getcapabilities RPCs call
cm_RankServer() to recompute the server ranks based upon the
updated peer statistics.

Change-Id: I84687e12f1c1bd323a95c5ffcc73b95d400bd1f5
Reviewed-on: http://gerrit.openafs.org/7827
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoWindows: Clear peer RPC stats on IP addr change
Jeffrey Altman [Fri, 20 Jul 2012 06:57:35 +0000]
Windows: Clear peer RPC stats on IP addr change

When an IP address change has been detected, clear the peer
RPC statistics used for server ranking.

Change-Id: Ie9e3f4553f9d0b22d4876b729ce0028e762efb33
Reviewed-on: http://gerrit.openafs.org/7826
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoWindows: server rankings by RPC statistics
Jeffrey Altman [Fri, 20 Jul 2012 06:55:20 +0000]
Windows: server rankings by RPC statistics

Use VL_ProbeServer for VLDB servers and either
opcode_RXAFS_GetCapabilities or opcode_RXAFS_GetTime for
File servers.

Change-Id: I67c3ad88ac3dd07ac1c0e44d462853d068bf50c8
Reviewed-on: http://gerrit.openafs.org/7825
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agorxgen: per-opcode stats
Derrick Brashear [Sat, 21 Jul 2012 04:17:14 +0000]
rxgen: per-opcode stats

allow access to per-opcode stats

Change-Id: I17639cf23acac23acfb9cb7dc07a7c5c81d4ff89
Reviewed-on: http://gerrit.openafs.org/7802
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jacob Thebault-Spieker <summatusmentis@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agorxgen: emit opcode defines in header
Derrick Brashear [Sat, 21 Jul 2012 04:07:41 +0000]
rxgen: emit opcode defines in header

define an opcode-name-specific define with the numeric value
of the opcode

Change-Id: I34e6eb57ac2c57319a83b0279cc9115050a39c4f
Reviewed-on: http://gerrit.openafs.org/7801
Reviewed-by: Jacob Thebault-Spieker <summatusmentis@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoxdr: fix two old FIXMEs related to signed/unsigned arithmetic
Garrett Wollman [Sat, 21 Jul 2012 04:04:58 +0000]
xdr: fix two old FIXMEs related to signed/unsigned arithmetic

It's implementation-defined whether the C '>>' operator, when
applied to a signed integer, is sign-extending or zero-filling.
If you want unsigned arithmetic, you have to ask for it explicitly.
One assumes the reason for the shift is to avoid overflow if the
returned size/count is later converted to a signed int, in which
case maybe it would be better to use INT_MAX here.  This is the
minimal change necessary for correctness.

Change-Id: I6e848110963b5e1832a11d052d84884f10903e2e
Reviewed-on: http://gerrit.openafs.org/7800
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: AFSTearDownFcbExtents loop conditional
Jeffrey Altman [Sat, 21 Jul 2012 16:17:46 +0000]
Windows: AFSTearDownFcbExtents loop conditional

If there are extents in the list with a non-zero ActiveCount,
those extents will be skipped and the list 'le' will never
become empty.  Add an additional condition to ensure that the
loop is only executed once for each extent in the list.

Change-Id: I48adf7c49282181d0a34135ac50f7fa1a165c735
Reviewed-on: http://gerrit.openafs.org/7810
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: memory leak AFSInitPIOCtlDirectoryCB
Jeffrey Altman [Sat, 21 Jul 2012 16:02:20 +0000]
Windows: memory leak AFSInitPIOCtlDirectoryCB

In an error occurs during AFSInitPIOCtlDirectoryCB processing
the nonpaged pool allocation would be leaked.

Change-Id: I092538202d84bd65476ba21a68e210d5f626ead2
Reviewed-on: http://gerrit.openafs.org/7809
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: memory leak AFSRemoveVolume
Jeffrey Altman [Sat, 21 Jul 2012 16:00:21 +0000]
Windows: memory leak AFSRemoveVolume

Do not leak the
VolumeCB->ObjectInformation.Specific.Directory.PIOCtlDirectoryCB->NonPaged
allocation and the associated lock object.

Change-Id: Ie6455c49fdcee578ab31355df1b2237f27a92e1d
Reviewed-on: http://gerrit.openafs.org/7808
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: AFSExFreePool -> AFSExFreePoolWithTag
Jeffrey Altman [Sat, 21 Jul 2012 15:52:22 +0000]
Windows: AFSExFreePool -> AFSExFreePoolWithTag

Replace AFSExFreePool() with AFSExFreePoolWithTag() which is
a wrapper around both ExFreePool() and ExFreePoolWithTag().
If a 'Tag' value, is provided, ExFreePoolWithTag() is used.
Otherwise, ExFreePool().

Specify allocation tag values wherever possible.  Path name buffer
tags are not specified because they are allocated using multiple
tags.  The same is true for network provider string buffers.

This is being done in order to debug a memory corruption issue.

Warning: this is a change to the AFSRedir->AFSRedirLib interface
and therefore both drivers must be updated with a reboot and
not simply restarting the service.

Change-Id: Id5c0503141d1077d6c2beae5d28602160105a312
Reviewed-on: http://gerrit.openafs.org/7807
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Freeing SeQueryInformationToken allocations
Jeffrey Altman [Sat, 21 Jul 2012 15:57:40 +0000]
Windows: Freeing SeQueryInformationToken allocations

Memory allocated by SeQueryInformationToken() must be freed with
ExFreePool() and not AFSExFreePool().

Change-Id: Iece2c37d5dc524204cbf3d8d6869148e1a0ce88e
Reviewed-on: http://gerrit.openafs.org/7806
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agorx: fix abort on missing service
Jeffrey Altman [Fri, 20 Jul 2012 14:20:02 +0000]
rx: fix abort on missing service

patchset 1fbe83f9aacfc36a9c426ba1fd18ad7c72869dc1 introduced
the possibility that a NULL connection pointer could be dereferenced.
Prevent it.

Change-Id: Ic813642c8073cedc3e4df578c1b06fecd22cfbdf
Reviewed-on: http://gerrit.openafs.org/7794
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agorx: rxi_ReceiveDataPacket do not set rprev on drop
Jeffrey Altman [Mon, 16 Jul 2012 20:53:32 +0000]
rx: rxi_ReceiveDataPacket do not set rprev on drop

In KERNEL builds if there are no available packet buffers the
new packet is dropped on the floor.  In that case, the call's
rprev field should not be updated because the packet was never
"received" for delivery to the application.

Remove a dead comment from the same block of code.

Change-Id: I12a2b1618a430880d18efee48e6348e6f9ba8119
Reviewed-on: http://gerrit.openafs.org/7784
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: avoid memory overrun during extent release
Jeffrey Altman [Fri, 20 Jul 2012 05:00:38 +0000]
Windows: avoid memory overrun during extent release

While tearing down extents, if an extent is found to be in use
it will be skipped.  Must use 'ulReleaseCount' as the index
into the released extent array.

Change-Id: Iaf8a82c77ac8f4ddb30b35f43a4ce7a70f4a32a8
Reviewed-on: http://gerrit.openafs.org/7796
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: more roken.h include corrections
Jeffrey Altman [Fri, 20 Jul 2012 04:59:33 +0000]
Windows: more roken.h include corrections

Change-Id: I02d4347b870ff1e06b4f144bedb37d50c697c5ba
Reviewed-on: http://gerrit.openafs.org/7795
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agowindows: add afsroken to afssvrcpa NTMakefile
Jeffrey Altman [Fri, 20 Jul 2012 06:54:18 +0000]
windows: add afsroken to afssvrcpa NTMakefile

Change-Id: Iae17ad514bc9ce9a6786e820105a413b31a419ff
Reviewed-on: http://gerrit.openafs.org/7797
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agouafs: avoid unnecessary type-punning
Garrett Wollman [Fri, 20 Jul 2012 22:11:38 +0000]
uafs: avoid unnecessary type-punning

There's no need to declare a separate buffer and initialize a structure
inside it when we can just instantiate the structure directly.

Change-Id: Idbcad31343ce7f074015f5921a4997d3f6c9799a
Reviewed-on: http://gerrit.openafs.org/7798
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agomacos: no bulkstat
Derrick Brashear [Thu, 19 Jul 2012 15:30:02 +0000]
macos: no bulkstat

i have a bulkstat refactor in mind, but this *still* isn't safe
on osx. disable as is on 1.6

Change-Id: I9446a6307e4890e4f7a78ab7fc054d84c39c992b
Reviewed-on: http://gerrit.openafs.org/7792
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoubik: refactor error exits in internal CallIter()
Garrett Wollman [Mon, 16 Jul 2012 02:07:05 +0000]
ubik: refactor error exits in internal CallIter()

Originally, the first store to "code" was dead here.  Refactor the
error exits to follow the non-error exit path, which has the effect
of making the store to "code" live again (and also makes it less
likely that any new cleanup code will be unintentionally omitted).
In the ubik_ClientInit recovery case, handle the possibility that
aproc() returned zero and return UINTERNAL rather than letting the
caller think that this operation succeeded.

Change-Id: Idc198aa7a6e21975faaca9f159e822c9e3f66d98
Reviewed-on: http://gerrit.openafs.org/7776
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agomacos: get more packets if requested
Derrick Brashear [Tue, 17 Jul 2012 19:34:07 +0000]
macos: get more packets if requested

analogous to eead07418f13cd87a90770f03ea5118c546d8f1a for ukernel,
this is for macos' upcall procedure

Change-Id: Ia9d6108d8bb45b9bd33fe9a3af761dfe15248c6e
Reviewed-on: http://gerrit.openafs.org/7788
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agomacos: native apps need 64 bit support
Derrick Brashear [Tue, 17 Jul 2012 04:15:56 +0000]
macos: native apps need 64 bit support

the installer bundle, prefs pane and backgrounder all need to be 64 bit
mode since the system uses them as plugins

Change-Id: Ic2242ed8c993b7ed0a7c15ada78b625799bb446a
Reviewed-on: http://gerrit.openafs.org/7787
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agomacos: fix growlagent icon handling
Derrick Brashear [Tue, 17 Jul 2012 02:32:55 +0000]
macos: fix growlagent icon handling

the whole of the api used for icon handling when you steal it
from a resource fork is deprecated in new macos. fine. we'll just make
an app bundle by cheating, move andy into a standalone icns file,
install him into the "bundle" and open it the macos way.

Change-Id: I94b3fdb5fdb08b28400bd0f6f6a18a07840124df
Reviewed-on: http://gerrit.openafs.org/7786
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agolibafs: pointopoint not supported in ukernel
Derrick Brashear [Mon, 16 Jul 2012 19:55:54 +0000]
libafs: pointopoint not supported in ukernel

afs_server.c:1054: error: 'struct usr_in_ifaddr' has no member named 'ia_dstaddr'

well, for now, bye bye!

Change-Id: I3246a52e0bbdcfb92045de7e21febe0e65255db2
Reviewed-on: http://gerrit.openafs.org/7783
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agomacos: future-proof MakefileProto.DARWIN.in
Derrick Brashear [Mon, 16 Jul 2012 19:16:53 +0000]
macos: future-proof MakefileProto.DARWIN.in

if new cases show up which match the current ones, they just work.
darwin60 and older were already killed from the tree, kill here also

Change-Id: Id246e13985c4752e99f606efd009bc5ce2871691
Reviewed-on: http://gerrit.openafs.org/7782
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agomacos: actually link in shlibs
Derrick Brashear [Mon, 16 Jul 2012 19:09:11 +0000]
macos: actually link in shlibs

we need shlibs in /usr/lib, actually install the links

Change-Id: I172da1d043f70f7335c5d0aaaa9a301eef542243
Reviewed-on: http://gerrit.openafs.org/7781
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agoafs_vcache: remove redundant assignment in afs_FlushAllVCaches()
Garrett Wollman [Mon, 16 Jul 2012 02:47:51 +0000]
afs_vcache: remove redundant assignment in afs_FlushAllVCaches()

Don't do in the body of the loop that which the loop itself
already does.

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

8 years agoafs_server: remove 3 dead assignments in LoopServers, move live one
Garrett Wollman [Mon, 16 Jul 2012 02:16:27 +0000]
afs_server: remove 3 dead assignments in LoopServers, move live one

The assignments to conns, rxconns, and conntimer are all dead, so
remove them.  The assignment to nconns is live, but rather far from
the for loop that actually uses it; move it to just before the loop.

Change-Id: I8daf642630cc2d468ba7db42de46b69cd88fac28
Reviewed-on: http://gerrit.openafs.org/7777
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

8 years agomacos: next version support
Derrick Brashear [Sun, 15 Jul 2012 07:03:00 +0000]
macos: next version support

support things beyond 10.7

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

8 years agovldb_check: off by one host address table error
Michael Meffie [Tue, 26 Jun 2012 19:09:07 +0000]
vldb_check: off by one host address table error

Fix several off-by-one errors when traversing the IpMappedAddr
table in vldb_check. The last index (254) was not checked
in several places.

Change-Id: Ida5039fefa1fa55f6f647dee4ed3a26dd84a85d0
Reviewed-on: http://gerrit.openafs.org/7614
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agolibafs: use afs_ResetVCache in flush volume data
Michael Meffie [Thu, 7 Jun 2012 16:58:54 +0000]
libafs: use afs_ResetVCache in flush volume data

Remove some code duplication by using afs_ResetVCache
in the flush volume data pioctl. Adds a flag to
ResetVCache to avoid unneeded calls to purge dnlc
when reseting all the vcaches in a volume.

Adds freeing of vcache link data in the flush volume
data pioctl.

Change-Id: Ib94e6b4d28078a03d2ffd217998bbc345c4968e4
Reviewed-on: http://gerrit.openafs.org/7538
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

8 years agoutil: eliminate dead store in hostutil_GetHostByName
Garrett Wollman [Mon, 16 Jul 2012 01:53:17 +0000]
util: eliminate dead store in hostutil_GetHostByName

Change-Id: Ibf6712ec239a5f4d163c145f5444c086277e4445
Reviewed-on: http://gerrit.openafs.org/7774
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agorx: dead initialization in rxi_RestoreDataBufs
Garrett Wollman [Sun, 15 Jul 2012 19:41:25 +0000]
rx: dead initialization in rxi_RestoreDataBufs

Don't initialize iov only to overwrite it immediately below.

Change-Id: I5b5660f31e02094a8871a0726dbd5be7ae6f9ea6
Reviewed-on: http://gerrit.openafs.org/7770
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agovol: dead initialization in VWalkVolumeHeaders()
Garrett Wollman [Sun, 15 Jul 2012 19:44:42 +0000]
vol: dead initialization in VWalkVolumeHeaders()

Actually, all of the initializers in this small function are dead.

Change-Id: If89fe3222ec39b34233f92f3aafd458f5723b0c5
Reviewed-on: http://gerrit.openafs.org/7771
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agorx: eliminate dead variable sdl in rx_getAllAddr_internal()
Garrett Wollman [Mon, 16 Jul 2012 02:00:04 +0000]
rx: eliminate dead variable sdl in rx_getAllAddr_internal()

Near as I can tell, sdl is only assigned once, and is never read.

Change-Id: I145be12aef902db3ad149be39c1db360775d4456
Reviewed-on: http://gerrit.openafs.org/7775
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoutil: LogCommandLine: argc is an int, so assert that it's positive
Garrett Wollman [Sun, 15 Jul 2012 18:09:11 +0000]
util: LogCommandLine: argc is an int, so assert that it's positive

In practice, argc should never be negative, but by convention it's
a signed int, so change the assertion to require it to be positive
rather than merely nonzero to get some help to the static analyzer.

Change-Id: I2d6c00b8ad2f8d573d717f1e2b88a4bb902f125c
Reviewed-on: http://gerrit.openafs.org/7765
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agobudb: don't malloc(0) on error condition in GetText()
Garrett Wollman [Sun, 15 Jul 2012 18:18:12 +0000]
budb: don't malloc(0) on error condition in GetText()

malloc(0) is non-portable (may return a pointer to no space, or it
may return NULL.  Just set the result to NULL without bothering to
call malloc(), as is done earlier in this function.

Change-Id: Ic3562e722113a1409ec7c30bd571e9470b3e092b
Reviewed-on: http://gerrit.openafs.org/7766
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoutil: in util_newTable, don't leak Table on error
Garrett Wollman [Sun, 15 Jul 2012 18:54:47 +0000]
util: in util_newTable, don't leak Table on error

It is unlikely that this memory leak actually matters as the caller
will normally just exit.

This whole source file could stand to be reformatted.

Change-Id: Ic5cb52a73ac09ae492c6e6ab606dfaf92a1ab8bf
Reviewed-on: http://gerrit.openafs.org/7767
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agorx: don't leak a connection hash table in unlikely error condition
Garrett Wollman [Sun, 15 Jul 2012 19:01:29 +0000]
rx: don't leak a connection hash table in unlikely error condition

If getsockname() returns an error (which shouldn't be possible),
rx_InitHost would leak a connection hash table (which probably
doesn't matter because the caller will just exit anyway).  Make
the analyzer happy by freeing the memory anyway.

Change-Id: If8e78ebfb787d2dc1c0b9f95f91b6e7510c9e307
Reviewed-on: http://gerrit.openafs.org/7768
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

8 years agovolser: don't derefernce null pointer in copyVnodes()
Garrett Wollman [Sun, 15 Jul 2012 19:13:55 +0000]
volser: don't derefernce null pointer in copyVnodes()

split_volume() can call copyVnodes() with parVnode == NULL, so guard
the one reference to parVnode (a memcpy()) to avoid a fault.

Change-Id: I631a78bcfa6a7a465e997a6714849ca0d2d86f86
Reviewed-on: http://gerrit.openafs.org/7769
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

8 years agoviced: RXAFS_GetVolumeStatus remove access check
Jeffrey Altman [Tue, 3 Jul 2012 19:58:01 +0000]
viced: RXAFS_GetVolumeStatus remove access check

The AFS file server had always performed a PRSFS_READ permission
check on the volume's root directory (1.1) vnode before responding
succesfully to the client.  A successful response contains the
following volume state information:

  Message of the day (if any)
  Offline message (if any)
  Online flag
  InService flag
  Blessed flag
  NeedsSalvage flag
  Type
  MinQuota
  MaxQuota
  BlocksInUse
  PartBlocksAvail
  PartMaxBlocks

All of this information is publicly available to anonymous users
via other services so it is odd that it is hidden from anonymous
cache managers.

As sites begin to tighten the ACLs on volumes due to privacy
and security concerns this READ permission check is begin to
cause problems for Windows clients that rely upon the quota and
block counts to determine whether or not it is likely to be safe
to perform an extending write.  In many environments volumes are
being configured such that the root directory is 'l' for all and
only the subdirectories provide for 'ridw'.  Under these situations
the user is able to read/write the data but cannot determine how
much free space is available.  Since all of the data returned by
RXAFS_GetVolumeStatus is publicly available, the patchset removes
the access check entirely.

Change-Id: Ic8a8d755b0ed61789a49243827083ae97c137560
Reviewed-on: http://gerrit.openafs.org/7705
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agobozo: small-notifier: don't ignore return from system()
Garrett Wollman [Mon, 16 Jul 2012 02:34:42 +0000]
bozo: small-notifier: don't ignore return from system()

Nobody can possibly be using this program, but even so, don't ignore
return values.  Unfortunately, the return value of system() is a bit
complicated to interpret.

Change-Id: I6edbbb7c010b4e534de9033b91849e2d54bf4b25
Reviewed-on: http://gerrit.openafs.org/7778
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agobudb: remove dead assignment in verifyFreeLists()
Garrett Wollman [Mon, 16 Jul 2012 02:42:10 +0000]
budb: remove dead assignment in verifyFreeLists()

Change-Id: I1c4b6e9f4961395815ca379dd031a309b53d5364
Reviewed-on: http://gerrit.openafs.org/7779
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoafs_server: spell IFF_POINTOPOINT consistently
Garrett Wollman [Mon, 16 Jul 2012 01:35:21 +0000]
afs_server: spell IFF_POINTOPOINT consistently

The interface flag has one fewer T than normal English usage would
suggest, so this code was never compiled on systems that don't have
the normally-spelled version as an alias.

Change-Id: I7ae4ab45eda937d122894828ec8fdc104f43392f
Reviewed-on: http://gerrit.openafs.org/7772
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agovolser: dead store in UV_MoveVolume2
Garrett Wollman [Mon, 16 Jul 2012 01:47:35 +0000]
volser: dead store in UV_MoveVolume2

Change-Id: Iee66b99388c7deb0109aaf676ad28ec9c27e6409
Reviewed-on: http://gerrit.openafs.org/7773
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoFBSD: don't reference libc_r; no release OpenAFS works on still uses it
Garrett Wollman [Sun, 15 Jul 2012 15:56:15 +0000]
FBSD: don't reference libc_r; no release OpenAFS works on still uses it

libc_r is the old user-mode threading library.  Modern versions of
FreeBSD don't include it, and the conditionals here that (nearly
always) override it with the correct library, libpthread, are true
on every version of FreeBSD for which OpenAFS might plausibly be
compiled.  So just use the correct library all the time.

Change-Id: I8f813814973cec3173f44636523c3bf0bee27b3e
Reviewed-on: http://gerrit.openafs.org/7764
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoWindows: add cm_ServerListSize()
Jeffrey Altman [Fri, 6 Jul 2012 20:04:28 +0000]
Windows: add cm_ServerListSize()

cm_ServerListSize returns the length of a cm_serverRef_t list.

Change-Id: I6dc1e5e2c23efffe9d6c210ba1c8702d00aabe8f
Reviewed-on: http://gerrit.openafs.org/7759
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: add cm_IsVolumeReplicated()
Jeffrey Altman [Fri, 6 Jul 2012 20:02:38 +0000]
Windows: add cm_IsVolumeReplicated()

Given a file id indicates whether the volume it is located on
is replicated or not.

Change-Id: Icae0a387fc26e2a76b4b6f87fdb5c330da31a96b
Reviewed-on: http://gerrit.openafs.org/7758
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Redesign of server preferences
Jeffrey Altman [Mon, 9 Jul 2012 13:34:22 +0000]
Windows: Redesign of server preferences

Server rankings should be composed from three values:

 1. administrative preferences

 2. network address locality

 3. peer performance (rtt and congestion window)

This ensures that local subnet servers are always
preferred.

Add a new rank for down servers so they are always
sorted las in cm_serverRef lists.

Change-Id: Id00e151fc1acd65db558571e6a3a0e7cfbf3c6ca
Reviewed-on: http://gerrit.openafs.org/7757
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agovlserver: fix logging of ip addresses
Michael Meffie [Wed, 4 Jul 2012 21:54:02 +0000]
vlserver: fix logging of ip addresses

Remove the spurious dates surrounding IP addresess in the VLLog.
Instead of multiple calls to the logging function for a given log
line, format a string containing the addresses and call the log
function once.

Changes the log output from,

  ...  The following fileserver is being registered in the VLDB:
  ...         [Tue Jul  4 14:11:43 2012 192.168.10.128Tue Jul  4 14:11:43 2012 ]
  ...  It will create a new entry in the VLDB.

to,

  ...  The following fileserver is being registered in the VLDB:
  ...         [192.168.10.128]
  ...  It will create a new entry in the VLDB.

Change-Id: I6c4ac2dcc60fe4c5ced79017b91049f0c327e935
Reviewed-on: http://gerrit.openafs.org/7750
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_SyncOp waiting logic
Jeffrey Altman [Tue, 10 Jul 2012 04:13:04 +0000]
Windows: cm_SyncOp waiting logic

Use interlocked increment and decrement to track the waiters
and use the wait queue itself to determine if there are waiters
instead of the CM_SCACHEFLAG_WAITING flag.

Change-Id: I9c570cb228d73253989932149346ecfc45804267
Reviewed-on: http://gerrit.openafs.org/7752
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: remove unused CM_SCACHEFLAGs
Jeffrey Altman [Tue, 10 Jul 2012 04:09:14 +0000]
Windows: remove unused CM_SCACHEFLAGs

CM_SCACHEFLAG_CALLBACK and CM_SCACHEFLAG_STATD were cleared at
various points and tested at various points but never set.
Remove them.

Change-Id: I018c51febf01e1311dc38e3779e8c8880890f20a
Reviewed-on: http://gerrit.openafs.org/7751
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: not all short rx_Read[v] reads are fatal
Jeffrey Altman [Sat, 7 Jul 2012 18:11:23 +0000]
Windows: not all short rx_Read[v] reads are fatal

When performing a RXAFS_FetchData[64] RPC, a short read from
rx_Read[v] is not a reason to stop processing the call unless
it is the first read and the file server FetchData offset bug
has been detected.  If not, only stop processing if the
rx_Read[v] return value is <= 0.

Change-Id: I5b10ce7903686fa3d9c251e6c92c4bcec376ed40
Reviewed-on: http://gerrit.openafs.org/7749
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: record mount point string data version
Jeffrey Altman [Mon, 9 Jul 2012 04:49:13 +0000]
Windows: record mount point string data version

The Windows cache manager stores the mount point or symlink target
string in the cm_scache_t object.  If the string is the empty string
then the target needs to be resolved.  Otherwise it is considered
up to date.  With this approach, care must be taken to ensure that
the string is erased whenever the data version changes.

This patchset records the data version of the mount point target
string in the cm_scache_t object.  Being up to date is determined
by comparing the current data version of the object to the mount
point string version.  A match and the string is up to date.

Change-Id: I4dfdc1af5894548afb35e84e77f7f607674bd7af
Reviewed-on: http://gerrit.openafs.org/7745
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: initialize afsStatus and callback structs
Jeffrey Altman [Sun, 8 Jul 2012 06:00:17 +0000]
Windows: initialize afsStatus and callback structs

In cm_GetBuffer, cm_GetData, cm_VerifyStoreData

Change-Id: I4bb965ead41f99c6c677cce35a784b53b1f6b310
Reviewed-on: http://gerrit.openafs.org/7744
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_MergeStatus unknown interface numbers
Jeffrey Altman [Fri, 6 Jul 2012 19:07:13 +0000]
Windows: cm_MergeStatus unknown interface numbers

Ignore status information if the interface number is unknown.
Currently only version 1 is recognized.

Change-Id: I02618ef81e42ad5b6ef903e2f25598dfb7053ca4
Reviewed-on: http://gerrit.openafs.org/7743
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agovos: Avoid creating volume with the same RO/BK ids
Andrew Deason [Wed, 20 Jun 2012 21:28:51 +0000]
vos: Avoid creating volume with the same RO/BK ids

If we specified an RW id of 5, an RO id of 6, and no BK id, this code
would assign the BK id to RW+1, or 6. This gives the RO and BK volumes
the same volume id, which is a mistake. Choose a different id instead.

Change-Id: I7910008dd6147a95d482337f91926e9e0d924b9e
Reviewed-on: http://gerrit.openafs.org/7603
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

8 years agoviced: fsprobe needs MT_LIBS
Andrew Deason [Fri, 29 Jun 2012 04:16:33 +0000]
viced: fsprobe needs MT_LIBS

fsprobe is built pthreaded, so it needs MT_LIBS; otherwise HP-UX and
possibly other platforms complain about missing pthread symbols. Just
copy the libs from the fileserver link line.

Change-Id: I78e69c9ea45e983e997b1bc1bb59f97ee07c3e2f
Reviewed-on: http://gerrit.openafs.org/7609
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoptserver: unused by set variable 'eid_s'
Jeffrey Altman [Fri, 6 Jul 2012 04:29:59 +0000]
ptserver: unused by set variable 'eid_s'

Third declaration of 'eid_s' in WalkNextChain() set but unused.
[-Werror=unused-but-set-variable]

Change-Id: I7a4e2ea3dea3d58379e31d3c6cb4b3169a882bce
Reviewed-on: http://gerrit.openafs.org/7737
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: interlocked ops for osi lock flags
Jeffrey Altman [Thu, 5 Jul 2012 20:55:03 +0000]
Windows: interlocked ops for osi lock flags

Use interlocked operations to set and clear the flags in the osi
mutex and readwrite lock objects.

Change-Id: I92089650d3474efb76c45293b5209b3e2350d983
Reviewed-on: http://gerrit.openafs.org/7720
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: use spin counts for osi base locks
Jeffrey Altman [Thu, 5 Jul 2012 20:52:51 +0000]
Windows: use spin counts for osi base locks

On multiprocessor systems, spin counts are faster than entering
a processor wait state when there is critical section contention.
Microsoft recommends a count of 4000.  This feature is only available
on XP and above which is fine since OpenAFS master and 1.7 no longer
support Windows 2000.

Change-Id: I1b40d00b2a91e60e1676a53e1c38eb5f9bfadc69
Reviewed-on: http://gerrit.openafs.org/7719
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: X86 DEBUG Interlocked Or and And
Jeffrey Altman [Fri, 6 Jul 2012 01:13:21 +0000]
Windows: X86 DEBUG Interlocked Or and And

X86 DEBUG builds do not have a native InterlockedOr or
InterlockedAnd.  Therefore, we must provide our own.

Change-Id: I48f86feb58c96e327500e802340a213c0f70d5e4
Reviewed-on: http://gerrit.openafs.org/7726
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agovldb_check: remove unused functions
Michael Meffie [Thu, 28 Jun 2012 21:24:49 +0000]
vldb_check: remove unused functions

Remove the readSIT function, which has been unused
since the IBM days.  Remove the commented out and
unimplemented writeUbikHeader stub.

Change-Id: Ic2cebba6ddf803a537a6b1e5f24db51560209436
Reviewed-on: http://gerrit.openafs.org/7613
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agodoc: Add fs bypassthreshold man page
Andrew Deason [Thu, 28 Jun 2012 23:56:47 +0000]
doc: Add fs bypassthreshold man page

FIXES 130050

Change-Id: I0ffc7b93ed9dd93765a25efd60fe3430a86366cf
Reviewed-on: http://gerrit.openafs.org/7602
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: remove used 'deltas' from cm_CheckServersMulti()
Jeffrey Altman [Thu, 5 Jul 2012 22:25:09 +0000]
Windows: remove used 'deltas' from cm_CheckServersMulti()

Change-Id: I9dd5e72a8fe748a06aa4d008888a41017d60570c
Reviewed-on: http://gerrit.openafs.org/7725
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Apply cm_GetVolServerList() to cm_ConnFromVolume()
Jeffrey Altman [Thu, 5 Jul 2012 22:22:24 +0000]
Windows: Apply cm_GetVolServerList() to cm_ConnFromVolume()

Use cm_GetVolServerList() in cm_ConnFromVolume() to ensure an
error is returned instead of dereferencing a NULL pointer if
the serverRef list for the requested volume cannot be obtained.

Change-Id: I265b7e8b64fcf6b4444c7d504e5109d67fa48089
Reviewed-on: http://gerrit.openafs.org/7724
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Apply cm_GetVolServerList() to cm_Analyze()
Jeffrey Altman [Thu, 5 Jul 2012 22:21:51 +0000]
Windows: Apply cm_GetVolServerList() to cm_Analyze()

Using cm_GetVolServerList() it is possible to simplify
the logic in cm_Analyze().  It is no longer necessary
for cm_Analyze() to call cm_GetServerList() which must
obtain its own reference the the cm_volume_t object via
a fileId lookup.  This reduces lock contention and makes
the code a bit more readable.

Change-Id: I3a39458676af06fd473489d639bf9d2fe80c0b9d
Reviewed-on: http://gerrit.openafs.org/7723
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Add cm_GetVolServerList
Jeffrey Altman [Thu, 5 Jul 2012 22:16:09 +0000]
Windows: Add cm_GetVolServerList

cm_GetVolServerList() is a wrapper for cm_GetVolServers() that
returns CM_ERROR_NOSUCHVOLUME if the server list cannot be
obtained for the requested volume.

Change-Id: I1ab21b3f6ca71507cc382738cb50f87e92ee2ce2
Reviewed-on: http://gerrit.openafs.org/7722
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Modify cm_GetVolServers and cm_GetServerList
Jeffrey Altman [Thu, 5 Jul 2012 22:06:13 +0000]
Windows: Modify cm_GetVolServers and cm_GetServerList

Move the determination of the 'replicated' state into
cm_GetVolServers() so that cm_GetServerList() and
cm_ConnFromVolume() can be implemented without duplicating
the resolution of the cm_vol_state_t object.

Change-Id: I355cb2cdf7e327742df7936171ad3dc604f135df
Reviewed-on: http://gerrit.openafs.org/7721
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_ConnByServer hold userp->mx only while necessary
Jeffrey Altman [Thu, 5 Jul 2012 18:54:04 +0000]
Windows: cm_ConnByServer hold userp->mx only while necessary

The cm_userp_t does not need to be locked while the cm_conn_t
force new connection processing is taking place.

Change-Id: Ia3711d393d60382b18f7e45621561d2015b97af7
Reviewed-on: http://gerrit.openafs.org/7718
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_ConnByServer add conn to list after init
Jeffrey Altman [Thu, 5 Jul 2012 18:33:50 +0000]
Windows: cm_ConnByServer add conn to list after init

Do not add a newly created cm_conn_t to the cm_server_t connsp
list until after the object is fully initialized.

Change-Id: Ic5605abefb51d9342f0d249903e13e99b90452b7
Reviewed-on: http://gerrit.openafs.org/7717
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_HaveCallback optimize .readonly
Jeffrey Altman [Thu, 5 Jul 2012 15:03:35 +0000]
Windows: cm_HaveCallback optimize .readonly

If the cm_scache_t has a registered callback, there is no reason
to obtain a volume reference for a .readonly.  Just use the
callback.

Change-Id: I40a696b9c5fa2e8104837871236c41c338dfbdf9
Reviewed-on: http://gerrit.openafs.org/7716
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: RDR RXAFS_GetVolumeStatus vs 1.1 'l' only
Jeffrey Altman [Tue, 3 Jul 2012 19:38:33 +0000]
Windows: RDR RXAFS_GetVolumeStatus vs 1.1 'l' only

The Windows redirector relies upon the ability to obtain volume
status information to decide whether a file system volume object
can be created and whether or not an extending write can be
permitted.  As of this writing, the file server always performs
a PRFS_READ access check on the volume's root directory (1.1)
vnode as a condition for releasing the volume state information
which includes:

  Message of the day (if any)
  Offline message (if any)
  Online flag
  InService flag
  Blessed flag
  NeedsSalvage flag
  Type
  MinQuota
  MaxQuota
  BlocksInUse
  PartBlocksAvail
  PartMaxBlocks

All of this information is publicly available to anonymous users
via "vos examine" so it is odd that it is hidden from anonymous
cache managers.  When RXAFS_GetVolumeStatus fails, the AFS redirector
was failing to create a file system object for the AFS volume.  That
in turn prevented the volume from being accessed even if the user
had 'l' in the root directory and full access everywhere else.

This patchset will make up fake data for the AFS volume if the
RPC fails.  However, doing so does have consequences.  The client
will be unable to make an accurate determination regarding free space
on the file server.  As a result, an extending write may be permitted
which writes data into the system page cache which in turn cannot
be written to the file server.   Such data will be lost and unrecoverable.

Change-Id: Ic818ce9d51893181941f41d6628394b5917dc811
Reviewed-on: http://gerrit.openafs.org/7704
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: HaveCallback vs readonlyVolumeVersioning
Jeffrey Altman [Tue, 3 Jul 2012 16:51:27 +0000]
Windows: HaveCallback vs readonlyVolumeVersioning

If the cm_scache_t volumeCreationDate is 0, the field is not
valid for comparison.  Add a check during the have callback test.

Change-Id: I95bbf229d9ee1c7acfd4b7fe30242faaa4c22cf6
Reviewed-on: http://gerrit.openafs.org/7680
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: HaveCallback vs OfflineRO Is Valid
Jeffrey Altman [Tue, 3 Jul 2012 16:49:53 +0000]
Windows: HaveCallback vs OfflineRO Is Valid

commit f716962ab41847af4450d0a361f5de9195b32ed0
inadvertently broke the offline .readonly is valid functionality
when readonly volume versioning is disabled.  Restore it.

Change-Id: Iae282f394d49ca5f558a62819bc2bbd8dd7f152e
Reviewed-on: http://gerrit.openafs.org/7679
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_DiscardSCache volumeCreationDate
Jeffrey Altman [Tue, 3 Jul 2012 16:42:52 +0000]
Windows: cm_DiscardSCache volumeCreationDate

commit f716962ab41847af4450d0a361f5de9195b32ed0
clears the cm_scache_t volumeCreationDate field.
It shouldn't because the volumeCreationDate is not a property of
the callback.  It is a property of the status information which
does not change simply because the callback expires.

Change-Id: I3f73cf89588de6c1c87434cd04b86939d45cfa43
Reviewed-on: http://gerrit.openafs.org/7678
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: add missing items to 'clean' rules
Jeffrey Altman [Fri, 29 Jun 2012 04:35:49 +0000]
Windows: add missing items to 'clean' rules

Change-Id: Ibf7ce081d789a5940033ecdcfd62515824176368
Reviewed-on: http://gerrit.openafs.org/7653
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: afslogon expand short domain names
Jeffrey Altman [Tue, 26 Jun 2012 03:06:30 +0000]
Windows: afslogon expand short domain names

Depending on how the user specifies the domain name during login,
NPLogonNotify may be given a short or a full domain or kerberos
realm name.  If the name is the short name, attempt to expand it
automatically if there is no 'realm' configured for the short
domain name.

This patchset relies upon data in the local registry instead of
using an API such as NameTranslate in order to avoid network
queries to the domain controller that might not be reachable.

Change-Id: Ib2cd08bca5223fa847a462520074bb758191539d
Reviewed-on: http://gerrit.openafs.org/7650
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: afscreds import lsa before renew expiring
Jeffrey Altman [Mon, 25 Jun 2012 05:38:41 +0000]
Windows: afscreds import lsa before renew expiring

Change-Id: I53d3d000a0970089417d7855fda7a97ba4e61000
Reviewed-on: http://gerrit.openafs.org/7649
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: Remove HELP from afscreds
Jeffrey Altman [Mon, 25 Jun 2012 05:33:02 +0000]
Windows: Remove HELP from afscreds

The old .hlp format is no longer supported and the text of the
help files is long out of date.  Remove the HELP buttons from
the dialogs and all references to WM_HELP message processing
from the application.

Change-Id: I4c735993c7a79d46cbbc49440aa6d77b6861ff85
Reviewed-on: http://gerrit.openafs.org/7648
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: afslogon major refactoring NPLogonNotify()
Jeffrey Altman [Tue, 19 Jun 2012 02:03:21 +0000]
Windows: afslogon major refactoring NPLogonNotify()

This is a major refactoring of NPLogonNotify() that is meant
to reduce redundancy and add functionality.  Key highlights
include:

 * New Domain\user hierarchy that permits configuration
   settings to be applied on a per user basis instead of a
   domain basis.  As part of the extension the username itself
   can be mapped.

 * Attempt to import the MSLSA credentials prior to performing
   KFW_AFS_get_cred().

 * Do not perform redundant KFW_AFS_get_cred() calls.

 * Add a flag to indicate if the authentication name is the
   LSA principal name.

 * Add more debugging messages.

Change-Id: Iacd6c6b4d3fe25f07a9c6982d0859eee22d09fe8
Reviewed-on: http://gerrit.openafs.org/7635
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: afslogon cast away warnings
Jeffrey Altman [Tue, 19 Jun 2012 01:58:26 +0000]
Windows: afslogon cast away warnings

cast away size_t to int warnings in 64-bit builds.

Change-Id: I1200fe6235d75f87c5d8e78496baae29b3c5242c
Reviewed-on: http://gerrit.openafs.org/7634
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoRemove empty Makefile continuation lines
Andrew Deason [Fri, 29 Jun 2012 17:36:36 +0000]
Remove empty Makefile continuation lines

HP-UX make gets confused by constructs like:

   FOO = bar \

   BAZ = quux

Where a line continuation is followed by an empty line. So, get rid of
all of these in the tree. Not all of them matter, but removing all of
them makes it easier to find these, and catch them in the future.

Change-Id: I7d5ef000b5b55de4b71c183589fbfe36e3880ba1
Reviewed-on: http://gerrit.openafs.org/7611
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

8 years agoWindows: cm_UpdateVolumeLocation misplaced lock
Jeffrey Altman [Mon, 2 Jul 2012 02:19:08 +0000]
Windows: cm_UpdateVolumeLocation misplaced lock

The volume->mx was obtained in the wrong place which resulted
in the potential of a panic caused by obtaining the mutex when
it was already held.

Change-Id: I812ed57bef93c60358591a2a1e19009fc6bb1a2d
Reviewed-on: http://gerrit.openafs.org/7654
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>