openafs.git
10 years agoauth: Add the ktc_ListTokensEx function
Simon Wilkinson [Sat, 11 Sep 2010 09:11:57 +0000]
auth: Add the ktc_ListTokensEx function

Add a ktc_ListTokensEx function which uses the new GetToken pioctl
to implement the same functionality as the old ktc_ListTokens call.

As with ktc_ListTokens this is hugely inefficient, as it gets a
compelete token structure from the kernel, then throws it away to
return just the cell which the token is for.

Change-Id: Idf3daa536c6a04d397691d0cc6fcb2c59f9f444c
Reviewed-on: http://gerrit.openafs.org/2748
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoRx: Move rxperf test application to src/rx/tests
Jeffrey Altman [Sun, 19 Sep 2010 15:03:50 +0000]
Rx: Move rxperf test application to src/rx/tests

rxperf is a test application.  Move it to the tests directory

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

10 years agoRx: cleanup testclient and testserver test applications
Jeffrey Altman [Sun, 19 Sep 2010 16:20:01 +0000]
Rx: cleanup testclient and testserver test applications

Permit testclient and testserver to be built on Windows as
pthreaded applications.

Remove warnings.  Fix prototypes.  Remove variable declarations
for rx library variables defined in rx_globals.h.

Increase the buffer sizes.  Disable use of packet dropping when
the library is built without RXDEBUG.

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

10 years agoauthcon: Use ktc_GetTokenEx in ClientAuthToken
Simon Wilkinson [Wed, 8 Sep 2010 07:12:41 +0000]
authcon: Use ktc_GetTokenEx in ClientAuthToken

Use ktc_GetTokenEx, and the related token utilities to check for a
users tokens, rather than using the legacy ktc_GetToken

Export the necessary symbols from libafsauthent on Windows to be able
to do this.

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

10 years agoWindows: Add new token interface with stub for ktc_GetTokenEx
Jeffrey Altman [Thu, 16 Sep 2010 00:48:30 +0000]
Windows: Add new token interface with stub for ktc_GetTokenEx

The Windows build was broken by the addition of dependencies on
token_FreeSet, ktc_GetTokenEx, etc.   Permit the build to continue.
The ktc_GetTokenEx implementation will depend on the creation of
a new Windows pioctl for the call.

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

10 years agoRename kauth/token.c as kauth/katoken.c
Simon Wilkinson [Thu, 16 Sep 2010 06:09:20 +0000]
Rename kauth/token.c as kauth/katoken.c

The kauth 'token.c' collides with the same file in auth when doing
Windows builds. As kauth is the legacy package, rename its source
file, and update the build system to take account of this.

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

10 years agoRX: Make rxi_Alloc return (void *)
Simon Wilkinson [Sat, 4 Sep 2010 14:29:03 +0000]
RX: Make rxi_Alloc return (void *)

rxi_Alloc returns a pointer to an anonymous data block. Make its
return value (void *) rather than (char *), so that it can be
called in the same way as malloc(), and not require casting.

Change-Id: Ib3094ad0273c62a4430eb56d35e3df68a550d338
Reviewed-on: http://gerrit.openafs.org/2738
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoLinux: print after BUG() is pretty useless
Simon Wilkinson [Sun, 12 Sep 2010 11:07:59 +0000]
Linux: print after BUG() is pretty useless

Calling BUG() panics the machine, so having a print statement with
further debugging information after it doesn't help much.

Swap the ordering, so we at least see the message.

Change-Id: I3aa3b8ba5faaa40cef7bb046093b322212eea2b8
Reviewed-on: http://gerrit.openafs.org/2754
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovolser: Delete timed-out temporary volumes
Andrew Deason [Tue, 14 Sep 2010 16:15:22 +0000]
volser: Delete timed-out temporary volumes

When a transaction times out on a volume, delete the volume if it is a
temporary volume (destroyMe is set). This prevents half-created
volumes from accumulating, which can take up space and screw up
certain vol ops in some versions.

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

10 years agolibafs: Fix pioctl get/putInt alignment issues
Andrew Deason [Wed, 15 Sep 2010 16:19:33 +0000]
libafs: Fix pioctl get/putInt alignment issues

We don't know if the buffer for pioctl data is aligned to anything, so
we can't just dereference the given pointer as an int or anything
else. So, just memcpy the data in for ints and such; conveniently,
afs_pd_getBytes and afs_pd_putBytes can do this for us, so just use
that.

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

10 years agovlserver: Set but not used variables
Marc Dionne [Fri, 10 Sep 2010 23:55:39 +0000]
vlserver: Set but not used variables

Remove some variables that are set but never used in the vlserver
directory:
- n1,n2,n3 and n4 in vlclient.c appear to have never been used even
in the original IBM code
- some variables in vldb_check.c that are no longer used after some
recent changes

Spotted by gcc 4.6

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

10 years agobutc: Set but unused variables
Marc Dionne [Sat, 11 Sep 2010 17:23:11 +0000]
butc: Set but unused variables

Remove unused variable taskId

writeData() systematically returns 0, so make it void and adapt
call sites that assigned the return value but never used it.
Also move the function up in the file to avoid the need for a
forward declaration, and make it static since it's only used here.

Spotted by gcc 4.6

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

10 years agolibafs: Fix compile errors in afs_nfsclnt.c
Andrew Deason [Wed, 15 Sep 2010 18:40:19 +0000]
libafs: Fix compile errors in afs_nfsclnt.c

 - tokenUnion is a union, not a struct

 - 'struct rxkadToken' typo

 - 'tokenPtr' not 'tokenptr'

Change-Id: I7e0fa4f2d34ba4bd68345e9625f40d1d7301411e
Reviewed-on: http://gerrit.openafs.org/2764
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

10 years agovol: Set but not used variables
Marc Dionne [Sat, 11 Sep 2010 16:14:09 +0000]
vol: Set but not used variables

Fix some set but unused variable warnings in the vol directory.

In VDetachVolume_r, much of the code and variables are only
useful in the FSSYNC_BUILD_CLIENT case.  Scope the code
accordingly.

forcefree is only used in the AFS_DEMAND_ATTACH_FS case, so
scope code that sets it accordingly.

Spotted by gcc 4.6

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

10 years agoLinux: normalize error return for emulated syscalls
Marc Dionne [Thu, 1 Jul 2010 15:38:20 +0000]
Linux: normalize error return for emulated syscalls

pagsh and other code expect setpag() and pioctl() to behave like
a regular syscall or pioctl, that is to return -1 on error, with
errno set to the specific error code.
On Linux, the underlying emulation does a straight return of any
error code it gets from the ioctl, and errors are not properly
caught by the callers.

As an example, pagsh won't detect an error from setpag such as
exceeding a keyring quota limit.  With this patch, the user
will see this:

$ pagsh
setpag: Disk quota exceeded
sh-4.1$

The code in proc_afs_syscall is modified to set errno to the error
code and to set errorcode to -1 in case of error.

proc_afs_sycall is reindented while we're changing code there.

FIXES 126230

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

10 years agodisable Rx packet tracking
Derrick Brashear [Wed, 15 Sep 2010 08:26:13 +0000]
disable Rx packet tracking

minimize the impact of Rx packet tracking. in particular, do no
extra queue scans, which means the rest of the state which tracks
where a packet is now isn't of use. make it possible to re-enable.

Change-Id: I5b9ed039a0394edcea48bb46729cd2ce2f71d4b9
Reviewed-on: http://gerrit.openafs.org/2762
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoAutomatically find all pod.in files and generate .pods files
Steve Simmons [Sat, 4 Sep 2010 16:14:17 +0000]
Automatically find all pod.in files and generate .pods files

Change-Id: I9334ed4fde8df63f278b6ef07bc0eddebfc71bf0
Reviewed-on: http://gerrit.openafs.org/2720
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoDAFS: raise vhashsize limit
Andrew Deason [Wed, 8 Sep 2010 19:32:35 +0000]
DAFS: raise vhashsize limit

Raise the maximum specifiable vhashsize to 28 (from 14). Specifying a
vhashsize over 14 can be reasonable if you expect to have a few
million volumes on a fileserver.

Change-Id: I90b17209fa25032f6e2bdec9abf80e578fc9b486
Reviewed-on: http://gerrit.openafs.org/2725
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoDAFS: Do not ignore out-of-range -vhashsize
Andrew Deason [Thu, 2 Sep 2010 17:56:28 +0000]
DAFS: Do not ignore out-of-range -vhashsize

If the specified -vhashsize is out of the 6-14 range, do not just
ignore it. Instead, note the error and quit.

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

10 years agoAlways check return code from iod_Write
Marc Dionne [Sat, 11 Sep 2010 14:46:50 +0000]
Always check return code from iod_Write

The return code from iod_Write is checked at every call site
in the file, except this one.  Check it, and return VOLSERDUMPERROR
if appropriate.

Spotted by a set but unused warning from gcc 4.6

Change-Id: I84f38a4b3b1e37c25be9c76702b0d2818058454e
Reviewed-on: http://gerrit.openafs.org/2733
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agorx: Set but not used variables
Marc Dionne [Sat, 11 Sep 2010 18:57:17 +0000]
rx: Set but not used variables

Remove some unused variables in the rx code.
These generate warnings with gcc 4.6.

Change-Id: I1e19c82cd05bcd47a65d77079019f1f0b6704826
Reviewed-on: http://gerrit.openafs.org/2732
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoauth: Make token_FreeSet work on an empty set
Simon Wilkinson [Sat, 11 Sep 2010 22:14:42 +0000]
auth: Make token_FreeSet work on an empty set

If the set passed to token_FreeSet is already freed, just
make the funciton a no-op, rather than segfaulting.

Change-Id: I41342d1c7bd94bcf20ad67407b28d9ffcccf3c07
Reviewed-on: http://gerrit.openafs.org/2751
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoLinux: Move keyring includes where they're needed
Simon Wilkinson [Sat, 11 Sep 2010 11:43:35 +0000]
Linux: Move keyring includes where they're needed

We don't need the keyring headers in every file, so reduce
namespace pollution by just including them in osi_groups.c, which is
the only place that uses them.

Change-Id: I1f8af43439d63bec4df278209d2bb5c86b1c4d05
Reviewed-on: http://gerrit.openafs.org/2746
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoshlibafsrpc: Export additional symbols
Simon Wilkinson [Thu, 9 Sep 2010 08:14:30 +0000]
shlibafsrpc: Export additional symbols

Export additional symbols from shlibafsrpc. These symbols are required
in order to be able to produce dynamically linked security modules that
interface with libafsrpc.

Change-Id: Ic221522a10be6714835dc37dbeee22dfd3b728cc
Reviewed-on: http://gerrit.openafs.org/2745
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoIgnore *.dSYM files in working directory
Simon Wilkinson [Wed, 8 Sep 2010 07:24:55 +0000]
Ignore *.dSYM files in working directory

Failed Mac OS X debugging builds leave *.dSYM directories lying
around the tree, which just litter the contents of "git status".

So, ignore them.

Change-Id: Ic2b79f299d724b770bf83cb24f2aac7c4063efdb
Reviewed-on: http://gerrit.openafs.org/2744
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoAdd config.log to gitignore globally
Simon Wilkinson [Wed, 8 Sep 2010 07:22:57 +0000]
Add config.log to gitignore globally

When you end up explicitly regenerating chosen Makefiles by
running ../../config.status Makefile, the working tree ends up littered
with config.log files.

Currently, we only ignore config.log in the top directory - extend this
so that it's ignored across the tree.

Change-Id: If3cfec82fbf78e97ee769b36315ba23dcfe8a950
Reviewed-on: http://gerrit.openafs.org/2743
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoauth: Add a gitignore file for the test directory
Simon Wilkinson [Wed, 8 Sep 2010 07:31:02 +0000]
auth: Add a gitignore file for the test directory

The auth/test directory is optionally built, and so had missed getting
a .gitignore file. Add one now.

Change-Id: I0cd49d05446871a250f93123435c4b2ac19e45e5
Reviewed-on: http://gerrit.openafs.org/2742
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agopam: Remove unused library definitions
Simon Wilkinson [Thu, 9 Sep 2010 08:04:21 +0000]
pam: Remove unused library definitions

Change-Id: I7db8d50b27c0135e89ef15db9302f452e01c8b8a
Reviewed-on: http://gerrit.openafs.org/2741
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoaklog: Fix some format warnings
Simon Wilkinson [Mon, 6 Sep 2010 08:38:47 +0000]
aklog: Fix some format warnings

Fix some format warnings (size_t vs int) which only appear when we're
building with Heimdal.

Change-Id: I7313ea1a7e01532b11fc6039a8a56e0fd874c347
Reviewed-on: http://gerrit.openafs.org/2740
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoaklog: Fix weak_crypto tests
Simon Wilkinson [Mon, 6 Sep 2010 08:37:23 +0000]
aklog: Fix weak_crypto tests

The tests for the various ways of enabling weak cryptography fail
with current Heimdal master, because it defines krb5_allow_weak_crypto
but does not prototype it.

Fix this by testing for the Heimdal version (which MIT does not provide)
first, and only if that's not available, try to use allow_weak_crypto.

Change-Id: I559d5fd40c196fefc947dd0f7b10ed78fbd2c7e6
Reviewed-on: http://gerrit.openafs.org/2739
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoRX: Make the sample client and server build
Simon Wilkinson [Wed, 1 Sep 2010 10:09:46 +0000]
RX: Make the sample client and server build

Make the RX sample client and server build again

Change-Id: I81ce12eadcb4150dd503e41f9a7fd1a850d31a11
Reviewed-on: http://gerrit.openafs.org/2737
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovlserver: Use com_err for Ubik error messages
Simon Wilkinson [Sat, 11 Sep 2010 07:25:15 +0000]
vlserver: Use com_err for Ubik error messages

Use com_err to return a sensible string, rather than just an error code,
for errors with Ubik initialisation.

This has the specific benefit that the error when the database directory
doesn't exist, or isn't readable, becomes

    Ubik init failed: file not found when processing dbase"
rather than
    Ubik init failed with code 5382

Change-Id: I5f770377668a7f545cad7e422f28afd7c9f9888d
Reviewed-on: http://gerrit.openafs.org/2735
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoWarning fix for gcc 4.5 "operation may be undefined" warnings
Marc Dionne [Fri, 10 Sep 2010 01:02:05 +0000]
Warning fix for gcc 4.5 "operation may be undefined" warnings

The inc_header_word and set_header_word macros make repeated use of their
argument, which triggers many (~30) warnings with gcc 4.5, like this one:

./ptutils.c:473:6: warning: operation on â€˜cheader.foreigncount’ may be undefined

Removing the cast to afs_int32 in the macros gets rid of the warning,
and should be safe since we're just getting a small positive integer value
- the offset of the member in the structure - and passing it to the
pr_Write function which expects an afs_int32.

Change-Id: Ie493520f874cddbb4b7f9f7ebe4b3922a848d0d0
Reviewed-on: http://gerrit.openafs.org/2729
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

10 years agoudebug: Always show tidCounter
Andrew Deason [Fri, 10 Sep 2010 16:17:40 +0000]
udebug: Always show tidCounter

If the queried site doesn't have an active write transaction,
currently udebug doesn't show the tidCounter. The tidCounter can still
be useful to know (especially since some sites will become buggy when
tidCounter rolls over), so always show it.

This adds the "The last trans I handled was" message to udebug.

Change-Id: I10d9ab6ff07188d17df4d8022adf8bb125eb772a
Reviewed-on: http://gerrit.openafs.org/2730
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agonamei: Do not remove n_voldir1
Andrew Deason [Thu, 9 Sep 2010 19:10:01 +0000]
namei: Do not remove n_voldir1

When removing data directories in namei_RemoveDataDirectories, do not
remove the n_voldir1 directory (directory X in /vicepa/AFSIDat/X).
Removing this directory can race against the creation of an entirely
unrelated volume, causing the create op to fail (since it tries to
create a directory in a directory that no longer exists).

We don't currently have the necessary locking to make this safe, and
since the overhead of n_voldir1 existing is pretty negligible, just
leave it there. Also add some comments briefly justifying this.

Note that other similar races probably exist for directories under
n_voldir1, but they would only be between volumes in the same VG, and
so are much less likely to occur.

Change-Id: I5eac894cdbdb3fd1d74d8a0fc226df03686ceeef
Reviewed-on: http://gerrit.openafs.org/2727
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agomanpage correction for restorevol -file option
Michael Meffie [Thu, 9 Sep 2010 19:22:29 +0000]
manpage correction for restorevol -file option

The restorevol -file option specifies which file to read.

Change-Id: I5c03eaaf8bf82fc6d3fb83ff08e8278257e7b65f
Reviewed-on: http://gerrit.openafs.org/2728
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovol: Add VInit cond var and remove busywaits
Andrew Deason [Thu, 2 Sep 2010 16:25:27 +0000]
vol: Add VInit cond var and remove busywaits

In DAFS, FSYNC_sync was waiting for VInit to reach at least 2 by
looping around pthread_yield(). For a server with a large number of
volumes, it can take a while for volumes to preattach, and so we are
effectively busy-waiting for preattach to finish. This can slow
fileserver startup and peg the cpu.

So instead, add a condition variable for when VInit changes, and wait
on that. Also modify other checkers of VInit to use the cond var.

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

10 years agonamei: Limit traversal when removing data dirs
Andrew Deason [Thu, 2 Sep 2010 20:05:21 +0000]
namei: Limit traversal when removing data dirs

namei_RemoveDataDirectories currently calls delTree with 'tree'
pointing to the part of the path immediately following n_base (i.e.
starting at the beginning of n_voldir1). This causes delTree to
traverse all of n_voldir1, trying to delete every directory it finds.

Since we are typically only trying to remove a single volume when
calling namei_RemoveDataDirectories, instead call delTree with 'tree'
pointing to immediately after n_voldir1, and beginning at n_voldir2
and try to just rmdir n_voldir1 afterwards. This way, we do not
traverse a large fraction of the entire partition when just trying to
delete a single volume, and so can significantly speed up volume
removals.

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

10 years agoAdd new file src/venus/cacheout to things that should be ignored.
Steve Simmons [Tue, 7 Sep 2010 21:38:27 +0000]
Add new file src/venus/cacheout to things that should be ignored.

Change-Id: I57dec46b954ad4c4252997a0dec1db8e2090289b
Reviewed-on: http://gerrit.openafs.org/2719
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoubik recovery and remote use correct file number
Derrick Brashear [Wed, 8 Sep 2010 00:31:20 +0000]
ubik recovery and remote use correct file number

the file propagation "out of band" changes should not hardcode recovery
on file 0, but instead work on any file the interface is acting on.
use the provided file number.

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

10 years agoWindows: 1.5.77 Change Log summary
Jeffrey Altman [Tue, 7 Sep 2010 18:35:22 +0000]
Windows: 1.5.77 Change Log summary

Change-Id: Ic0362956470ddb76fac64d21927b3e51b7980ea6
Reviewed-on: http://gerrit.openafs.org/2710
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: Improve SMB detection of Local System account
Jeffrey Altman [Tue, 7 Sep 2010 12:21:12 +0000]
Windows: Improve SMB detection of Local System account

Depending on the authentication method, the smb session authenticated
name for the "local system" account may be the nul string.  In this
case it is impossible to use the name to determine if the authenticated
entity is the "local system" account as required by smb_SetToken.
To work around this problem, smb_AuthenticateUserExt() will now obtain
the Security Identifier (SID) for the authenticated account.  The string
representation of the SID will be used in place of the name by
smb_ReceiveV3SessionSetupX() when constructing the smb_user_t object.
A new flag, SMB_USERNAMEFLAG_SID, indicates when the name is in fact
a SID.

smb_userIsLocalSystem() checks for the SMB_USERNAMEFLAG_SID flag and
performs a SID comparison when it is set.

smb_SetToken() will accept either MACHINE\user or a SID string as
the smbname.  It will obtain the SID if possible and create a SID-based
smb_user_t.

It is possible that a SYSTEM service will use an anonymous (S-1-5-7)
SMB connection.  In that case, we also check the RPC Impersonation
SID to see if it is SYSTEM.  If so, the RPC identity supercedes the
SMB identity for SetToken.

smb_IoctlRead, smb_IoctlV3Read and smb_IoctlRawRead are now all
consistent with regards to name processing.

Fixed a couple of comments as well.

FIXES 128022

LICENSE MIT

Change-Id: I8f9ccd4a4dddea52d151288855c7e129e2f31b28
Reviewed-on: http://gerrit.openafs.org/2709
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: revise NTSTATUS response for ALLBUSY, ALLOFFLINE, and ALLDOWN
Jeffrey Altman [Fri, 3 Sep 2010 04:02:17 +0000]
Windows: revise NTSTATUS response for ALLBUSY, ALLOFFLINE, and ALLDOWN

Replace STATUS_IO_TIMEOUT with RPC_NT_SERVER_TOO_BUSY for CM_ERROR_ALLBUSY.

Replace STATUS_PATH_NOT_FOUND with RPC_NT_SERVER_UNAVAILABLE for
CM_ERROR_ALLOFFLINE and CM_ERROR_ALLBUSY.

These errors provide a more meaningful message to end users when
a failure occurs.

LICENSE MIT

Change-Id: I34483f8f696285477fa0f8a8dac3b0ff33dee6b4
Reviewed-on: http://gerrit.openafs.org/2663
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: Modify signature of buf_CleanAsync and buf_CleanAsyncLocked
Jeffrey Altman [Fri, 3 Sep 2010 01:17:24 +0000]
Windows: Modify signature of buf_CleanAsync and buf_CleanAsyncLocked

The buf_CleanAsync() and buf_CleanAsyncLocked() signature does
not include a cm_scache_t pointer even though buf_CleanAsyncLocked()
needs a pointer to the matching cm_scache_t object.  There are
some calls when the cm_scache_t object is already known.  For those
cases it is more efficient to avoid the additional lookup especially
when buf_CleanAsync*() is being called on every buffer associated
with the cm_scache_t object.

At the same time add a flags field and a constant
CM_BUF_WRITE_SCP_LOCKED to permit the lock state of the cm_scache_t
to be passed in.

Finally, fix up the usage in buf_FlushCleanPages() which gains
the most from these changes.

LICENSE MIT

Change-Id: I3726441ff83a89e24d790174ca71396d633f1be6
Reviewed-on: http://gerrit.openafs.org/2662
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: Permit cm_scache rwlock to be dropped when "Stablized"
Jeffrey Altman [Fri, 3 Sep 2010 01:05:15 +0000]
Windows: Permit cm_scache rwlock to be dropped when "Stablized"

The cm_buf_opts_t cm_BufStabilize() function was implemented
such that holding the cm_scache_t.rw lock had to be exclusively
held until cm_BufUnstablize() was called.  Unfortunately, this
prevents using Stabilize/Unstabilize to protect the cm_scache_t
during Flush operations as the cm_scache_t.rw lock must be
acquired after the cm_buf_t mutex and not before it.

This patchset reimplements the synchronization logic using
the new CM_SCACHEFLAG_SIZESETTING flag and cm_SyncOp().

LICENSE MIT

Change-Id: Iaada83f7f3b75bb3b213b33b2399e900e48a2fbc
Reviewed-on: http://gerrit.openafs.org/2661
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: fail cm_CheckNTOpen if READ|DELETE for readonly file
Jeffrey Altman [Mon, 30 Aug 2010 03:41:02 +0000]
Windows: fail cm_CheckNTOpen if READ|DELETE for readonly file

If the readonly file attribute is set (stored as a unix mode)
then a CreateFile operation should fail if the file is opened
for DELETE in combination with any other privilege.

LICENSE MIT

Change-Id: Ie8ebb6d230cf65d9ce2411bab2fcc4e561081505
Reviewed-on: http://gerrit.openafs.org/2660
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: Add validation for directory buffer contents
Jeffrey Altman [Thu, 26 Aug 2010 15:33:43 +0000]
Windows: Add validation for directory buffer contents

If the directory buffer contents are garbage we can crash
the service.  Add some simple validation checks to ensure
that cm_dirEntry_t objects have the correct flag value and
that the name strings are not too long.

LICENSE BSD

Change-Id: If4a276007ff7a21a641825037a1035ea20db79c5
Reviewed-on: http://gerrit.openafs.org/2658
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: cm_TryBulkStatRPC must process VIO errors
Jeffrey Altman [Tue, 24 Aug 2010 20:46:45 +0000]
Windows: cm_TryBulkStatRPC must process VIO errors

If the bulkStat errorCode indicates that a particular object
is inaccessible due to a VIO error, we must update the server
status appropriately in order to permit failover.

LICENSE MIT

Change-Id: I19ce3d2c5b138d519fb1c437f6d5109d7d8b1310
Reviewed-on: http://gerrit.openafs.org/2657
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: better handle RX_MSGSIZE errors
Jeffrey Altman [Tue, 24 Aug 2010 20:42:57 +0000]
Windows: better handle RX_MSGSIZE errors

An RX_MSGSIZE error is returned by the new PMTU detection
code.  It is critical that such an error result in a retry of
the operation that failed.  Otherwise, the PMTU detection can't
work and the server will be marked down.

Secondly, it is important that such errors not leak to the
application layer.  Map them to CM_ERROR_RETRY in all cases.

LICENSE MIT

Change-Id: I966fe259080bd31ec60fdb6715f54e18e190c790
Reviewed-on: http://gerrit.openafs.org/2656
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: print the value of cm_OfflineROIsValid to afsd_init.log
Jeffrey Altman [Tue, 24 Aug 2010 20:40:38 +0000]
Windows: print the value of cm_OfflineROIsValid to afsd_init.log

If we say we are printing the value of cm_OfflineROIsValid,
do so and not cm_deleteReadOnly.

LICENSE MIT

Change-Id: I8b0bc73798feea413f8ce79f9965664fc050ef76
Reviewed-on: http://gerrit.openafs.org/2655
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: Handle RX_RESTARTING consistently for all RPCs
Jeffrey Altman [Sun, 22 Aug 2010 14:05:59 +0000]
Windows: Handle RX_RESTARTING consistently for all RPCs

Translate RX_RESTARTING to the same cache manager error code
for all RPC classes.

LICENSE MIT

Change-Id: I4540e9886d1de68d9b3f8a2e72508f876225ff4a
Reviewed-on: http://gerrit.openafs.org/2654
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: Log cell along with volume id for server errors
Jeffrey Altman [Sat, 21 Aug 2010 04:23:45 +0000]
Windows: Log cell along with volume id for server errors

When logging server volume instance errors to the windows
application event log, be sure to log the cell as well.
Translating from server ip address is non-trivial.  Make it
easier for administrators triaging issues to plug the volume
and cell info into vos commands.

LICENSE MIT

Change-Id: I801fcd5c1afba4a8cdef4386fec72b9a529d4cfb
Reviewed-on: http://gerrit.openafs.org/2653
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agoWindows: unix modes represented in octal
Jeffrey Altman [Sat, 21 Aug 2010 04:22:22 +0000]
Windows: unix modes represented in octal

Since unix mode bits are represented in octal in most cases
make sure we log them that way.

LICENSE MIT

Change-Id: Ia8106c7bbd3230380c7efa437b6eb0a90398bda3
Reviewed-on: http://gerrit.openafs.org/2652
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

10 years agorx msgsize retry logic change
Derrick Brashear [Fri, 3 Sep 2010 12:18:41 +0000]
rx msgsize retry logic change

only rewrite to RX_MSGSIZE if the MTU changed. otherwise, leave well
enough alone

Change-Id: If7311c623c61064c52b42fbb131aa8ff007c3741
Reviewed-on: http://gerrit.openafs.org/2664
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

10 years agocacheout: Improve error handling
Andrew Deason [Fri, 3 Sep 2010 15:59:45 +0000]
cacheout: Improve error handling

Bail out when we encounter errors in initialization. Among other
things, this prevents a segfault if we can't read the client
configuration.

Change-Id: I8b35163c5c4750eb05539a225069327051a3f148
Reviewed-on: http://gerrit.openafs.org/2665
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovos: Show effects in single-volume dryrun mode
Andrew Deason [Fri, 3 Sep 2010 21:32:11 +0000]
vos: Show effects in single-volume dryrun mode

Fix -dryrun mode for 'vos syncvldb' to also show the effects when run
against a specific volume id.

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

10 years agovos: Show after effects in dryrun mode
Andrew Deason [Fri, 3 Sep 2010 20:20:10 +0000]
vos: Show after effects in dryrun mode

The dryrun mode of operation for 'vos syncvldb' and 'vos syncserv'
does not currently show the "status after" portion of its output, so
they don't really show what the commands will do. Change them so
"status after" is shown for -dryrun when sync'ing servers or
partitions, and count changes towards the count at the end.

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

10 years agoafs_DoBulkStat: don't call afs_Analyze without holding the GLOCK
Marc Dionne [Sun, 5 Sep 2010 14:48:52 +0000]
afs_DoBulkStat: don't call afs_Analyze without holding the GLOCK

Limit the scope of the GUNLOCK-GLOCK blocks to cover only the RX
calls.  This prevents afs_Analyze from being called without the
GLOCK, which causes an oops in afs_icl_Event4() where there's
an ASSERT_GLOCK.

Change-Id: Ifa6942d08f22479c0affba3ebd1fc9bf4063d8a5
Reviewed-on: http://gerrit.openafs.org/2668
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoRedHat: Package libafshcrypto libraries
Andrew Deason [Wed, 1 Sep 2010 17:04:56 +0000]
RedHat: Package libafshcrypto libraries

Add libafshcrypto.so.* to authlibs, and libafshcrypto.{a,so} to
authlibs-devel.

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

10 years agoRedHat: Do not force krb5-config path
Andrew Deason [Wed, 1 Sep 2010 16:14:37 +0000]
RedHat: Do not force krb5-config path

If the %krb5config macro is not defined, do not force using
/usr/kerbers/bin/krb5-config, since sometimes that is not where it is
(RHEL6 puts it in /usr/bin). Instead only specify KRB5_CONFIG if
krb5config is defined; otherwise let configure find krb5-config for
us.

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

10 years agoRedHat: Update openafs.spec for configure changes
Andrew Deason [Wed, 1 Sep 2010 15:32:53 +0000]
RedHat: Update openafs.spec for configure changes

We no longer have the configure options --enable-disconnected and
--with-krb5-conf. Remove them from the spec file and instead specify
krb5-config via the KRB5_CONFIG variable.

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

10 years agoRedHat: Use git-version in makesrpm.pl
Andrew Deason [Wed, 1 Sep 2010 15:18:17 +0000]
RedHat: Use git-version in makesrpm.pl

We no longer have the OpenAFS version in the AM_INIT_AUTOMAKE. Get the
version from the equivalent AC_INIT version, which is determined by
running build-tools/git-version. So, run git-version to get the
version.

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

10 years agoRedHat: Use configure.ac in makesrpm.pl
Andrew Deason [Wed, 1 Sep 2010 15:12:31 +0000]
RedHat: Use configure.ac in makesrpm.pl

We don't have a configure.in anymore; instead we have a configure.ac.

Change-Id: Ic79b5577cf2d5cd3021fe933ca5405fb2d514a4d
Reviewed-on: http://gerrit.openafs.org/2639
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoUpdate Autoconf Kerberos probes to latest rra-c-util version
Russ Allbery [Wed, 1 Sep 2010 17:52:30 +0000]
Update Autoconf Kerberos probes to latest rra-c-util version

We will now look for krb5-config in /usr/kerberos/bin (the path used
on Red Hat Enterprise prior to RHEL6) if it isn't found in the user's
PATH.

This update also adds a new probe for krb5_get_init_creds_opt_free
which is not yet used, but may eventually be useful for klog.krb5.

Change-Id: Iefd67c02ac44fd5f1a30883d1cd6ea4e489b32b1
Reviewed-on: http://gerrit.openafs.org/2644
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoLinux: Updated RedHat spec file with new demand attach servers and docs
Jonathan Billings [Tue, 31 Aug 2010 19:15:26 +0000]
Linux: Updated RedHat spec file with new demand attach servers and docs

Added the following to the openafs-server package:
dafileserver
dafssync-debug
dasalvager
davolserver
salvageserver
salvsync-debug

Added the man pages for the above.
Added a man page for krb.excl

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

10 years agoihandle positional read and write
Michael Meffie [Mon, 15 Mar 2010 17:42:23 +0000]
ihandle positional read and write

When available, use POSIX positional read and write
calls in the ihandle package. Originally written
by Derrick Brashear and Andrew Deason.

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

10 years agoLet SRXAFS_GetStatistics64 return correct values for the workstations
Hartmut Reuter [Tue, 31 Aug 2010 11:30:41 +0000]
Let SRXAFS_GetStatistics64 return correct values for the workstations

h_GetWorkstats was called also for 64bit which let random contents
in the other half of the 64bit field. Worse: little and big endian
machines filled different parts of the field so that a later masking
in fsprobe would net help for all kinds of servers.

Now a small wrapper h_GetWorkstats64 is called which calls h_GetWorkstats
correctly.

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

10 years agoubik recovery kill duplicate code
Derrick Brashear [Mon, 30 Aug 2010 16:32:58 +0000]
ubik recovery kill duplicate code

if recovery wants to invalidate transaction unconditionally and
has code duplication from urecovery_checkTid, just make checkTid
do what we want

Change-Id: I345560c496d4cb4506de6db79357b99c616ffbbe
Reviewed-on: http://gerrit.openafs.org/2628
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoclean up stale defines in volser header
Michael Meffie [Thu, 12 Aug 2010 04:14:03 +0000]
clean up stale defines in volser header

The volserver does not use port 5003 any more.

Change-Id: Ied55709c3831595d63f052cc1c2397e26352e4f1
Reviewed-on: http://gerrit.openafs.org/2536
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoubik: Protect ubik_servers in urecovery_Interact
Andrew Deason [Wed, 9 Jun 2010 17:46:29 +0000]
ubik: Protect ubik_servers in urecovery_Interact

urecovery_Interact can modify the global ubik_servers structures,
including destroying and recreating the RX connection objects. In the
pthreaded case, DBHOLD the database, so we do not modify the
structures out from under another thread trying to use them.

Change-Id: I62ab7b77e17c65ec8840659957ef6d00303ea5a4
Reviewed-on: http://gerrit.openafs.org/2108
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoubik: Drop dbase versionLock during I/O and sleeps
Andrew Deason [Wed, 9 Jun 2010 17:45:57 +0000]
ubik: Drop dbase versionLock during I/O and sleeps

Currently we hold versionLock during all ubik network I/O and while we
are sleeping for whatever reason. For pthreaded ubik, to allow other
things to happen during those times, drop the lock and reacquire when
we hit the net or sleep.

Change-Id: I414b3adfadc0bb506b98e8677ec5dfbb269e0129
Reviewed-on: http://gerrit.openafs.org/2107
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoNew GetToken pioctl
Simon Wilkinson [Wed, 7 Apr 2010 22:03:21 +0000]
New GetToken pioctl

Implement a new, XDR based, GetToken pioctl which mirrors the new
SetToken pioctl.

Change-Id: I213e74edb3496baa40b5c8048e97df6888f742b4
Reviewed-on: http://gerrit.openafs.org/2584
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoaklog: Add support for the new SetToken pioctl
Simon Wilkinson [Sun, 14 Feb 2010 10:00:22 +0000]
aklog: Add support for the new SetToken pioctl

Make aklog use the new extended ktc set token function when storing
tokens.

Change-Id: I2e84cda2bf8a4c6c9f6627569cae2d34fd7b5c0f
Reviewed-on: http://gerrit.openafs.org/2583
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agomacos afsdb reinit resolver on address change
Derrick Brashear [Sat, 28 Aug 2010 21:19:45 +0000]
macos afsdb reinit resolver on address change

assume a new address means we probably have new resolver info; reinit
when we get the callback.

FIXES 126440

Change-Id: I0d5ac0576f2b2e90093b93974b0354cac35d84a3
Reviewed-on: http://gerrit.openafs.org/2622
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agocache bypass Also increment page refcount in readpage
Matt Benjamin [Sun, 29 Aug 2010 19:06:22 +0000]
cache bypass  Also increment page refcount in readpage

As noticed by a commenter, afs_linux_bypass_readpage needs
the same get_page operation as in afs_linux_bypass_readpages,
as background page accounting assumes we have done it.

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

10 years agoDFBSD update dfbsd userland
Matt Benjamin [Fri, 27 Aug 2010 23:11:32 +0000]
DFBSD  update dfbsd userland

Add new sysnames.  Fix some userland header inclusions,
defend against kernel-mode ioctl interpretation when
building UKERNEL.  Add fragments missing from DFBSD
MakefileProto template.

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

10 years agoFBSD try-relax child vnode locking (recurse only)
Matt Benjamin [Sun, 29 Aug 2010 21:33:03 +0000]
FBSD  try-relax child vnode locking (recurse only)

In cases where afs_vop_lookup would return a child vnode
locked, continue to take an exclusive lock, but allow
recursion (LK_CANRECURSE).  Allow recursion also at
afs_vop_link, where we specifically encountered a conflict
due to recursion.

Change-Id: I5f5b0979ce3c86e517f96ea60b96ebdd26401acb
Reviewed-on: http://gerrit.openafs.org/2625
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoFBSD, DFBSD (future) call afs_FakeOpen in the write path
Matt Benjamin [Sun, 29 Aug 2010 01:57:38 +0000]
FBSD, DFBSD (future)   call afs_FakeOpen in the write path

Call afs_FakeOpen in the write path, even though nominally
it is AFS_VM_RDWR_ENV.

Change-Id: I6d24c9631f80058e3dd0d6f284ca7792253ceaaa
Reviewed-on: http://gerrit.openafs.org/2623
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoFBSD, DFBSD (future) vnode_pager_setsize updates
Matt Benjamin [Sun, 29 Aug 2010 00:43:41 +0000]
FBSD, DFBSD (future)  vnode_pager_setsize updates

Based on review of bundled filesystems on FBSD and DFBSD,
call vnode_pager_setsize in three unhandled cases (getattr,
setattr, and io growing a file;  truncation was handled
correctly already).  Following up on a suggestion by Ben
Kaduk.

Change-Id: I05b61c26402bb8ab49ad74b71af2d02b439f959f
Reviewed-on: http://gerrit.openafs.org/2621
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoMake hcrypto depend on config
Marc Dionne [Sat, 28 Aug 2010 19:50:04 +0000]
Make hcrypto depend on config

hcrypto needs the top-level include structure to be present so it
can install its header files.  Add a dependency to "config" in
the Makefile to make this explicit and prevent occasional failures
with parallel builds.

Change-Id: If588d6a15fa1fdf371ec2841cc3a6e75077cccb0
Reviewed-on: http://gerrit.openafs.org/2620
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoFBSD restore old syscall register logic for older kernels
Matt Benjamin [Fri, 27 Aug 2010 02:54:20 +0000]
FBSD  restore old syscall register logic for older kernels

The syscall_register code appears to depend on coordination
with FreeBSD upstream, which hopefully can be completed by
RELENG_9.  Use the original code for installation of the AFS
syscall everything older than that.

Change-Id: I2954cf1a2ae3587a311e8133ec5cdc500b4e2e24
Reviewed-on: http://gerrit.openafs.org/2618
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agosed s/porc/proc/
Matt Benjamin [Fri, 27 Aug 2010 00:37:52 +0000]
sed s/porc/proc/

There is no osi macro osi_curporc.  Typo.

Change-Id: I02f151be942471579ca60ed1e2190d0895288e4c
Reviewed-on: http://gerrit.openafs.org/2617
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoAdd new SetTokenEx pioctl
Simon Wilkinson [Sun, 14 Feb 2010 01:14:54 +0000]
Add new SetTokenEx pioctl

This change implements the new, XDR based, SetTokenEx pioctl. This
pioctl permits sending multiple tokens, of multiple types, into the
kernel in a single pioctl call. This patch provides a kernel
implementation of the pioctl, and a new library function
ktc_SetTokenEx, which will use either the new pioctl, or fall back
to the old one should SetTokenEx not be available.

Change-Id: Id1e2903e078c549f5675e3d2ecdf53a9bb33f5e9
Reviewed-on: http://gerrit.openafs.org/2582
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoMake unixuser's vid advisory
Simon Wilkinson [Sun, 7 Feb 2010 14:15:26 +0000]
Make unixuser's vid advisory

The 'vid' element of the unixuser structure was performing two
functions. It was used in debug messages to clarify which user's
token had expired and, in a few locations, to signify whether the
user had tokens or not.

This patch removes this dual usage. 'vid' is renamed to viceId, so
all uses are found and fixed. Where it is used for debugging, it remains,
but we only set the viceId for a user when we first use an rxkad token
on that context. Other uses of 'vid' have been replaced with tests
against the UHasTokens flag in the user's states.

Change-Id: Ifc0306a34fb7360810c792215e55e783f1dd062c
Reviewed-on: http://gerrit.openafs.org/2581
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoUnix CM: Generalise token storage
Simon Wilkinson [Fri, 5 Feb 2010 11:12:45 +0000]
Unix CM: Generalise token storage

This generalises token storage in the Unix CM, so that it isn't
rxkad specific. We add a new, dynamically allocated, list of tokens
hanging off each unixuser structure. Each token is expressed as
a discrimated union keyed on the security class of that token,
with the token's details contained within that Union.

All token handling is performed through a set of functions in
afs_token.c - token access is modified to use this interface
throughout the rest of the code.

Change-Id: I939f3a611bb6e991e1e0d075ced0a59fc6f57693
Reviewed-on: http://gerrit.openafs.org/2580
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoFBSD: properly register our syscall
Ben Kaduk [Thu, 26 Aug 2010 03:21:30 +0000]
FBSD: properly register our syscall

Use the provided interface, syscall_register(), instead of
manually tweaking the sysent table.
Starting afsd will still fail at present on FreeBSD HEAD
without an additional kernel patch to syscalls.master.

Change-Id: I18db7c8b74dbd114165f7617df25e462cb372e88
Reviewed-on: http://gerrit.openafs.org/2616
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoFBSD: give osi_NetReceive time to shutdown, reprise
Matt Benjamin [Wed, 25 Aug 2010 20:19:18 +0000]
FBSD:  give osi_NetReceive time to shutdown, reprise

The delay logic needs to follow soshutdown, and precede
soclose.  The thread in osi_NetReceive is racing to do
another soreceive.  That thread needs to win the race
and notice the socket is shut down before rx_socket is
torn down.

Change-Id: Id8424dcfa2498550a190d277017b7ea15fc11023
Reviewed-on: http://gerrit.openafs.org/2613
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoFBSD CM: don't call afs_close when recycling
Matt Benjamin [Wed, 25 Aug 2010 07:34:35 +0000]
FBSD CM: don't call afs_close when recycling

Don't call afs_close when handling VOP_CLOSE on a recycled
vnode, since there was no matching open.  This corrects the
opens count, which was seen to go have gone negative in the
reclaim vop.  For clarity, assert if afs_vop_close is entered
with a VI_DOOMED vnode and avc->opens != 0.

Change-Id: I511a4f2a924c2f8e20f3ecdaa445fbe803289a47
Change-Id: I1b2307fd3318fa54e8f7fb72a5d3f843e2a38404
Reviewed-on: http://gerrit.openafs.org/2612
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoBSD CMs: Don't call nonexistent afs_FlushVS in afs_vop_reclaim
Matt Benjamin [Wed, 25 Aug 2010 00:48:24 +0000]
BSD CMs:  Don't call nonexistent afs_FlushVS in afs_vop_reclaim

Revert BSDs to call FlushVCache in their respective reclaim vops,
afs_FlushVS no longer exists.

FIXES 127955

Change-Id: I842356c2d6ee4fa3a49eaa8594f1b52188c24985
Reviewed-on: http://gerrit.openafs.org/2611
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoImport of code from heimdal
Heimdal Developers [Tue, 24 Aug 2010 16:40:51 +0000]
Import of code from heimdal

This commit updates the code imported from the external
heimdal git repository to their revision
4f5390877a6cdb9615cf1f61f1884edc7b91522c
which is described as switch-from-svn-to-git-1447-g4f53908

Change-Id: I8a679232dfb25ba636600264b235667f06a5f62c
Reviewed-on: http://gerrit.openafs.org/2607
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovenus: build cacheout
Andrew Deason [Mon, 23 Aug 2010 19:03:03 +0000]
venus: build cacheout

Build 'cacheout' in all builds, so it does not succumb to bitrot.

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

10 years agovenus: make cacheout build again
Andrew Deason [Mon, 23 Aug 2010 17:55:21 +0000]
venus: make cacheout build again

Make src/venus/cacheout buildable again, by fixing several compiler
errors and warnings. Also clean up a few small things, like adding
'static' qualifiers.

Change-Id: I1cd10221a5e13a59227e4915991db6042325b7de
Reviewed-on: http://gerrit.openafs.org/2605
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovlserver: Allow reading during ubik writes
Andrew Deason [Fri, 21 May 2010 21:26:53 +0000]
vlserver: Allow reading during ubik writes

Turn on the new ubik_BeginTransReadAnyWrite functionality for the
vlserver, which allows us to read data from ubik during a conflicting
ubik write lock. When writing, we now update a copy of the
application-level cache, and write back the changes during a commit.

Change-Id: Ica958af704f40e89c2062e43641d883865613802
Reviewed-on: http://gerrit.openafs.org/2106
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovlserver: Access cache via vl_ctx
Andrew Deason [Fri, 21 May 2010 20:54:33 +0000]
vlserver: Access cache via vl_ctx

The vlserver application-level ubik cache (which consists of
HostAddress, ex_addr, and cheader) is currently being accessed via
global variables everywhere. Instead, access these via the new vl_ctx
struct that is passed to functions during a transaction, so we have
the ability to modify the cache without making all changes visible as
we change it.

Change-Id: I24bd5495539057d169aef4b5b0b6850b77172cab
Reviewed-on: http://gerrit.openafs.org/2105
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agovlserver: Add a struct for trans-specific data
Andrew Deason [Fri, 21 May 2010 16:12:50 +0000]
vlserver: Add a struct for trans-specific data

Instead of passing a ubik_trans pointer to many functions inside the
vlserver, pass a vlserver-defined vl_ctx struct, so we can add new
things to keep track of in a transaction that are not part of ubik.

Change-Id: Icf8df6bfdf8960134493ab7f379f0f65b92bdb5a
Reviewed-on: http://gerrit.openafs.org/2104
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoubik: add interface for reading during write locks
Andrew Deason [Thu, 20 May 2010 20:22:11 +0000]
ubik: add interface for reading during write locks

Add ubik_BeginTransReadAnyWrite, which allows for reading from the
database, even while there is a conflicting ubik write lock. Reads are
still blocked while the local database is updating due to a write
transaction commit.

Change-Id: I025e595ad699d5a969a0676691530d90c65f1920
Reviewed-on: http://gerrit.openafs.org/2592
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoubik: Fix buffers for reading-during-writes
Andrew Deason [Tue, 22 Jun 2010 19:36:42 +0000]
ubik: Fix buffers for reading-during-writes

If we are reading while a write transaction is in progress, we can
encounter a buffer that is dirty if we're on the same site as the
writer. Ignore these buffers for readers, since they contain
uncommitted changes. Then, when the writer commits, invalidate the
resultant duplicate buffer, if one exists.

Change-Id: I67e0205362d4c08ea9a8c12104fea8bfe8cbf798
Reviewed-on: http://gerrit.openafs.org/2231
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoubik: Abstract buffer matching and pass trans ptrs
Andrew Deason [Tue, 22 Jun 2010 18:24:27 +0000]
ubik: Abstract buffer matching and pass trans ptrs

Abstract the code for matching buffers in DRead, and pass around
ubik_trans pointers instead of ubik_dbase pointers. This changes no
behavior, but makes changing ubik buffer code a bit easier.

Change-Id: Ie98005edb0f0dc008190e709dc08d2cc5ef5e16c
Reviewed-on: http://gerrit.openafs.org/2230
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agoDon't include afsconfig.h in rxgen headers
Simon Wilkinson [Sat, 21 Aug 2010 11:05:37 +0000]
Don't include afsconfig.h in rxgen headers

Some headers generated by rxgen are installed. We can't use
afsconfig.h in installed headers, as it isn't installed (and it
shouldn't be, as it contains autoconf defines which will almost
certainly have namespace conflicts with other packages)

Revert the portion of 972a407 that added afsconfig.h to the
h_output function. This should now be safe as stds.h no longer
relies on the result of autoconf tests.

FIXES 127931

Change-Id: I75645620e46c4f354ca984a8daf99254650133f6
Reviewed-on: http://gerrit.openafs.org/2604
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

10 years agos390x: only declare afs_sys_setgroups32_page where needed
Marc Dionne [Fri, 20 Aug 2010 20:11:59 +0000]
s390x: only declare afs_sys_setgroups32_page where needed

Variable afs_sys_setgroups32_page is only used when __NR_setgroups32
is not defined.  Make the declaration depend on it as well to clear
up an unused variable warning.

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