openafs.git
14 years agomacos code signature for afsd
Derrick Brashear [Mon, 4 Jan 2010 18:44:48 +0000]
macos code signature for afsd

this is a dodge; we should sign with a real certificate and distribute
signed binaries. until we more formally exist, this allows application
firewall to at least cope better with us.

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

14 years agoRefuse to attach inode partitions with UFS logging
Andrew Deason [Fri, 18 Dec 2009 18:17:41 +0000]
Refuse to attach inode partitions with UFS logging

Partitions with the 'logging' UFS mount option are known to cause
corruption when using the inode fileserver backend. So, if we detect
that we are attempting to attach a 'logging' partition, refuse to attach
it.

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

14 years agoLinux: don't oops on writeback if vcache has no stashed credentials
Marc Dionne [Tue, 5 Jan 2010 00:37:40 +0000]
Linux: don't oops on writeback if vcache has no stashed credentials

When doing writeback, use current credentials if we can't find
stashed credentials in the vcache entry.
This is normally stashed in afs_open, so it's not clear how we
get to that point, but that's not a reason to trigger an oops.

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

14 years agoviced: allow alternate addresses on the same hash chain again
Michael Meffie [Tue, 29 Dec 2009 18:40:15 +0000]
viced: allow alternate addresses on the same hash chain again

Revert the logic meant to prevent duplicate entries in the
host address hash table so hosts with multiple addresses can
be stored in the same hash bucket again.

Add a new log message to show when the host cannot be stored
in the hash table because of an address-port pair collision
with a host already in the hash table.

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

14 years agoFixes for supergroups on Darwin 64bit
Simon Wilkinson [Tue, 5 Jan 2010 00:14:06 +0000]
Fixes for supergroups on Darwin 64bit

Some fixes needed to make supergroups build on 64bit Mac OS 10.5

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

14 years agoUnix CM: Use xdr_free to free memory allocated by XDR
Jeffrey Altman [Wed, 30 Dec 2009 11:32:58 +0000]
Unix CM: Use xdr_free to free memory allocated by XDR

In src/afs/afs_volume.c VL_GetAddrsU() returns memory allocated by the
xdr package. In 1.4 there was no method of freeing this safely. On the
head there is using the xdr_free() function.

FIXES 124937

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

14 years agofreebsd: fix afs_root signature (RELENG_8)
Matt Benjamin [Thu, 31 Dec 2009 00:19:09 +0000]
freebsd: fix afs_root signature (RELENG_8)

Track removal of thread id param, which had become redundant.

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

14 years agoBuild fix: restore centry in ptutils.c
Marc Dionne [Thu, 31 Dec 2009 16:08:32 +0000]
Build fix: restore centry in ptutils.c

The declaration of centry is needed when supergroups are not
enabled.  Restore it within the ifdef so that we don't get
an unused variable warning if supergroups are enabled.

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

14 years agoRemove warnings from supergroups code on x86
Russ Allbery [Thu, 31 Dec 2009 00:22:37 +0000]
Remove warnings from supergroups code on x86

Prototype functions where necessary, remove unused variables, fix
mismatches of data types (char * != void *), initialize variables the
compiler can't tell are initialized, compare integers against 0 and
not NULL, and wrap assignments used as conditions in an explicit
comparison.

This removes all warnings that fail --enable-checking on x86 with
--enable-supergroups.  64-bit will still have warnings.

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

14 years agoCorrect spelling errors in man pages
Russ Allbery [Thu, 31 Dec 2009 04:30:27 +0000]
Correct spelling errors in man pages

Correct several spelling errors in the man pages detected by Debian's
Lintian package checking tool.

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

14 years agofreebsd: track RELENG_8
Matt Benjamin [Wed, 23 Dec 2009 00:48:02 +0000]
freebsd: track RELENG_8

Fixes to re-enable build and load of kernel module on FreeBSD's
RELENG_8.  Includes the following changes:

Remove cred pointer argument to vop_getattr and vop_setattr.
Restore VSUID and VGUID defines, but move to osi_machdep.h.
Fixup calls to vinvalbuf, create a macro to avoid too many ifdefs.
Revert incorrect definition of gop_lookupname_user.  Avoid
uninitialized use of 'code' variable in vop_access, and track
new a_accmode member name.  Remove cred pointer in VFS_STATFS.
Avoid including sys/ioctl.h in kernel mode (formerly had no
effect, it's now an error).  Avoid using an empty file as an
object file in shlibafsrpc link.  Replace suser() calls with calls
to priv_check, using defined OpenAFS privileges (thanks due to
Ben Kaduk).

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

14 years agoLinux: Check for multiple silly renames
Simon Wilkinson [Sun, 27 Dec 2009 11:28:43 +0000]
Linux: Check for multiple silly renames

We don't want to do multiple silly renames of the same dcache entry,
so add a check for that occuring, and just return EBUSY if we're
trying to do so.

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

14 years agoAbstract out Linux sillyrename function
Simon Wilkinson [Sun, 27 Dec 2009 11:06:01 +0000]
Abstract out Linux sillyrename function

In order to keep the dcache happy, the Linux client has its own
sillyrename function. Abstract this out from afs_linux_unlink into a
function of its own (afs_linux_sillyrename) so we can make use of it
from other vnodeops.

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

14 years agoRemove unused configuration tests
Simon Wilkinson [Sat, 26 Dec 2009 18:22:32 +0000]
Remove unused configuration tests

Remove configure tests that are no longer used by the build. Testing
for unused features just slows down the configuration process.

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

14 years agoRemove HAVE_STRUCT_BUF test
Simon Wilkinson [Thu, 24 Dec 2009 18:19:01 +0000]
Remove HAVE_STRUCT_BUF test

Ever since b1edf891d717ee8e08c0d93738a204cff09cf68f was committed,
we've not needed to test to see if the OS provides struct buf - we
can just declare it as a structure without providing a definition
in all circumstances.

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

14 years agoRemove --disable-full-vos-listvol-switch option
Simon Wilkinson [Thu, 24 Dec 2009 15:35:47 +0000]
Remove --disable-full-vos-listvol-switch option

Remove the --disable-full-vos-listvol-switch configuration option,
and the corresponding #ifdefs. Full output from vos listvol is now
always enabled.

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

14 years agoRemove --disable-afsdb
Simon Wilkinson [Thu, 24 Dec 2009 15:14:46 +0000]
Remove --disable-afsdb

Remove the --disable-afsdb option from configure, and the
corresponding AFS_AFSDB_ENV #ifdefs from the code. This means that
the AFSDB code will always be built, but whether it used or not
can still be controlled by runtime options in the cache manager.

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

14 years agoclean up axscache at shutdown
Derrick Brashear [Tue, 29 Dec 2009 16:29:09 +0000]
clean up axscache at shutdown

modify allocations in axscache code to be able to be tracked. at shutdown,
clean up allocations.

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

14 years agoMake DAFS 'bos salvage' work in restricted mode
Andrew Deason [Wed, 30 Dec 2009 16:44:39 +0000]
Make DAFS 'bos salvage' work in restricted mode

bosserver currently has code to specifically allow 'bos
salvage'-initiated salvages to run when in restricted mode. This only
specifically tests for running salvager, though, and so fails when 'bos
salvage' is run against a DAFS fileserver and tries to run
'salvageserver -client' instead.

Test for 'salvageserver -client' as well, so we can run 'bos salvage'
for DAFS fileservers in restricted mode.

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

14 years agoRemove --disable-largefile-fileserver
Simon Wilkinson [Thu, 24 Dec 2009 14:34:42 +0000]
Remove --disable-largefile-fileserver

Make largefile fileservers the only option. Remove all of the
AFS_LARGEFILE_ENV ifdefs, and tidy up some code as a result of
this change.

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

14 years agoTurn on bos restricted code
Simon Wilkinson [Thu, 24 Dec 2009 13:00:53 +0000]
Turn on bos restricted code

Remove the #ifdef's around the bos restricted mode code. This makes
restricted mode available as part of the standard build, but a server
will not go into restricted mode unless the relevant command line
options are specified, or bos setrestricted is run.

Document bos_setrestricted and bos_getrestricted, and the new
'-restricted' command line option. Add a note to the man pages of
all of the commands whose behaviour is affected by restricted mode.

Add 'setr' and 'getr' aliases for setrestart and getrestart so that
these documented shortcuts continue to work (otherwise they'd be
ambiguous against setrestricted and getrestricted). Note that
setre, setres, and setrest will not work once this patch is applied.

Change-Id: Ie69d21493ea5f78757f0a3d478de43fdaabd3c31
Reviewed-on: http://gerrit.openafs.org/1028
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

14 years agoUpdate .gitignore for copied rxkad files
Russ Allbery [Thu, 31 Dec 2009 04:33:14 +0000]
Update .gitignore for copied rxkad files

src/rxkad/Makefile copies fcrypt.h and sboxes.h from the domestic
subdirectory, so ignore the copies in the src/rxkad directory.

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

14 years agoLinux: #if BLAH should be #if defined(BLAH)
Simon Wilkinson [Tue, 29 Dec 2009 22:48:39 +0000]
Linux: #if BLAH should be #if defined(BLAH)

As the subject says, using #if BLAH gives warnings. Fix them
in osi_ioctl.c

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

14 years agomissing brace in afs_get_sb
Michael Meffie [Wed, 30 Dec 2009 18:02:31 +0000]
missing brace in afs_get_sb

Fix a syntax error when GET_SB_HAS_STRUCT_VFSMOUNT is
not true so we can build on older versions of linux.

Change-Id: I85aac803f68c3f3729abd32dfcecbc20ccac8ab9
Reviewed-on: http://gerrit.openafs.org/1049
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>

14 years agoUnix: Rename aklog_main.c as aklog.c
Simon Wilkinson [Tue, 29 Dec 2009 17:06:42 +0000]
Unix: Rename aklog_main.c as aklog.c

Now the reasons for having aklog_main.c separate from aklog.c have gone,
rename the file so we've just got aklog.c

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

14 years agoUnix: Merge aklog with aklog_main
Simon Wilkinson [Tue, 29 Dec 2009 17:03:50 +0000]
Unix: Merge aklog with aklog_main

Historically, aklog was split into aklog.c (which just contained a
wrapper) and aklog_main.c, which did all of the hard work. Now
that we've purged all of the Windows code from aklog_main.c, we
can merge them both into the same file, so do so.

FIXES 20884

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

14 years agoavoid leaking stat info
Derrick Brashear [Thu, 17 Dec 2009 20:33:42 +0000]
avoid leaking stat info

if a file is already CStatd we just copy out the information without doing
access checks. add an access check.

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

14 years agoReturn a cell name from afsconf_LookupServer
Andrew Deason [Tue, 29 Dec 2009 20:45:51 +0000]
Return a cell name from afsconf_LookupServer

Previously, afsconf_LookupServer could not meaningfully return a cell
name, since a char* was passed in for realCellName, and
afsconf_GetAfsdbInfo was expecting the value of the pointer to change.
Change afsconf_LookupServer to take a char**, and pass realCellName by
reference, so we can get a cell name back.

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

14 years agoFix ioctl32 inclusion on Sparc 64
Simon Wilkinson [Tue, 29 Dec 2009 21:56:36 +0000]
Fix ioctl32 inclusion on Sparc 64

ioctl32.h only became available in Linux 2.5.44, so reduce the scope
of the include. It went away again, in Linux 2.6.22. In its short
life, it only ever provided prototypes for registering translation
handlers, and for sys_ioctl.

Only include it where we call those handlers, and when we call them,
to remove compilation errors for Sparc64.

Change-Id: I7816bd8b1e18ead68f7e5078e684d60bf59ac470
Reviewed-on: http://gerrit.openafs.org/1040
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoDocumentation: Fix asetkey syntax
Simon Wilkinson [Wed, 30 Dec 2009 01:39:26 +0000]
Documentation: Fix asetkey syntax

To set a key, use "asetkey add", not just "asetkey"

FIXES 125430

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

14 years agoLinux: Replace invalidate_inode_pages
Simon Wilkinson [Tue, 29 Dec 2009 22:58:56 +0000]
Linux: Replace invalidate_inode_pages

invalidate_inode_pages is now marked as deprecated in the kernel
headers. Use the equivalent call to invalidate_mapping_pages() which
has been available since Linux 2.5

Change-Id: I58de20e16874bb06991320b26bc6ce63685b8bb4
Reviewed-on: http://gerrit.openafs.org/1042
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoDocumentation: vos dump -verbose outputs to stderr
Simon Wilkinson [Wed, 30 Dec 2009 01:04:23 +0000]
Documentation: vos dump -verbose outputs to stderr

vos dump -verbose sends its logging to stderr, not to stdout (where
it would potentially collide with the dump data itself).

FIXES 124911

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

14 years agorxgen: Remove stray debugging statement
Simon Wilkinson [Tue, 29 Dec 2009 23:20:36 +0000]
rxgen: Remove stray debugging statement

A stray "Printing ex_req" slipped into the last set of rxgen changes.
Remove the unnecessary debugging statement.

Change-Id: I2dda4138d70bf3429122f58bbbae996b84baefac
Reviewed-on: http://gerrit.openafs.org/1043
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

14 years agoMove TOP_INCDIR/des dependency to prelude
Andrew Deason [Thu, 24 Dec 2009 18:32:14 +0000]
Move TOP_INCDIR/des dependency to prelude

Make TOP_INCDIR/des a dependency of the 'prelude' target, not all of the
'dest'-ish targets. Without this, things like 'make tviced' fail since
we never create the TOP_INCDIR/des directory, but 'des' needs to copy
headers into there.

Also, remove the other redundant INCDIR/LIBDIR deps in the 'dest'-y
targets, and put them in 'prelude'.

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

14 years agoCheck viced FetchData length for cache bypass
Andrew Deason [Thu, 17 Dec 2009 21:16:50 +0000]
Check viced FetchData length for cache bypass

Same fix as change I413393a7bacbf207332d7f904cf396c79b77b6b5, but for
the cache bypass code.

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

14 years agoFix warnings in fs.c with --enable-cache-bypass
Andrew Deason [Wed, 23 Dec 2009 20:23:30 +0000]
Fix warnings in fs.c with --enable-cache-bypass

Fix some warnings in src/venus/fs.c so we can compile with
--enable-cache-bypass and --enable-checking:

 -- Include ctype.h so isdigit gets a prototype

 -- Make BypassThresholdCmd have the proper signature

 -- Remove the unused 'size' variable

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

14 years agoSolaris: Don't access lbolt directly
Simon Wilkinson [Tue, 22 Dec 2009 21:46:43 +0000]
Solaris: Don't access lbolt directly

Recent changes in OpenSolaris have removed the 'lbolt' variable.
However, the ddi_get_lbolt accessor (which has been present since
Solaris 10) can be used to get access to the same value. So, use it.

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

14 years agoSolaris: Don't directly fiddle with the groups structure
Simon Wilkinson [Tue, 22 Dec 2009 21:42:19 +0000]
Solaris: Don't directly fiddle with the groups structure

Solaris doesn't let us directly play with the groups structure
anymore. Instead, there is a crsetgroups accessor which can be
used instead. So, use it.

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

14 years agoSolaris: Be more flexible about compilers
Simon Wilkinson [Tue, 22 Dec 2009 21:38:00 +0000]
Solaris: Be more flexible about compilers

OpenSolaris doesn't have its C compiler in /opt/SUNWspro/bin/cc,
but we still have to be careful to avoid gcc, as that can't
build the kernel module.

As a short term stop gap, add a PATH_PROG test which looks in
both /opt/SUNWspro/bin and /opt/SunStudioExpress/bin for cc.
We probably should look in more places, and in the long run,
we should probably be taking whatever autoconf gives us
(for userspace, at least)

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

14 years agoLook for aclocal in more places
Simon Wilkinson [Tue, 22 Dec 2009 21:34:23 +0000]
Look for aclocal in more places

Some operating systems (cough, OpenSolaris, cough) have multiple
versions of aclocal installed, and don't populate the 'aclocal' name.
If 'aclocal' isn't present, then try using 'aclocal-1.10' before we give
up in disgust.

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

14 years agoFix typo in afs_linux_cred_is_current
Andrew Deason [Tue, 22 Dec 2009 14:49:21 +0000]
Fix typo in afs_linux_cred_is_current

987816dfa852750caca8c64c44174a5333ae0e3b introduced a stray 'cred' in
one of the afs_linux_cred_is_current definitions. Remove it so we can
build without STRUCT_TASK_HAS_CRED.

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

14 years agoPrefix global defines
Michael Meffie [Thu, 10 Dec 2009 21:13:45 +0000]
Prefix global defines

Prefix constants relocated to the common afs_consts.h
header to void naming collisions.

Change-Id: Ib657e00385002c957b40b36058f260c6cabd108c
Reviewed-on: http://gerrit.openafs.org/905
Reviewed-by: Mickey Lane <mlane@sinenomine.net>
Tested-by: Mickey Lane <mlane@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

14 years agoConsolidate duplicate definitions
Michael Meffie [Thu, 10 Dec 2009 16:37:34 +0000]
Consolidate duplicate definitions

Housekeeping change to consolidate some common definitions.
Create a new common header called afs_consts.h.  This allows
us to remove the afscp.c dependency on afs.h (so src/tests
will build again.) Rename the max filename definition in the
update server package to MAXFNSIZE to avoid a name conflict
with MAXSIZE.  The global defines will be prefixed with
AFS_ in a second patch.

Change-Id: I2b8d555a244cc92d889618de4eec4a99550d7c7f
Reviewed-on: http://gerrit.openafs.org/855
Reviewed-by: Mickey Lane <mlane@sinenomine.net>
Tested-by: Mickey Lane <mlane@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

14 years agoLinux: fix sysctl for 2.6.33
Marc Dionne [Sun, 20 Dec 2009 13:30:07 +0000]
Linux: fix sysctl for 2.6.33

The sysctl patch for 2.6.33 was a bit overzealous and ifdef'ed
a few lines that it shouldn't have.

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

14 years agoLinux: utsrelease.h is moving
Marc Dionne [Sun, 20 Dec 2009 03:22:05 +0000]
Linux: utsrelease.h is moving

In kernel 2.6.33, utsrelease.h has moved to include/generated.
Adapt the configure code to consider that location, and clean
up that section's indentation.

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

14 years agoFix PAGs for all platforms without Linux keyrings
Simon Wilkinson [Sat, 19 Dec 2009 21:53:54 +0000]
Fix PAGs for all platforms without Linux keyrings

The changes in 7b272177de4c6f78db7f2315f4e30e85ab7660bb sadly break
all platforms which aren't Linux. This is because the logic in PagInCred
doesn't handle the non-Linux case at all. Fix this so that we call
afs_get_group_pag whenever we're not running on Linux.

The code also doesn't match the comment - Linux kernels which don't
have keyrings should use afs_get_group_pag(), regardless of whether
STRUCT_TASK_HAS_CRED. It's unlikely this bit would ever bite anyone
though, kernels with cred support almost certainly require keyrings.

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

14 years agoLinux: Simplify keyring compatibility code
Simon Wilkinson [Sat, 19 Dec 2009 20:21:36 +0000]
Linux: Simplify keyring compatibility code

This introduces a few inline functions in osi_compat.h, to reduce the
number of #ifdefs in the main chunk of code. In particular, we gain
  * afs_linux_key_alloc : to handle all the different key_alloc
                          signatures
  * afs_linux_search_keyring : to handle our two different mechanisms
                               for searching a keyring
  * afs_linux_cred_is_current : will return true if we're using native
credentials, and the passed creds are also
those of the current task

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

14 years agoLinux: Don't panic when keys aren't found
Simon Wilkinson [Sat, 19 Dec 2009 15:40:49 +0000]
Linux: Don't panic when keys aren't found

This fixes two potential problems in our session keyring lookup code,
which can lead to panics in situations where we're using the new struct
cred based code.

The first is that if there is no session kerying installed for the
current task, we'll attempt to do a lookup on a NULL kerying and oops.

The second is that if the keyring_search returns EPERM, then we can end
up unmasking that error code, and return NULL, rather than an error.

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

14 years agoLinux: Flush vcaches when a mount fails
Simon Wilkinson [Sat, 19 Dec 2009 14:48:32 +0000]
Linux: Flush vcaches when a mount fails

GetVCache (well, really NewVCache) creates a new vcache, with an attached
inode, and links it into the VLRU queue, regardless of whether it is
successful in populating that vcache or not. The attached inode, on Linux,
contains a reference to the super block of the filesystem. If the created
vcache is for the root, however, and populating that vcache failes, then mount
fails, and the super block is disposed of. This leaves us with a vcache in
the VLRU queue which contains a reference to a non-existent inode.

When ShakeLooseVCaches comes along a few minutes later, it attempts to discard
this inode. However, doing so fails because the inode no longer has a valid
super block.

Avoid this trauma by ensuring all vcaches are disposed of before the super
block goes away, in the event of a mount failure.

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

14 years agoDo not trust FetchData length from fileservers
Andrew Deason [Thu, 17 Dec 2009 20:59:44 +0000]
Do not trust FetchData length from fileservers

Currently the Unix CM implicitly trusts that the length from a FetchData
request from a fileserver will always be less than the requested length.
If the fileserver sends more data than requested, we can use up more
cache space than we intended, possibly exceeding the cacheinfo cache
limits.

Add a check for this, and return EIO to the caller if the fileserver
responds with too much data.

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

14 years agoplatform target depends on cmd and vol
Andrew Deason [Fri, 18 Dec 2009 18:21:35 +0000]
platform target depends on cmd and vol

The 'platform' target depends on cmd and vol, since on solaris
non-namei, we build fs_conv_sol26.c, which depends on some volume
structures, and uses libcmd. So, have Makefile.in accurately reflect
that dependency so we can build.

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

14 years agokernel ioctl32 conversion typecasting
Derrick Brashear [Thu, 17 Dec 2009 14:48:06 +0000]
kernel ioctl32 conversion typecasting

cast types to avoid a pointer from integer warning when using pointer
types for sizing

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

14 years agoAdd the 'vos endtrans' command
Andrew Deason [Fri, 16 Oct 2009 22:12:35 +0000]
Add the 'vos endtrans' command

Add a command to vos to explicitly end volume transactions. These can
happen if (for example) we segfault or the user ctrl-C's in 'vos'
before/after a volume operation, but before we AFSVolEndTrans.

Change-Id: Ie34ee1fdff917b56900f456c7cf8b1329533a7da
Reviewed-on: http://gerrit.openafs.org/870
Reviewed-by: Dan Hyde <drh@umich.edu>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Tested-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

14 years agoOpenAFS Preference Pane
Claudio Bisegni [Fri, 11 Dec 2009 21:03:39 +0000]
OpenAFS Preference Pane
Now the preference pane is fat compiled.

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

14 years agoExpand ProgramType enumeration
Andrew Deason [Fri, 6 Nov 2009 20:03:52 +0000]
Expand ProgramType enumeration

The ProgramType values volumeUtility and salvager are overloaded. Expand
the ProgramType enum to include more specific program types, and adjust
conditionals to match.

Also, instead of determining all behavior by checking programType, add
some flags to be passed in to VInitVolumePackage to determine e.g.
whether or not we can use the FSSYNC channel. This makes it easier to
see the intent of some conditionals, and reduces the number of times a
caller must lie about what program it is.

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

14 years agoLinux: Use splice to speed up cache storeback
Simon Wilkinson [Fri, 20 Nov 2009 15:08:25 +0000]
Linux: Use splice to speed up cache storeback

This patch adds a new cache store function for Linux, which uses
splice() and direct access to the page cache, rather than doing
data copies to a temporary buffer between rx and afs. It removes
one copy, and some context switching, from the write codepath.

One side-effect here is that it will delay storebehinds from
returning control to the user. Instead of returning once the first
4k has been successfully transfered, we will wait until a cache
chunk has been transmitted. This is currently unavoidable, as we
can't take the GLOCK within a splice actor.

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

14 years agoRework cache store back
Simon Wilkinson [Fri, 20 Nov 2009 15:03:37 +0000]
Rework cache store back

This patch reworks the code to store data from the cache to the server,
such that the entire store loop can be replaced. The idea here is that a
platform which wishes to provide a different store loop, in particular
one which doesn't rely upon multiple data copies, may do so simply by
plugging in a new function.

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

14 years agoLinux: deal with ctl_name removal
Marc Dionne [Thu, 10 Dec 2009 00:06:18 +0000]
Linux: deal with ctl_name removal

The binary sysctl interface will be removed in kernel 2.6.33 and
ctl_name will be dropped from the ctl_table structure.
Make the code that uses ctl_name conditional on a configure test.

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

14 years agopt_util runs on database servers
Simon Wilkinson [Tue, 8 Dec 2009 15:21:54 +0000]
pt_util runs on database servers

Fix the pt_util manpage to reflect the fact that it is run on database
servers, not fileservers.

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

14 years agoWindows: cm_BPlusEnumAlloc should not fail for zero entries
Jeffrey Altman [Sat, 5 Dec 2009 15:51:27 +0000]
Windows: cm_BPlusEnumAlloc should not fail for zero entries

If cm_BPlusEnumAlloc returns NULL, the caller assumes a
memory allocation error.  If the enumeration consists of
zero entries, allocate a structure that stores zero entries.

LICENSE MIT

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

14 years agoWindows: cm_BPlusDirBuildTree can fail
Jeffrey Altman [Sat, 5 Dec 2009 15:53:03 +0000]
Windows: cm_BPlusDirBuildTree can fail

It is possible that cm_BPlusDirBuildTree can fail.  For example,
the server could be marked down after a callback is obtained
but before all of the directory data buffers have been fetched.
cm_BeginDirOp must check for the failure, destroy the tree,
and return the failure code to the caller.  Otherwise, a tree
with no entries may be created and marked with the current
data version.

LICENSE MIT

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

14 years agomacos avoid dotunderbar lookups in fakestat mode
Derrick Brashear [Mon, 7 Dec 2009 04:44:53 +0000]
macos avoid dotunderbar lookups in fakestat mode

cocoa tries to lookup ._ files for every object, possibly generating
AFSDB queries and other fun. avoid them

Change-Id: Id70b6335d4dddcb6d5628a9883b2c81193bb39d7
Reviewed-on: http://gerrit.openafs.org/896
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoadd newline to lockprocs_prototypes.h
Derrick Brashear [Mon, 7 Dec 2009 20:43:33 +0000]
add newline to lockprocs_prototypes.h

gcc was unhappy about the lack of trailing newline. add one.

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

14 years agoDump all hostFlags in hosts.dump
Andrew Deason [Tue, 24 Nov 2009 21:09:42 +0000]
Dump all hostFlags in hosts.dump

Currently only certain flags are dumped in hosts.dump. Also dump the
value of hostFlags itself, so we get more information from a host dump.

Change-Id: I2d265b85e057c2d44938e1d92f4c102048c4bf1f
Reviewed-on: http://gerrit.openafs.org/869
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Dan Hyde <drh@umich.edu>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Tested-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoMake HandleClientContext take an afs_ucred_t
Andrew Deason [Sun, 6 Dec 2009 20:56:20 +0000]
Make HandleClientContext take an afs_ucred_t

5d5d18071608d9782a5d936f79215048af641410 missed one occurrence of
AFS_UCRED. Make HandleClientContext take an afs_ucred_t instead of
AFS_UCRED, so afs_pioctl.c builds again.

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

14 years agoRemove AFS_USEBUFFERS
Simon Wilkinson [Sun, 6 Dec 2009 14:25:08 +0000]
Remove AFS_USEBUFFERS

The AFS_USEBUFFERS code has been disabled for all supported platforms
since the initial OpenAFS code drop. Simplify the buffers code by
removing it entirely.

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

14 years agoWindows: Version update for 1.5.68 openafs-devel-1_5_68
Derrick Brashear [Sat, 5 Dec 2009 00:53:21 +0000]
Windows: Version update for 1.5.68

1.5.6800 = 1.5.68

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

14 years agounix 1.5.68
Derrick Brashear [Fri, 4 Dec 2009 16:52:29 +0000]
unix 1.5.68

update version numbers for unix

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

14 years agorx packet dumper not in kernel
Derrick Brashear [Fri, 4 Dec 2009 20:31:10 +0000]
rx packet dumper not in kernel

don't compile the rx packet dumper when in kernel

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

14 years agoFix midnight volume calculation to build on Windows
Jeffrey Altman [Fri, 4 Dec 2009 15:52:21 +0000]
Fix midnight volume calculation to build on Windows

Change I516d732d broke the Windows build.  localtime_r does not
exist on Windows.

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

14 years agoWindows: Version update for 1.5.67
Jeffrey Altman [Fri, 4 Dec 2009 05:43:54 +0000]
Windows: Version update for 1.5.67

1.5.6700.0 == 1.5.67

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

14 years agounix 1.5.67 openafs-devel-1_5_67
Derrick Brashear [Fri, 4 Dec 2009 04:26:18 +0000]
unix 1.5.67

make 1.5.67 for unix

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

14 years agoadd rx packet trace debug dumping for unix
Derrick Brashear [Thu, 3 Dec 2009 20:37:52 +0000]
add rx packet trace debug dumping for unix

revised version of a patch i've had for months to actually be clean.
allow state of all packets to be dumped so you can see what's on what
queues where.

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

14 years agoCalculate midnight (for volume stats) based on standard functions
Rainer Toebbicke [Thu, 19 Nov 2009 13:07:07 +0000]
Calculate midnight (for volume stats) based on standard functions

The "tz" structure used with gettimeofday is not blessed by common
standards and not widely supported, on Solaris for example it does not
return anything useful.
Calculate midnight based on standard functions (localtime/mktime).

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

14 years agoWindows: change notes for 1.5.67 release
Jeffrey Altman [Thu, 3 Dec 2009 20:47:38 +0000]
Windows: change notes for 1.5.67 release

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

14 years agoadd unlock support to afscp
Derrick Brashear [Tue, 1 Dec 2009 21:17:49 +0000]
add unlock support to afscp

make the afscp test client able to drop a lock on a file.
additionally, make it build again.

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

14 years agoUse xdr_alloc and xdr_free within ptuser
Jeffrey Altman [Mon, 17 Aug 2009 16:30:44 +0000]
Use xdr_alloc and xdr_free within ptuser

If the memory allocation routines for libafsauthent and libafsrpc
differ, callers of the ptuser routines in libafsauthent will crash.
Use xdr_alloc and xdr_free in ptuser to ensure that the memory
allocation routines are always consistent.

LICENSE MIT

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

14 years agoshutdown_icl return type void
Michael Meffie [Tue, 1 Dec 2009 00:28:13 +0000]
shutdown_icl return type void

Change the shutdown_icl return type to void
to match the 1.4.x branch.

Change-Id: I641abbd0f87d648c3c9de3cab4d0dd926a51eb89
Reviewed-on: http://gerrit.openafs.org/879
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Russ Allbery <rra@stanford.edu>

14 years agoCorrect duplicate special inodes while salvaging
Andrew Deason [Mon, 26 Oct 2009 19:09:41 +0000]
Correct duplicate special inodes while salvaging

Right now when the salvager encounters duplicate special inodes for a
volume, it refuses to salvage the volume, presumably because it does not
know which inodes to use when recreating the volume header.

However, this can cause the confusing state where the fileserver and
various volume utilities have no problem with a volume, but the salvager
refuses to salvage it and marks the volume as needing salvage. When
salvaging, if we already have a volume header, and we encounter
duplicate special inodes, it is likely that the special inode referenced
by the volume header is the correct one.

So, instead of erroring out, keep track of which inodes are referenced
in the volume header, and if there are any duplicates, either ignore or
delete the unreferenced ones, depending on the -orphans setting. Also be
a little more verbose when logging errors in this area.

Change-Id: I15e34e8f2bccdc666bb59e3730fdf8bf51624259
Reviewed-on: http://gerrit.openafs.org/736
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Steve Simmons <scs@umich.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoWarning fixes - key handling
Marc Dionne [Thu, 19 Nov 2009 23:29:08 +0000]
Warning fixes - key handling

Various warning fixes related mostly to the different types used
to handle keys.  This should clear most of the remaining warnings
in this area.  The technique of inline converter helpers is
extended to cover a few more cases.

README.WARNINGS is adjusted to reflect the current status.

Fixes:
- bos: define and use an inline converter from a ktc key to a bozo key
- bos.c and bos_utils.c should no longer have warnings - adjust Makefile
- define a ktc key to char * converter and use it in a few places
- define kas key to bozo key ptr converter and use it in a few places (afs_bosAdmin)
- cast a few arguments to ka_StringToKey which expects non-const pointers
Change-Id: I1c19869ac232d78209126d4eeeb11af8bcb95815
Reviewed-on: http://gerrit.openafs.org/860
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

14 years agoAdd server prefix to utst_int.xg
Andrew Deason [Sun, 29 Nov 2009 03:25:27 +0000]
Add server prefix to utst_int.xg

When compiling src/ubik/utst_int.ss.c, a warning would be produced since
the server stubs are defined as accepting an rx_connection instead of an
rx_call, and since the server and client RPC stubs have the same name.
Give a server prefix so we can distinguish between the two, and fix the
server stubs and squash the warning, similar to
bd011aeee7f5dad5c61fd81a90b296c46a0b9058.

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

14 years agoAdd safety checks on all hostList traversals
Andrew Deason [Fri, 20 Nov 2009 20:15:28 +0000]
Add safety checks on all hostList traversals

Currently, h_Enumerate checks that it doesn't enumerate over more than
hostCount hosts, in case the hostList has a cycle or is otherwise
corrupt. Add similar checks to all places in the code that loop over
hostList, to prevent the code from getting in an infinite loop under
H_LOCK in the case of a hostList cycle.

Also, ShutDownAndCore instead of assert'ing, so we try and detach
volumes first, possibly reducing salvaging time when we restart after
core'ing.

Change-Id: Ide1e5aca7c2c4a4af3f62bc07821db694f2f9999
Reviewed-on: http://gerrit.openafs.org/863
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

14 years agoAdd a watchdog timer for ShutDownAndCore(PANIC)
Andrew Deason [Wed, 25 Nov 2009 21:23:06 +0000]
Add a watchdog timer for ShutDownAndCore(PANIC)

Add a watchdog timer that is started when ShutDownAndCore(PANIC) is
called, to ensure we actually panic and do not e.g. get stuck in
deadlock.

Change-Id: I9201fe7d09aeb6819beefaf1755b51129c7bda6b
Reviewed-on: http://gerrit.openafs.org/873
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoCorrect include paths in fs_conv_sol26.c
Andrew Deason [Wed, 25 Nov 2009 15:25:14 +0000]
Correct include paths in fs_conv_sol26.c

Make the #include paths in fs_conv_sol26.c correspond to the
36524b2ed73a2774ee1f6242208a1395be7736a8 changes, so fs_conv_sol26.c
will build again.

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

14 years ago'Flexible client buffer growth' fallout
Andrew Deason [Wed, 25 Nov 2009 21:47:27 +0000]
'Flexible client buffer growth' fallout

e7c966354c428a5a5929a3db6a829ee71c8ba2fc re-introduced a usage of the
'M' lock macro variants previously removed by
bab6fd227f5724c4e4ca5d0ba1dc64e21ed21f97. Use the non-'M' macros
instead so we can build.

Change-Id: Ie27fb8e82a7440a6952517d9a0cc1aeb8523511c
Reviewed-on: http://gerrit.openafs.org/872
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoWindows: Fix test for setting FILE_ATTR_READONLY
Jeffrey Altman [Tue, 24 Nov 2009 23:08:55 +0000]
Windows: Fix test for setting FILE_ATTR_READONLY

When checking whether or not to enforce the unix mode
bits as if they were the Windows FILE_ATTR_READONLY flag
the mask 0200 is used.  Make sure that the same mask is
used when publishing the FILE_ATTR_READONLY flag to the
smb client.

LICENSE MIT

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

14 years agoFlexible client buffer growth
Rainer Toebbicke [Thu, 29 Oct 2009 13:52:45 +0000]
Flexible client buffer growth

Allocates the 2k-directory-buffers for the client as needed, in
small increments, rather than a fixed-length area upon startup.

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

14 years agoWindows: disable readonly volume versioning due to file server bug
Jeffrey Altman [Thu, 19 Nov 2009 23:53:56 +0000]
Windows: disable readonly volume versioning due to file server bug

Change I17e3980184ec68e38c5186e1c9637ac6e38451fe corrects a file
server bug that results in invalid volume sync data being sent
to clients during bulk status rpcs.  Unless this is fixed in the
file servers it is not safe to use the volume versioning functionality.

This patchset disables the functionality by default and permits
it to be turned on via a registry value.  If the client is deployed
in an environment in which all of the file servers have been fixed,
then it will be safe to turn this feature on.

LICENSE MIT

Change-Id: I0db38ffc9cdeb90db20b92adca9a42a06fed2e2f
Reviewed-on: http://gerrit.openafs.org/859
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

14 years agoWindows: provide enhanced error output to aklog
Jeffrey Altman [Thu, 19 Nov 2009 16:35:12 +0000]
Windows: provide enhanced error output to aklog

Add Simon Wilkinson's change from Unix aklog to Windows aklog
If afs_com_err fails to describe the error, allow the krb5
error_message function try.

LICENSE MIT

Change-Id: I47bb6806f1076116a68967617d32d69b98a5bba9
Reviewed-on: http://gerrit.openafs.org/852
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

14 years agoWindows: cm_TryBulkStatus processing changes
Jeffrey Altman [Thu, 19 Nov 2009 23:21:39 +0000]
Windows: cm_TryBulkStatus processing changes

move the logging of success or failure in order to
try to avoid the VS8 compiler optimizing them out.

merge the bulk status information if the current
cm_scache_t object is flagged with an access denied
failure on the last request or if it is a readonly
volume.  This permits us to return something valid
to the directory enumeration that generated the
cm_TryBulkStatus call.

LICENSE MIT

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

14 years agoWindows: when assigning a new clientModTime, hold a lock
Jeffrey Altman [Thu, 19 Nov 2009 23:19:39 +0000]
Windows: when assigning a new clientModTime, hold a lock

The smb server modifies the cm_scache_t clientModTime without
holding a write lock creating a race condition.  Fix it.

LICENSE MIT

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

14 years agoWindows: modify src/rxkad/NTMakefile to avoid file copies
Jeffrey Altman [Thu, 19 Nov 2009 19:18:18 +0000]
Windows: modify src/rxkad/NTMakefile to avoid file copies

Permit src/rxkad/domestic/* files to be compiled / installed
in place.  This permits the tree to build after the
application of change I0796fabcf83ffcd74e533624c64e138a160dd632.

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

14 years agoviced: set volume sync data in bulk status rpcs
Jeffrey Altman [Thu, 19 Nov 2009 23:11:06 +0000]
viced: set volume sync data in bulk status rpcs

The bulkstatus and inlinebulkstatus rpcs have a bug
that prevents the volume sync data from being set.
Currently the data is being set within the for loop
only when i == nfiles.  The conditional of the loop
is i < nfiles so the SetVolumeSync call is never
performed.  This patch changes the test for performing
SetVolumeSync to i == 0.

LICENSE MIT

Change-Id: I17e3980184ec68e38c5186e1c9637ac6e38451fe
Reviewed-on: http://gerrit.openafs.org/856
Reviewed-by: Dan Hyde <drh@umich.edu>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

14 years agoLinux: Keyrings PAG handling changes
Marc Dionne [Sun, 25 Oct 2009 02:10:46 +0000]
Linux: Keyrings PAG handling changes

We can take advantage of the fact that PagInCred now receives
a kernel credentials structure as an argument (including any session
keyring) to make some improvements in the handling of PAGs
when keyrings are in use.

These changes are effective only if keyrings are in use and we
have a recent enough kernel where we can use the kernel
credentials structure.

1 - Search the session keyring of the passed credentials instead of
the current process' to determine the PAG, if any.  This was always
not really correct, and now we're able to do the right thing.
In some situations such as background writeback and pre-fetching,
this means that we'll now do it with the right credentials, even when
in a PAG.

2 - Don't use groups at all to determine PAG membership.  Doing so
can lead to some inconsistent situations such as the one described
in RT 125198, where a process gets access through a soon to be
deleted PAG.  Make PagInCred look exclusively at the keyrings.
Groups are still updated to try to reflect the current PAG for now,
if the passed credentials belong to the current process.

Note that a process can no longer get a PAG's privileges simply by
adding the corresponding groups to its group list.

No behaviour change for kernels prior to 2.6.29.

FIXES 125198

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

14 years agoRemove "unused" warnings from lex generated files
Marc Dionne [Sun, 22 Nov 2009 19:17:19 +0000]
Remove "unused" warnings from lex generated files

Some (f)lex generated source files produce warnings because of unused
labels or variables.
Since there is limited control of the source itself, just be more
permissive in this particular case with -Wno-unused.

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

14 years agoLinux: hinting removal fallout
Marc Dionne [Fri, 20 Nov 2009 22:27:20 +0000]
Linux: hinting removal fallout

The removal of the hinting missed a few things - the prototype to
afs_linux_raw_open needs to be changed, as well as a few additional
call sites.

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

14 years agoRevert "osi_UFSOpen returns struct osi_file *"
Marc Dionne [Fri, 20 Nov 2009 22:50:41 +0000]
Revert "osi_UFSOpen returns struct osi_file *"

This reverts commit 4057a9941b95f7a00c57738c1810ec5abf315e97.

UFSOpen shares a prototype with MemCacheOpen because of the
afs_cacheOps structure.  This is why a void * is used.
Revert until a more complete fix can be submitted that adresses
the memcache case as well.

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

14 years agoosi_UFSOpen returns struct osi_file *
Simon Wilkinson [Thu, 19 Nov 2009 16:34:07 +0000]
osi_UFSOpen returns struct osi_file *

The osi_UFSOpen function always returns a (struct osi_file *). Fix
the code to reflect this, rather than casting to and from (void *).

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

14 years agoRemove inode hinting for dcaches
Simon Wilkinson [Wed, 18 Nov 2009 20:07:04 +0000]
Remove inode hinting for dcaches

The VNOP read code has always contained incomplete support for inode
hinting. In theory this would let us attach open cache files to dcache
structures, so that we don't have the overhead of opening the file
with every read that we do.

However, this has been ifdef'd off ever since the first release, and
is fundamentally broken - it relied upon structure elements that just
don't exist, and has no mechanism for throttling the number of inode
hints that are maintained. Inode hinting also required that we store
an inode number within the osi_file structure (so hint validity could
be checked), which causes a problem on some modern OS's.

Simplify all of this, by just removing the partial hinting support.
If we want to revisit this in the future, then the code is in git,
but if we _do_ feel we want to keep open cache files around, it's
probably better to start from scratch!

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

14 years agoDefine afs_maxvcount everywhere
Andrew Deason [Wed, 18 Nov 2009 20:33:09 +0000]
Define afs_maxvcount everywhere

afs_maxvcount can be referenced by non-Linux code, so define it
everywhere, not just on Linux.

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