Commit Graph

6577 Commits

Author SHA1 Message Date
Marc Dionne
a5d054668a 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>
2009-12-31 09:00:45 -08:00
Russ Allbery
4d6d786668 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>
2009-12-31 05:10:49 -08:00
Russ Allbery
1526593621 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>
2009-12-31 05:09:40 -08:00
Matt Benjamin
64cacab28b 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>
2009-12-31 05:08:29 -08:00
Simon Wilkinson
e4708157ea 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>
2009-12-31 05:06:11 -08:00
Simon Wilkinson
ec352e0bfd 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>
2009-12-31 05:04:02 -08:00
Simon Wilkinson
35d5b6c4e1 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>
2009-12-31 05:01:46 -08:00
Simon Wilkinson
16a824222b Remove HAVE_STRUCT_BUF test
Ever since b1edf891d7 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>
2009-12-31 05:01:26 -08:00
Simon Wilkinson
f545882014 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>
2009-12-31 05:01:08 -08:00
Simon Wilkinson
5364fada4e 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>
2009-12-31 05:00:30 -08:00
Derrick Brashear
0fce88e079 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>
2009-12-31 04:57:00 -08:00
Andrew Deason
d11ca53be7 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>
2009-12-31 04:56:10 -08:00
Simon Wilkinson
12f35e8493 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>
2009-12-31 04:55:31 -08:00
Simon Wilkinson
f085951d39 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>
2009-12-31 04:54:52 -08:00
Russ Allbery
bd4c636e91 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>
2009-12-31 04:53:18 -08:00
Simon Wilkinson
c45e2b374b 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>
2009-12-30 22:49:18 -08:00
Michael Meffie
dab6cbadd6 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>
2009-12-30 15:22:52 -08:00
Simon Wilkinson
187630ed3e 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>
2009-12-29 18:24:57 -08:00
Simon Wilkinson
da8c26533d 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>
2009-12-29 18:24:36 -08:00
Derrick Brashear
6ec1846164 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>
2009-12-29 18:22:33 -08:00
Andrew Deason
6c9d49d096 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>
2009-12-29 18:20:29 -08:00
Simon Wilkinson
87de027fa4 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>
2009-12-29 18:20:20 -08:00
Simon Wilkinson
99d0070673 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>
2009-12-29 18:19:36 -08:00
Simon Wilkinson
40719534d5 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>
2009-12-29 18:17:55 -08:00
Simon Wilkinson
acd1bcf726 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>
2009-12-29 17:11:26 -08:00
Simon Wilkinson
10c00e1f17 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>
2009-12-29 16:55:47 -08:00
Andrew Deason
9f1c90a6e0 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>
2009-12-28 07:40:34 -08:00
Andrew Deason
1f23ff72e9 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>
2009-12-23 13:13:18 -08:00
Andrew Deason
9651fd726f 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>
2009-12-23 13:12:44 -08:00
Simon Wilkinson
2c0a9ab3c3 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>
2009-12-22 15:26:40 -08:00
Simon Wilkinson
dd9ab4b84c 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>
2009-12-22 15:24:27 -08:00
Simon Wilkinson
0f0f6cd613 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>
2009-12-22 15:23:47 -08:00
Simon Wilkinson
b631f5d64c 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>
2009-12-22 15:23:09 -08:00
Andrew Deason
2ec18e9f7a Fix typo in afs_linux_cred_is_current
987816dfa8 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>
2009-12-22 06:55:15 -08:00
Michael Meffie
846f772601 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>
2009-12-21 13:40:11 -08:00
Michael Meffie
2b8e09315c 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>
2009-12-21 13:36:05 -08:00
Marc Dionne
9bbd7a2117 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>
2009-12-20 10:08:49 -08:00
Marc Dionne
36f97969f3 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>
2009-12-20 10:05:21 -08:00
Simon Wilkinson
846c28282f Fix PAGs for all platforms without Linux keyrings
The changes in 7b272177de 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>
2009-12-20 10:04:52 -08:00
Simon Wilkinson
987816dfa8 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>
2009-12-20 10:03:56 -08:00
Simon Wilkinson
cda45cc7a1 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>
2009-12-19 08:36:25 -08:00
Simon Wilkinson
994ef0e7ca 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>
2009-12-19 08:35:56 -08:00
Andrew Deason
c7b92a3018 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>
2009-12-18 12:58:11 -08:00
Andrew Deason
244397335e 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>
2009-12-18 12:57:45 -08:00
Derrick Brashear
9faaa2fed8 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>
2009-12-17 06:52:38 -08:00
Andrew Deason
3df80a1638 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>
2009-12-16 10:57:07 -08:00
Claudio Bisegni
2a69aa22c1 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>
2009-12-13 08:22:41 -08:00
Andrew Deason
6f439ff7ed 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>
2009-12-10 11:49:46 -08:00
Simon Wilkinson
34ffc9cd7d 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>
2009-12-10 11:45:36 -08:00
Simon Wilkinson
292ec075d2 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>
2009-12-10 11:45:23 -08:00