openafs.git
12 years agopthread pid casting
Derrick Brashear [Wed, 21 Oct 2009 18:42:23 +0000]
pthread pid casting

in rx, we use pthread_self (which can return a pointer) as a pid;
in order to not cause problems, cast it as we do elsewhere

Reviewed-on: http://gerrit.openafs.org/703
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agorx lwp include assert.h where AFS_NT40_ENV builds can see it
Jeffrey Altman [Thu, 22 Oct 2009 14:10:12 +0000]
rx lwp include assert.h where AFS_NT40_ENV builds can see it

Reviewed-on: http://gerrit.openafs.org/713
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Update Control Panel to use ShellExecuteEx instead of WinExec
Jeffrey Altman [Thu, 22 Oct 2009 12:57:04 +0000]
Windows: Update Control Panel to use ShellExecuteEx instead of WinExec

WinExec is for 16-bit application compatibility.  Starting with
Windows 7 it cannot be used to execute a process that requires
elevated privileges.  ShellExecute[Ex] must be used instead.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/711
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoremove spurious log in icl
Derrick Brashear [Thu, 22 Oct 2009 12:07:43 +0000]
remove spurious log in icl

fstrace should not log sets to the kernel message log

Reviewed-on: http://gerrit.openafs.org/710
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoAdd -Wpointer-arith to warning and checking builds
Simon Wilkinson [Wed, 21 Oct 2009 23:34:50 +0000]
Add -Wpointer-arith to warning and checking builds

GCC doesn't catch issues with performing pointer arithmetic on
(void *)s, unless the -Wpointer-arith warning flags is supplied.
Enable it for warning and checking builds.

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

12 years agorx don't exit
Derrick Brashear [Wed, 21 Oct 2009 18:43:26 +0000]
rx don't exit

exiting in library code is antisocial. if rx encounters an error
which cannot be returned and would otherwise indicate a service thread
has gone away, assert.

Reviewed-on: http://gerrit.openafs.org/668
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Tom Keiser <tkeiser@sinenomine.net>

12 years agoFix fall out from removal of memset casts
Simon Wilkinson [Wed, 21 Oct 2009 23:31:10 +0000]
Fix fall out from removal of memset casts

In places where we're doing pointer arithmetic, we must cast to (char
*), because pointer arithmetic on a void * isn't permitted by the C
standard. Sadly gcc lets us get away with it 'for convenience'.

Reinstate the necessary casts.

Reviewed-on: http://gerrit.openafs.org/707
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Update MSI installer properties
Jeffrey Altman [Wed, 21 Oct 2009 22:51:09 +0000]
Windows: Update MSI installer properties

Reference useful web pages such as docs.openafs.org for help,
www.openafs.org/windows.html for upgrade info, etc.

Reviewed-on: http://gerrit.openafs.org/706
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: ports in the cache manager are stored in network byte order
Jeffrey Altman [Wed, 21 Oct 2009 22:41:59 +0000]
Windows: ports in the cache manager are stored in network byte order

When assigning ports from SRV/AFSDB lookups, convert to network
byte order when assigning them to cm_server objects.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/705
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Set the ARPINSTALLLOCATION property when installing
Asanka Herath [Wed, 21 Oct 2009 19:56:12 +0000]
Windows: Set the ARPINSTALLLOCATION property when installing

The WiX based Windows Installer package for OpenAFS should set
the ARPINSTALLLOCATION property when installing.  This property
contains the main installation directory for the product and is
necessary for Windows Logo compliance.

Reviewed-on: http://gerrit.openafs.org/704
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoDon't cast the pointer past to memset
Simon Wilkinson [Wed, 21 Oct 2009 16:34:30 +0000]
Don't cast the pointer past to memset

memset() takes a void * as it's first argument. Don't explicitly cast
what we're passing in to (char *), as this may mask other errors.

Reviewed-on: http://gerrit.openafs.org/701
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoMake typedefs of AFS_UCRED and AFS_PROC with renaming
matt@linuxbox.com [Mon, 12 Oct 2009 00:52:26 +0000]
Make typedefs of AFS_UCRED and AFS_PROC with renaming

Make typedefs of AFS_UCRED and AFS_PROC, with a corresponding name change.
The names afs_ucred_t and afs_proc_t are chosen since these appear to be
the best available choices.  The names cannot actually collide with anything
which POSIX might later introduce.  For UKERNEL, the preprocessor is used
to redirect references.  This seems not easily avoidable at present.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/645
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoHPUX: Do not sigwait on critical signals
Andrew Deason [Tue, 20 Oct 2009 17:43:42 +0000]
HPUX: Do not sigwait on critical signals

On HPUX, it is possible for 'critical' signals such as SEGV, ABRT, etc
to be delivered to the softsig thread when we sigwait(). The current
code marks these as 'fatal' and just exit(0)s when they are received,
preventing us from getting cores in the case of a SEGV, ABRT, etc.

To work around this and keep behavior on other platforms the same, just
do not wait on 'critical' signals on HPUX in the softsig thread.

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

12 years agoWindows: Add registry entries for rx_SetMinPeerTimeout, rx_SetMaxRecvWindow, rx_SetMa...
Jeffrey Altman [Wed, 21 Oct 2009 13:14:51 +0000]
Windows: Add registry entries for rx_SetMinPeerTimeout, rx_SetMaxRecvWindow, rx_SetMaxSendWindow

Permit the new rx settings to be configured via the registry and
set at startup.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/700
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoAdd rx_SetMinPeerTimeout and rx_GetMinPeerTimeout
Jeffrey Altman [Wed, 21 Oct 2009 13:13:22 +0000]
Add rx_SetMinPeerTimeout and rx_GetMinPeerTimeout

Permit the minimum peer timeout value to be adjusted at runtime.
The default remains 350ms.

LICENSE BSD

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

12 years agoUse real names for page lock operations
Simon Wilkinson [Tue, 20 Oct 2009 14:30:33 +0000]
Use real names for page lock operations

Call a spade a spade. Don't use macros to rename lock_page as LockPage,
and unlock_page as UnlockPage. Instead use the same names as the kernel,
which makes it a lot easier for people familiar with kernel code to read
ours.

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

12 years agoWindows: Modify afscreds.exe and afs_config.exe to be UAC compatible
Jeffrey Altman [Thu, 15 Oct 2009 03:43:46 +0000]
Windows: Modify afscreds.exe and afs_config.exe to be UAC compatible

afscreds.exe:
 1. disable the drive mapping and advanced tabs.
 2. on exit, remove the option to stop the service.

afs_config.exe:
 1. disable the drive mapping tab

Removing this functionality by default will address some of the
problems while permitting users that wish to continue using these tools
to do so.   The drive mapping tab can be re-enabled setting the registry
value to be non-zero:

  {HKCU,HKLM}\Software\OpenAFS\Client DWORD "ShowMountTab"

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/663
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Do not permit infinite attempts to obtain a pioctl file handle
Jeffrey Altman [Wed, 21 Oct 2009 13:02:04 +0000]
Windows: Do not permit infinite attempts to obtain a pioctl file handle

The recent change to detect sharing violations and initiate retries
permits infinite attempts.  Change this to a limit of 100 attempts
and increase the sleep period between attempts from 1ms to 100ms.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/697
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: digital signatures are required for resource dlls
Jeffrey Altman [Wed, 21 Oct 2009 13:07:47 +0000]
Windows: digital signatures are required for resource dlls

Windows 7 logo requirements state that all dlls including
resource only dlls be digitally signed.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/698
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Adjust error return values
Jeffrey Altman [Thu, 15 Oct 2009 02:06:38 +0000]
Windows: Adjust error return values

Do not return STATUS_TIMEOUT to the smb redirector, doing so
results in an undesireable disconnect.

Map RXKADNOAUTH to STATUS_CLOCK_SKEW as that is the most
frequent cause of rx level authorization failures.

Map CM_ERROR_UNKNOWN to access denied since there is no
better error choice.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/661
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agorx window size increase
Derrick Brashear [Tue, 29 Sep 2009 09:34:30 +0000]
rx window size increase

window size was previously pushed to 64; push to 128. as this increases memory
use, anything further should be arguably tied to rx-using-program's
resource allocation preferences, e.g. fileserver -LL should be willing to
up this

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

12 years agoafscp warnings cleanup
Derrick Brashear [Tue, 20 Oct 2009 19:03:09 +0000]
afscp warnings cleanup

make the copy of afscp in src/tests compile with fewer warnings
(and provide needed prototype for RXAFSCB_ExecuteRequest)

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

12 years agoprevent rx peer timeout from reaching 0.0 seconds
Jeffrey Altman [Tue, 20 Oct 2009 20:16:47 +0000]
prevent rx peer timeout from reaching 0.0 seconds

The rx peer timeout is computed from the round trip time
calculation.  It traditionally has had a lowerbound of 350ms.
The computation in rxi_ComputeRoundTripTime() was incorrect
and instead used 350ms as an upperbound.

rxi_ComputeRoundTripTime() had a second problem wherein if
the actually RTT is shorter than the resolution of the clock
then the RTT would quickly approach 0.0 seconds.  Enforce
a lowerbound of 1ms if the RTT for a given packet appears
to be 0.0 seconds.

LICENSE BSD

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

12 years agoRx warning removal
Jeffrey Altman [Tue, 20 Oct 2009 19:08:51 +0000]
Rx warning removal

This patch set removes many but not all of the warnings
in the rx library.

 - use AFS_PTR_FMT in dpf debugging output

 - fix many signed vs unsigned warnings

 - on Windows, the first parameter to select() is ignored.
   Passing an osi_socket produces an unnecessary warning.

 - In rx_SlowReadPacket and rx_SlowWritePacket, use 'r' the
   unsigned value for internal computation and 'resid' for
   holding the original value.  This avoids many signed vs
   unsigned warnings.

LICENSE BSD

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

12 years agoWindows: AFS_PTR_FMT is just 'p'
Jeffrey Altman [Tue, 20 Oct 2009 16:32:22 +0000]
Windows: AFS_PTR_FMT is just 'p'

The printf format specification for a pointer of any size is
just 'p'.  The 'I' is only to be used for [duox].

Reviewed-on: http://gerrit.openafs.org/690
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoAvoid 'static __inline' on HPUX
Andrew Deason [Mon, 19 Oct 2009 03:48:56 +0000]
Avoid 'static __inline' on HPUX

'static __inline' functions on HPUX can segfault the /opt/ansic compiler
(unless we lose debugging symbols). So, just use 'static' for those
functions on HPUX. Also revert a9368a6c3dfe4435ec2ae63fff4a3325104ed9f7,
so we get a static inline function on other platforms.

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

12 years agoRemove pageoff macro
Simon Wilkinson [Tue, 20 Oct 2009 12:38:08 +0000]
Remove pageoff macro

The pageoff macro is now unused. Remove it.

Reviewed-on: http://gerrit.openafs.org/689
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoAdd server prefix to bumon.xg; avoid rx_call * vs rx_connection * warning
Jeffrey Altman [Mon, 19 Oct 2009 22:43:44 +0000]
Add server prefix to bumon.xg; avoid rx_call * vs rx_connection * warning

When compiling src/bubasics/bumon.ss.c a warning would be produced
due to an rx_call* being passed into BC_Print which in its client
form requires an rx_connection*.  The server implementation and client
stub each were called BC_Print because there was no server prefix
specified in bumon.xg.  Add prefix 'S' and update bucoord/server.c
to match.

Reviewed-on: http://gerrit.openafs.org/686
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoReturn both error codes for rxfs_fetchInit
Simon Wilkinson [Mon, 19 Oct 2009 22:56:12 +0000]
Return both error codes for rxfs_fetchInit

The FetchStore refactoring was causing the result from rx_EndCall to
be discarded. This change will cause that to be returned to the caller
if rx_Error() returns 0

Reviewed-on: http://gerrit.openafs.org/687
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoAlways unlock pages when returning from writepage
Simon Wilkinson [Fri, 16 Oct 2009 15:39:24 +0000]
Always unlock pages when returning from writepage

Writepage has a return path which returns an error with a locked
page. However, all returns that are not AOP_WRITEPAGE_ACTIVATE must
unlock their pages - using this codepath would leave a stray page lock,
which would eventually hang the machine.

The logic behind the -EIO return was also incorrect. In the Linux page
cache model, truncates simply reduce the size recorded in the inode. If
there are pages pending writeback then they may still have writepage() called
upon them - it's up to the writepage routine to discard the write
request (rather than returning an error)

Reviewed-on: http://gerrit.openafs.org/685
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix a couple more unlink()s in vol-salvage.c
Andrew Deason [Thu, 15 Oct 2009 18:15:44 +0000]
Fix a couple more unlink()s in vol-salvage.c

There are a couple more unlink() calls in vol-salvage.c that were using
relative paths. Fix them to use absolute paths and to log a warning if
the unlink() fails.

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

12 years agoWindows: Add a token status icon to the NIM plug-in
Asanka Herath [Mon, 19 Oct 2009 21:12:32 +0000]
Windows: Add a token status icon to the NIM plug-in

The Network Identity Manager plug-in for OpenAFS replaces
afscreds.exe for token management.  However, unlike afscreds.exe,
the plug-in did not indicate the status of AFS tokens using an
icon in the notification area.

This patch adds a token status icon to the plug-in so that while
the plug-in is used, a familiar padlock icon in the notification
area will indicate the status of tokens as well as the OpenAFS
service.

There are four possible states indicated by the icons:

- No tokens: indicated by a padlock with a bright red 'X' beside
  it.

- At least one valid token: indicated by a normal padlock.

- Service is not running: indicated by a grayed out padlock with
  a black square beside it.

- Service error: indicated by a padlock broken in half.

The 'Service error' state means that the OpenAFS client service
is technically running (as reported by Windows), but is not
responding to requests.

In addition to the icon, hovering the mouse cursor over the icon
will show details about the current state (such as the list of
cells for which valid tokens exist) and the version of OpenAFS
running on the machine.

Reviewed-on: http://gerrit.openafs.org/683
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoAFSPreference Pane Mounts View refresh issue
Claudio Bisegni [Mon, 19 Oct 2009 15:34:09 +0000]
AFSPreference Pane Mounts View refresh issue

Resolved the bug that prevented to show the link description after it was added.
Now the table is refreshed at any operation(add/remove).

Reviewed-on: http://gerrit.openafs.org/682
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoOpenAFS Preference Pane 64bit and Symbolic Link features implemented.
Claudio Bisegni [Sun, 18 Oct 2009 18:39:21 +0000]
OpenAFS Preference Pane 64bit and Symbolic Link features implemented.

Now the OpenAFS preference pane is compiled with 32 and 64 bit snowleopard support, so the preference
windows is no more restarted in 32 bit mode.
The tab for symbolic link creation has been implemented. Now the user can create and delete link.
For create a link both name and destination path must be set. AFSBackgrounder has been updated to
manager in a separate thread the link creation and destroy operation, according to the vaule of
checkbox "Enable Symbolic Link" in "Mounts" tab.

Reviewed-on: http://gerrit.openafs.org/677
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoPrototype encode_krb5_enc_tkt_part for aklog
Andrew Deason [Mon, 19 Oct 2009 02:05:58 +0000]
Prototype encode_krb5_enc_tkt_part for aklog

Prototype encode_krb5_enc_tkt_part in aklog_main.c, since it is a
private interface so we don't get a prototype from the krb5 headers.

Reviewed-on: http://gerrit.openafs.org/680
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix format warnings in tviced/state_analyzer.c
Andrew Deason [Mon, 19 Oct 2009 03:20:59 +0000]
Fix format warnings in tviced/state_analyzer.c

state_analyzer.c assumes subtracting two char*s will result in an
unsigned int, which can cause warnings. Lacking a portable format
specifier, just use %ld and cast to long.

Reviewed-on: http://gerrit.openafs.org/681
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix a couple of size_t warnings
Andrew Deason [Mon, 19 Oct 2009 01:46:27 +0000]
Fix a couple of size_t warnings

fsprobe/fsprobe.c and kauth/ka-forwarder.c were trying to print size_t's
without using AFS_SIZET_FMT. Fix that.

Reviewed-on: http://gerrit.openafs.org/678
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoPrototype ka_log
Andrew Deason [Mon, 19 Oct 2009 01:47:43 +0000]
Prototype ka_log

Prototype ka_log in kauth/kalog.h to prevent warnings. While we're at
it, only prototype kalog_log and kalog_Init when they actually get
implemented.

Reviewed-on: http://gerrit.openafs.org/679
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix warnings in tviced
Simon Wilkinson [Sun, 18 Oct 2009 11:07:37 +0000]
Fix warnings in tviced

Prototype hpr_Initialize and hpr_End to remove warnings in the tviced
build.

Reviewed-on: http://gerrit.openafs.org/675
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoLog error messages in volser i/o errors
Andrew Deason [Fri, 16 Oct 2009 19:30:34 +0000]
Log error messages in volser i/o errors

Currently, in various places in src/volser/, we log/print an error
message when some disk i/o error occurs, but we don't log what error was
returned. Log that little bit more info to make debugging easier in some
cases.

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

12 years agoMore warning fixes for kauth
Simon Wilkinson [Fri, 16 Oct 2009 22:15:52 +0000]
More warning fixes for kauth

Resolve more minor warnings from the kauth directory.

*) kaux_read takes an unsigned for the number of failures
*) The COUNT_REQ macro generates an unused variable (this_op)
*) kas is missing some headers
*) Add some more prototypes to kauth_internal.h
*) Add the standard boilerplate to kauth_internal.h
*) recvfrom takes a socklen_t * as its 6th argument

This make kaprocs.c, kaauxdb.c, kas.c, klog.c, and ka-forwarder.c
warning clean. Mark them as such.

Reviewed-on: http://gerrit.openafs.org/673
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoUpdate warning management
Simon Wilkinson [Fri, 16 Oct 2009 21:45:50 +0000]
Update warning management

This change tidies up after the recent slew of warning reduction. It
updates README.WARNINGS to reflect the current state of the tree,
disables warnings for a couple of files that are now warning clean,
and ensures that the libuafs and libafsrpc Makefiles match the state
of the rest of the tree in terms of which warnings are enabled.

Reviewed-on: http://gerrit.openafs.org/672
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoUse ranlib -c for Mac OS X Leopard
Simon Wilkinson [Sun, 18 Oct 2009 11:44:56 +0000]
Use ranlib -c for Mac OS X Leopard

Building with --enable-demand-attach-fs requires that ranlib -c be
used on Leopard (it is already the default for Tiger)

Reviewed-on: http://gerrit.openafs.org/676
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoafs_Conn must be called within the analyze loop
Simon Wilkinson [Sat, 17 Oct 2009 07:49:03 +0000]
afs_Conn must be called within the analyze loop

afs_Analyze calls afs_PutConn, so each pass through the
afs_Analyze loop must call afs_Conn to get a new connection handle.

afs_CacheStoreVCache (part of the fetchstore refactoring) wasn't doing
this, and so producing garbage data upon retries.

Reviewed-on: http://gerrit.openafs.org/674
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoWindows: Always compute time remaining in cm_Analyze
Jeffrey Altman [Fri, 16 Oct 2009 19:28:04 +0000]
Windows: Always compute time remaining in cm_Analyze

In cm_Analyze, the time remaining for processing the request
is used to determine if a retry should requested upon return.
If the request's CM_REQ_NORETRY flag is set, cm_Analyze can
still permit a retry if a new rx connection is to be forced.
This cannot happen if the time remaining is not calculated
when the CM_REQ_NORETRY flag is set.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/670
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: mark volume status online during cm_MergeStatus
Jeffrey Altman [Fri, 16 Oct 2009 19:31:02 +0000]
Windows: mark volume status online during cm_MergeStatus

During cm_MergeStatus, if the volume status is not vl_online
mark it vl_online.  The volume must be online because an
AFSFetchStatus was just processed.  This change reduces the
amount of work that must be performed by the daemon thread's
volume status check.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/669
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoLinux: kmem_cache_create fix and cleanup
Marc Dionne [Fri, 9 Oct 2009 01:53:03 +0000]
Linux: kmem_cache_create fix and cleanup

Fix the kmem_cache constructor function to match the current
expected prototype, and cleanup related code.  This has been wrong
for a while, but since we were just passing extra parameters the
only effect was to generate a warning.

- Add a new configure test to detect the new constructor function
signature
- Define the older versions of the constructor in osi_compat.h,
making them call the current version
- Move a few compatibility #defines to osi_compat.h

Reviewed-on: http://gerrit.openafs.org/657
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix rxgen-generated warnings
Andrew Deason [Thu, 15 Oct 2009 17:48:08 +0000]
Fix rxgen-generated warnings

Prevent rxgen from generating code that produces warnings at compile
time.

 * Add print_ifarg_with_cast().  Used within print_ifstat() to generate
   a member in an argument list complete with a type cast.  The type
   cast may be a pointer to the type or the type depending on the value
   of the 'ptr_to' parameter.

 * When print_ifstat() generates the output for an opaque vector, cast
   the object to 'caddr_t' as xdr_opaque() accepts an argument of type
   'caddr_t'.

 * When print_ifstat() generates the output for an opaque array, cast
   the object to 'char **' because xdr_bytes() accepts an argument of
   type 'char **'.

 * When print_ifstat() generates the output for any array that is not
   opaque or string, cast the object to 'caddr_t' because all of the
   xdr_XXX() functions other than xdr_opaque and xdr_bytes accept an
   argument of type 'caddr_t'.

 * When print_ifstat() generates the output for an alias, cast the
   output to a pointer to the specified type because xdr_<type> accepts
   an argument of type '<type> *'.

This addresses warnings generated when compiling fsint/Kvice.xdr.c and
fsint/afsint.xdr.c.

Reviewed-on: http://gerrit.openafs.org/664
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoexit less
Derrick Brashear [Fri, 16 Oct 2009 14:44:58 +0000]
exit less

start cleanup of calls to exit scatter into library code. ugen_ callers handle
error returns correctly; rmtsys already deals with errors; and rx_pthread can
already deal with errors in the case that's fixed

Reviewed-on: http://gerrit.openafs.org/667
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agosnowleopard 64 bit warning death
Derrick Brashear [Thu, 15 Oct 2009 23:21:54 +0000]
snowleopard 64 bit warning death

make all errors from warnings when compiling on snowleopard die

as a note, the ukernel pid, and pthread self as id changes, probably
should be revisited, but for now i have changed nothing. it should
be a separate change.

Reviewed-on: http://gerrit.openafs.org/666
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoDetect and use %zu for size_t when available
Andrew Deason [Mon, 12 Oct 2009 02:55:05 +0000]
Detect and use %zu for size_t when available

Commit db949b7fade69d7eb1e38ad85d5b822c443306cb was incorrect and
generated warnings on many platforms; we cannot determine the correct
format string for a size_t at compile-time. Instead use the %z length
modifier when we can detect that it is safe to use. Otherwise, fall back
to just %lu on Unix, since it is reasonable to assume
sizeof(size_t) == sizeof(unsigned long) on Unix.

Reviewed-on: http://gerrit.openafs.org/647
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix unitialized variable warning in cfghost.c
Andrew Deason [Thu, 15 Oct 2009 03:43:27 +0000]
Fix unitialized variable warning in cfghost.c

Initialize cellentry. It does not appear to be possible to actually hit
code that references an uninitialized cellentry, but the compiler can
still complain.

Reviewed-on: http://gerrit.openafs.org/665
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: AFSVolSync creationDate based readonly volume versioning
Jeffrey Altman [Wed, 14 Oct 2009 03:36:26 +0000]
Windows: AFSVolSync creationDate based readonly volume versioning

Implement readonly volume versioning based upon the .readonly
volume creation date as reported in the AFSVolSync output
parameter of every RXAFS RPC.

Whenever a new callback is obtained for an object stored within
a .readonly volume, the volume creation date is recorded in the
cm_volume object along with the callback expiration time and
a reference to the server that issued it.  These values are
used to determine if a callback is present when the cm_scache
object's volume creation date matches the cm_volume object's
volume creation date.  If there is no match, the cm_scache
object's individual callback information is used to determine
whether a callback has been registered.

This mechansism ensures that the whole-volume callback issued
in response to a RXAFS_FetchStatus request against a .readonly
volume can be applied to all objects that are cached from the
same version of the .readonly volume instance.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/654
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Asanka Herath <asanka@secure-endpoints.com>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows does not provide sys/wait.h
Jeffrey Altman [Thu, 15 Oct 2009 02:33:11 +0000]
Windows does not provide sys/wait.h

sys/wait.h was added to butm/file_tm.c by
patch set 789580d13591ff1aa53cfbf5fef4d46b0b65c805
(gerrit 635)

Reviewed-on: http://gerrit.openafs.org/662
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix checked builds with gcc4.2
Simon Wilkinson [Fri, 9 Oct 2009 23:30:01 +0000]
Fix checked builds with gcc4.2

Recent change sets removed the 'ignore-all-warnings' mode from a
number of files, in favour of using the implicit-function-declaration
pragma. Sadly, that pragma isn't available in gcc 4.2. Revert the
Makefile changes such that ignore all warnings is turned back on
for the affected files, and note this in README.WARNINGS

Reviewed-on: http://gerrit.openafs.org/639
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoadd SRV record lookups to unix afsconf support suite also
Derrick Brashear [Wed, 7 Oct 2009 13:21:53 +0000]
add SRV record lookups to unix afsconf support suite also

create new api call afsconf_LookupServer
make afsconf_GetAfsdbInfo call it
include T_SRV support

Reviewed-on: http://gerrit.openafs.org/594
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoAdd fsint dependency to audit builds
Simon Wilkinson [Wed, 14 Oct 2009 21:27:34 +0000]
Add fsint dependency to audit builds

The 'audit' target requires that fsint is built first. Express this as a make
dependency.

Reviewed-on: http://gerrit.openafs.org/660
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoWindows: refactor afs status cloning and clone when fs fetchdata bug detected
Jeffrey Altman [Tue, 13 Oct 2009 01:57:52 +0000]
Windows: refactor afs status cloning and clone when fs fetchdata bug detected

When the file server fetchdata invalid length bug is detected the
cache manager must fake the AFS Status info for the file as well
as the AFSVolSync info.   Otherwise, the merge status is incorrect.

LICENSE MIT

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

12 years agoRevert "Windows: Readonly Volume Versioning for Windows Cache Manager"
Jeffrey Altman [Wed, 14 Oct 2009 13:26:27 +0000]
Revert "Windows: Readonly Volume Versioning for Windows Cache Manager"

This reverts commit bb6e38a45b8b5061cd4c9613262fa015957fb8d8.

Reviewed-on: http://gerrit.openafs.org/659
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: fix build due to broken src/volser/NTMakefile
Jeffrey Altman [Wed, 14 Oct 2009 02:35:55 +0000]
Windows: fix build due to broken src/volser/NTMakefile

Commit 82aa5b4e09ac8a550525efd0e357783a3b3aed88 incorrectly
updated the src/volser/NTMakefile resulting in a broken
build system.

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

12 years agoLinux: Remove declaration of unused variable filp
Marc Dionne [Wed, 14 Oct 2009 01:52:47 +0000]
Linux: Remove declaration of unused variable filp

filp is unused after the recent rework of osi_file.c

Reviewed-on: http://gerrit.openafs.org/656
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix warnings in butc, tbutc, and butm
Andrew Deason [Fri, 9 Oct 2009 15:17:43 +0000]
Fix warnings in butc, tbutc, and butm

tbutc:
 - Ignore warnings for dump.c

butc/dump.c:
 - butm_WriteFileData takes a char*, no need to cast buffer

 - volumeHeader_hton takes a struct volumeHeader*, though, need to cast
   buffer there

 - Ignore strict prototypes

butc/recoverDb.c:
 - scanVolData takes a uint*, not an int*

 - Initialize nbytes to 0

 - Remove warning inhibition

butc/tcmain.c:
 - atocl takes an int*, not a uint*

 - Ignore implicit function declaration warnings

butc/tcudbprocs.c:
 - Ignore implicit function declaration warnings (ubik stuff)

butm/file_tm.c:
 - Include sys/wait.h for the waitpid() prototype

Reviewed-on: http://gerrit.openafs.org/635
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoWindows: If SecurityLevel is configured use it for vos.exe and pts.exe
Jeffrey Altman [Mon, 12 Oct 2009 18:20:00 +0000]
Windows: If SecurityLevel is configured use it for vos.exe and pts.exe

If the SecurityLevel registry value indicates that crypt should be
the default, then always set -encrypt for vos.exe and pts.exe.

Reviewed-on: http://gerrit.openafs.org/648
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoUse f_bsize for ZFS afs_fsfragsize
Andrew Deason [Thu, 24 Sep 2009 17:02:55 +0000]
Use f_bsize for ZFS afs_fsfragsize

On ZFS, the disk space files can use up can be rounded up to the next
recordsize boundary if they've been truncated. This can cause the Unix CM
to mis-estimate cache usage, since it truncates files fairly often, and
assumes the disk space used is the file length rounded up to the next
f_frsize.

Since the ZFS recordsize is available via the statvfs f_bsize, just
round up to that instead. There is still some additional file metadata
that takes up some additional space on disk, but according to ZFS people
I've spoken to about this, it cannot be known in advance. In practice,
the additional metadata storage doesn't appear to exceed about 10% of
the data storage, which should be acceptable.

FIXES 125365

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

12 years agoAdd public protoypes for volser
Simon Wilkinson [Fri, 9 Oct 2009 20:17:16 +0000]
Add public protoypes for volser

Add a new public header file volser_prototypes.h, which contains
prototypes for those volser functions that are used by the rest of the
tree, and link it into the Unix and Windows build systems.

Rename the current volser_prototypes.h volser_internal.h, and update
references to it.

Make those places that should use the new public header use it, and
re-enable warnings-as-errors as appropriate.

Remove the warning free files from the list in README.WARNINGS

Add butm_prototypes.h to butc/lwps.c, so we can enable warnings for that,
too.

Reviewed-on: http://gerrit.openafs.org/636
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoFormatting typos in pts.pod
Andrew Deason [Mon, 12 Oct 2009 18:26:57 +0000]
Formatting typos in pts.pod

Fix a couple of B<...> sequences pod2man yells at us about.

Reviewed-on: http://gerrit.openafs.org/649
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>

12 years agoAdd afsio to gitignore
Simon Wilkinson [Fri, 9 Oct 2009 20:21:23 +0000]
Add afsio to gitignore

Add the new afsio binary to the appropriate .gitignore file

Reviewed-on: http://gerrit.openafs.org/637
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Readonly Volume Versioning for Windows Cache Manager
Jeffrey Altman [Mon, 5 Oct 2009 18:00:50 +0000]
Windows: Readonly Volume Versioning for Windows Cache Manager

When the HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
"ReadOnlyVolumeVersioning" DWORD registry value is non-zero, the volserver
will be queried for each .readonly volume to obtain the lastUpdateTime.
The lastUpdateTime will be used as a volume version identifier for each
cm_scache_t object stored in the volume.  With a known volume version,
whenever a current status is obtained for any object within the .readonly volume,
all the cached objects within that volume that have the same volume version
can share the resulting callback registration.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/579
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows Explorer Shell Extension: Remove OutputDebugString calls
Jeffrey Altman [Sun, 11 Oct 2009 22:06:25 +0000]
Windows Explorer Shell Extension: Remove OutputDebugString calls

Remove all OutputDebugString calls from the explorer shell extension.
OutputDebugString() requires acquiring system global locks.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/643
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Correct lock error codes and log file server lockCount
Jeffrey Altman [Mon, 12 Oct 2009 12:28:54 +0000]
Windows: Correct lock error codes and log file server lockCount

The error codes that should be returned when a lock request
fails are:

  STATUS_LOCK_NOT_GRANTED for an explicit lock request
  STATUS_SHARING_VIOLATION when a CreateFile fails due to a previous lock

Correct the service to ensure that these values are in fact returned.

Also, add 'fsLockCount' field to cm_scache_t and dump its value
as part of the "fs memdump" output.  This permits some ability to
identify what the file server thinks the lock count is.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/646
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoImprove accuracy of Rx RTT calculation by skipping retransmitted packets
Jeffrey Altman [Mon, 5 Oct 2009 18:34:59 +0000]
Improve accuracy of Rx RTT calculation by skipping retransmitted packets

Rx RTT calculations are based on Van Jacobson's work using
constants that make computations fast but are not necessarily
the best for modeling Rx protocol exchanges.  This patch does
not alter the constants but does improve the comments to show
that the math is correct.

Phil Karn in 1987 demonstrated that Van Jacobson's algorithms
produced inaccurate results when the RTT computed from an
acknowledgement of a retransmitted packet were included.  The
resulting RTT would either be too small causing the system to
retransmit too many packets or too long resulting in too few
being sent.

This patch follows Phil Karn's advice which was also adopted
as mandatory for TCP in RFC2988.  Retransmitted packets and
delayed acks are skipped and the retransmit time is backed off
(up to a maximum of 3 seconds) until a successful acknowlegement
is received for an initially transmitted packet.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/580
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoUse AFS_PROC consistently
matt@linuxbox.com [Sat, 10 Oct 2009 13:09:53 +0000]
Use AFS_PROC consistently

Make consistent use of AFS_PROC in portable and mixed files, adding the define
for platforms which lacked it.  This completes a change that has been ongoing
for several years.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/642
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoRevert "Linux: kmem_cache_create fix and cleanup"
Simon Wilkinson [Fri, 9 Oct 2009 23:46:08 +0000]
Revert "Linux: kmem_cache_create fix and cleanup"

This reverts commit 6133d25397b8365d450c99b8bc147972f8600074.

This patch breaks builds on RHEL5.3 - revert it until we can come up
with a fix.

Reviewed-on: http://gerrit.openafs.org/640
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoWindows: use port when finding server by address
Jeffrey Altman [Thu, 8 Oct 2009 12:59:15 +0000]
Windows: use port when finding server by address

Modify cm_FindServerByIP to search by port as well.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/607
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoWindows: Prevent fs fetchdata offset bug error from propagating to caller
Jeffrey Altman [Fri, 9 Oct 2009 10:23:10 +0000]
Windows: Prevent fs fetchdata offset bug error from propagating to caller

When the file server fetchdata offset bug is triggered and detected,
not only do we have to behave as if 'length_found' is zero, but we
also must ignore the RXGEN_CC_UNMARSHAL error that will be returned
from rx_EndCall() due to the parsing error that occurred during the
rx_Read32() call.

LICENSE MIT

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

12 years agoLinux: kmem_cache_create fix and cleanup
Marc Dionne [Fri, 9 Oct 2009 01:53:03 +0000]
Linux: kmem_cache_create fix and cleanup

Fix the kmem_cache constructor function to match the current
expected prototype, and cleanup related code.  This has been wrong
for a while, but since we were just passing extra parameters the
only effect was to generate a warning.

- Add a new configure test to detect the new constructor function
signature
- Define the older versions of the constructor in osi_compat.h,
making them call the current version
- Move a few compatibility #defines to osi_compat.h
- Clean up the call to kmem_cache_create by introducing an inline
afs_kmem_cache_create in osi_compat.h

Reviewed-on: http://gerrit.openafs.org/621
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix warning in vol/namei_ops.c
Andrew Deason [Thu, 8 Oct 2009 22:50:06 +0000]
Fix warning in vol/namei_ops.c

Commit 906403c6d770026fd9da606ea468e47ee911f896 introduced a warning by
making 'error' unused anywhere. Remove the declaration, as well.

Reviewed-on: http://gerrit.openafs.org/620
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoUpdate README with solved/pending docs tasks
Davor Ocelic [Thu, 8 Oct 2009 21:03:06 +0000]
Update README with solved/pending docs tasks

Reviewed-on: http://gerrit.openafs.org/618
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoUpdate backup suite manpages
Davor Ocelic [Thu, 8 Oct 2009 21:01:39 +0000]
Update backup suite manpages

 -- Add missing POD links (L<>)

 -- Verify all subcommands and options

 -- Format > 80 columns synopsis lines

Reviewed-on: http://gerrit.openafs.org/617
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoUpdate fstrace suite manpages
Davor Ocelic [Thu, 8 Oct 2009 20:58:31 +0000]
Update fstrace suite manpages

 -- Add missing POD links (L<>)

 -- Verify all subcommands and options

 -- Format > 80 columns synopsis lines

Reviewed-on: http://gerrit.openafs.org/616
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoMinimal left docs updates for vos suite
Davor Ocelic [Thu, 8 Oct 2009 20:57:03 +0000]
Minimal left docs updates for vos suite

Reviewed-on: http://gerrit.openafs.org/615
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoTypo in vos_remsite.pod
Andrew Deason [Thu, 8 Oct 2009 18:15:00 +0000]
Typo in vos_remsite.pod

A typo in c717fcd32cabbc9651b81ef3d0cea11d3a6ecd57 removed the = before
the first head1 in vos_remsite.pod. Put it back.

Reviewed-on: http://gerrit.openafs.org/612
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoAdd POD links (L<>) in pts.pod and symlink.pod
Davor Ocelic [Thu, 8 Oct 2009 17:32:36 +0000]
Add POD links (L<>) in pts.pod and symlink.pod

Reviewed-on: http://gerrit.openafs.org/610
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoUpdate vos suite manpages
Davor Ocelic [Thu, 8 Oct 2009 17:31:00 +0000]
Update vos suite manpages

Larger collection of all vos suite commands, including but
not limited to:

 -- documented all commands / options, verified against both 1.4 and 1.5 tree
    (including the common -encrypt/-noresolve options)

 -- correct order, POD formatting and synopsis for all commands' options

 -- shorthand synopsis provided for all commands that missed it, with proper
    non-ambiguous command abbreviations of all options

 -- POD synopsis formatted to 80-columns in commands where it was running over

 -- for newer options, documented which OpenAFS version they became available

 -- proper manpage links using L<> in vos.pod

Reviewed-on: http://gerrit.openafs.org/609
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoAllow check-pod to work on specific files or dirs
Davor Ocelic [Thu, 8 Oct 2009 17:20:33 +0000]
Allow check-pod to work on specific files or dirs

Reviewed-on: http://gerrit.openafs.org/608
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoUpdate readme with solved and pending tasks
Davor Ocelic [Thu, 8 Oct 2009 17:33:26 +0000]
Update readme with solved and pending tasks

Reviewed-on: http://gerrit.openafs.org/611
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoReduce warnings in vos.c
Andrew Deason [Wed, 7 Oct 2009 20:57:04 +0000]
Reduce warnings in vos.c

Squash a few miscellaneous that appear when building vos.c:

 -- CreateVolume should use util_GetUInt32 to parse vol ids, since they
    are now unsigned

 -- The m_uuid argument of print_addrs is altered, so do not declare it
    const

 -- Declare the confDir argument of ugen/vsu_ClientInit to be const,
    since it does not change, and vos.c passes a const confDir in
    MyBeforeProc

 -- Ignore implicit function declaration warnings and remove
    CFLAGS_NOERROR from the vos.c build, since the only remaining
    warning is an implicit function declaration

Reviewed-on: http://gerrit.openafs.org/602
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix warnings in rxkad
Andrew Deason [Wed, 7 Oct 2009 22:33:02 +0000]
Fix warnings in rxkad

Some miscellaneous warnings throughout rxkad:

rxkad/ticket5.c:
 - Explicitly cast ticket blob to unsigned char*, as some functions take
   a ticket as a char*, and some take it as an unsigned char*

 - in tkt_DecodeTicket5, make 'start' and 'end' be unsigned, since that
   is what their callers think they are

 - Ignore implicit function declaration warnings (for CRC functons)

 - Remove general warning inhibition

rxkad/ticket.c:
 - in tkt_DecodeTicket, make 'start' and 'end' be unsigned, since that
   is what their callers think they are

 - Remove general warning inhibition

rxkad/v5der.c:
 - In decode_enumerated, use der_get_unsigned instead of der_get_int,
   since we're decoding an unsigned integer.

rxkad/rxkad_server.c:
 - The last two arguments to rxkad_DeriveXORInfo are char*s, so
   explicitly cast them to be so

 - Remove general warning inhibition

rxkad/rxkad_common.c:
 - rxkad_stats_t has had a couple of spares transform into
   clientObjects/serverObjects; account for them and don't overrun the
   spares array

Reviewed-on: http://gerrit.openafs.org/600
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoRemove warnings related to type-punning
Andrew Deason [Wed, 7 Oct 2009 21:42:42 +0000]
Remove warnings related to type-punning

cmd/cmd.c:
 - Just make dummy be a struct cmd_item instead of casting

rxdebug/rxdebug.c:
 - Access the stats packet through a union instead of casting and
   dereferencing

util/uuid.c:
 - Access the seed through a union and an array instead of that
   incrementing-pointer approach

Reviewed-on: http://gerrit.openafs.org/599
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

12 years agoWindows: use xdr_alloc to allocate memory for Callback data structs
Jeffrey Altman [Thu, 8 Oct 2009 12:35:09 +0000]
Windows: use xdr_alloc to allocate memory for Callback data structs

xdr_alloc must be used instead of malloc in SRXAFSCB_GetLocalCell
and SRXAFSCB_GetCacheConfig

LICENSE MIT

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

12 years agoauthclient.c: fix 64-bit specific warnings
Marc Dionne [Thu, 8 Oct 2009 12:12:28 +0000]
authclient.c: fix 64-bit specific warnings

Commit 36be36e034141ded8fff5ff2edab3223b23c9fcf introduced some casts
from an integer type to void *.  This generates warnings on a 64-bit
platform.
Use uintptr_t casts to make the compiler happy.

Reviewed-on: http://gerrit.openafs.org/605
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoAdd missing variable to afsio
Jeffrey Altman [Thu, 8 Oct 2009 11:25:24 +0000]
Add missing variable to afsio

Callback variable missing in WriteFile

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/604
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Hartmut Reuter <reuter@rzg.mpg.de>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoPermit DNS SRV record lookups to be used by the Windows afsconf_GetAfsdbInfo
Jeffrey Altman [Tue, 6 Oct 2009 18:46:09 +0000]
Permit DNS SRV record lookups to be used by the Windows afsconf_GetAfsdbInfo

Permit DNS SRV record lookups to be used by the Windows afsconf_GetAfsdbInfo

As per the published DNS SRV internet draft for the AFS3 protocol,
DNS SRV records are to replace AFSDB records as the primary method
of looking up AFS3 service location information.

In order to make that happen for Windows:

1. afsconf_GetAfsdbInfo must be able to translate from internal service
names to IANA assigned service names.

2. The Windows getAFSServer() API must accept IANA service and protocol
parameters as well as the port number to use if AFSDB record fallback is
required.

3. The Windows cache manager must pay attention to the port number
stored within the sockaddr_in structure instead of using hard coded
values based upon the server type.
For afsconf_GetAfsdbInfo, in addition to searching for the requested
IANA service, if that service is prserver or kaserver fallback to
the vlserver record (if any).

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/593
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

12 years agoxdrproc_t functions take a caddr_t, not caddr_t*
Andrew Deason [Wed, 7 Oct 2009 22:14:08 +0000]
xdrproc_t functions take a caddr_t, not caddr_t*

Callers of xdrproc_t functions give the function a foo* as the second
argument, not a foo**, and the xdrproc_t functions themselves expect
this. Make the xdrproc_t typedef accurately reflect that, thereby
ridding us of some warnings.

Reviewed-on: http://gerrit.openafs.org/603
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoIgnore libafsrpc warnings for shlibafsrpc also
Andrew Deason [Wed, 7 Oct 2009 21:39:18 +0000]
Ignore libafsrpc warnings for shlibafsrpc also

Some warnings were ignored in libafsrpc, but not in shlibafsrpc. Ignore
them in both places.

Reviewed-on: http://gerrit.openafs.org/601
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix warnings in lwp/process.c
Andrew Deason [Wed, 7 Oct 2009 22:07:52 +0000]
Fix warnings in lwp/process.c

 -- The EP/ep function does not return anything; declare the function pointer
    accordingly

 -- Explicitly cast &stackvar to char* to avoid a warning

Reviewed-on: http://gerrit.openafs.org/598
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoFix warnings in kauth/authclient.c
Andrew Deason [Wed, 7 Oct 2009 22:48:52 +0000]
Fix warnings in kauth/authclient.c

 -- In ka_Authenticate, explicitly cast 'start' and 'end' to void*,
    since kawrap_ubik_Call takes all arguments as void*s

 -- Fix kawrap_ubik_Call to not be an old-style declaration

 -- Only ignore strict prototypes and implicit function declaration
    warnings

Reviewed-on: http://gerrit.openafs.org/597
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoRemove a pointer->integer warning in fstrace.c
Andrew Deason [Wed, 7 Oct 2009 22:16:30 +0000]
Remove a pointer->integer warning in fstrace.c

Explicitly cast eparm to a long in afs_syscall when calling
proc_afs_syscall, to avoid a warning.

Reviewed-on: http://gerrit.openafs.org/596
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoPrototype strcasestr in afsmonitor.c
Andrew Deason [Wed, 7 Oct 2009 22:19:22 +0000]
Prototype strcasestr in afsmonitor.c

If we HAVE_STRCASESTR, we lack the prototype for strcasestr in
afsmonitor.c unless we def _GNU_SOURCE before including string.h on GNU
systems. To avoid side-effects or pulling in extra stuff, just prototype
strcasestr ourselves for the time being (if we have it) instead of
def'ing _GNU_SOURCE.

Reviewed-on: http://gerrit.openafs.org/595
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

12 years agoCorrect and use AFS_SIZET_FMT
Andrew Deason [Wed, 7 Oct 2009 19:52:02 +0000]
Correct and use AFS_SIZET_FMT

On *nix, a size_t needs either %lu or %u to be interpolated in a string,
depending on if we're on an ILP32 arch or not. Define AFS_SIZET_FMT
accordingly, and actually use AFS_SIZET_FMT when we try to print a
size_t.

This removes numerous -Wformat warnings, at least when building on
i386_linux26.

Reviewed-on: http://gerrit.openafs.org/592
Reviewed-by: Matt Benjamin <matt@linuxbox.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>