Commit Graph

235 Commits

Author SHA1 Message Date
Ben Kaduk
de68cdef9e Add entries for FBSD 8.1 and 9.0
Though neither have been released, yet, RELENG_8 and HEAD are
starting to get changes that we need to conditionalize on.

Change-Id: Ia3af3c38abe4d0d01e0cef974771b45a97d3d9aa
Reviewed-on: http://gerrit.openafs.org/1691
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-05-06 20:41:24 -07:00
Simon Wilkinson
9be76c0d31 Refactor afs_NewVCache
afs_NewVCache was a twisty turny maze of #ifdefs and duplicated code.
This makes a number of sweeping changes to simplify this code, and to
move platform specific elements out into their own directories.

*) ShakeLooseVCaches is refactored so that the same code can be used
   both for platforms that support dynamic vcaches, and those which
   don't.
*) afs_NewVCache, ShakeLooseVCaches, and afs_AllocVCache are all
   modified to remove platform specific code, and to call platform
   specific functions.
*) A new platform file 'osi_vcache.c' is created to hold a number of
   platform specific vcache operations:
   *) osi_TryEvictVCache handles the decision of whether a vcache can
      be evicted or not, and does so if required
   *) osi_NewVnode allocates a new vnode
   *) osi_PrePopulateVCache does the necessary population of the
      vcache, before it's threaded onto the VLRUQ and associated hash
      tables.
   *) osi_AttachVnode handles attaching an OS vnode to our vcache,
      where that is necessary
   *) osi_PostPopulateVCache handles the vcache population that must
      occur after we're on the VLRUQ and have a vnode attached.

Change-Id: I368e5fb500d012b44141aa8f8cf0516e63e58f57
Reviewed-on: http://gerrit.openafs.org/1881
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-05-03 17:11:20 -07:00
Matt Benjmain
94c15f62d3 netbsd: rebase cm at NetBSD 4.0
Rebases the NetBSD client port at OpenBSD, which was originally
based on an original NetBSD client port by John Kohl.  The
platforms remain closely connected.

At latest milestone, the port builds as a NetBSD LKM, which was
loadable and can mount /afs (but much work remains past this
point).

Change-Id: I1381a60078794da03a82e7bf6e78127da82d61ee
Change-Id: I8e07e82796f6981c99d22ff50dd5b284aad88a9f
Reviewed-on: http://gerrit.openafs.org/1874
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2010-04-28 13:47:20 -07:00
Simon Wilkinson
fbbfb51e7d Move rxkad/domestic/* into rxkad/ directory proper
Historically, the fcrypt code lived in its own directory, named
'domestic', so that ACLs could be used to prevent nasty foreigners
from getting access to it. Now that those days are gone, having the
domestic directory just complicates builds. Remove it, and reunite
fcrypt with the rest of the tree.

Change-Id: I2d1f66463121bbb391260b613913d76c27931429
Reviewed-on: http://gerrit.openafs.org/1836
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-04-25 20:55:03 -07:00
Simon Wilkinson
0d7197f925 Linux: Remove prototype warning inhibition
The Linux kernel builds used to add -Wno-strict-prototypes to the
CFLAGS. Now that we've got prototypes for pretty much everything,
remove this line so we can see any real warnings that might occur.

Change-Id: I71b97bd3d19259f6ec6a55cfe095f5f4bf1ab78f
Reviewed-on: http://gerrit.openafs.org/1830
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-04-25 19:05:19 -07:00
Matt Smith
b28cdd0a0e Fix problems from afs_osi_gcpags reorganization
Corrections to mistakes made during the reorganization
of afs_osi_gcpags.c to per-OS directories. Includes fixes to
LINUX24 and whitespace corrections.

Change-Id: Ie9d1637b00dacc0f58e90df0e4fb2505a571bc1b
Reviewed-on: http://gerrit.openafs.org/1737
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-04-10 10:54:41 -07:00
Matt Smith
6de3486c2c Move contents of afs_osi_gcpags to per-OS files
Moved the relevant chunks from src/afs/afs_osi_gcpags.c
to osi_gcpags.c located in each of the OS subdirectories.
Also updated libafs and libuafs to reflect these changes.

Change-Id: I537d92952718ef3b3bb0583daf7993288716652c
Reviewed-on: http://gerrit.openafs.org/1727
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-04-09 13:32:57 -07:00
Simon Wilkinson
000c665881 Unix CM: Add xdrmem and xdrlen to kernel builds
Add the new xdrmem and xdrlen XDR sources to kernel space. Make some
changes to the xdrmem header file to permit it to build in kernel space.

Change-Id: I2ab32f67287df28d4ffded651d3d49d1211dd40e
Reviewed-on: http://gerrit.openafs.org/1328
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-02-15 17:42:02 -08:00
Simon Wilkinson
cad1df43d8 Darwin: Stop CM builds when errors occur
Make the kernel module build on Mac OS stop when errors are
encountered, instead of just ploughing on regardless

Change-Id: I489357c04cb7c78663f593af2c2adbc50ebfffff
Reviewed-on: http://gerrit.openafs.org/1203
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-02-02 06:01:42 -08:00
Derrick Brashear
cc47e76591 create debugging kext package for MacOS
this creates and installs a debugging kext package for macos. it also
always installs the decode-panic script (which can be used even without
the debug kext)

Change-Id: Iff03de66cd3df2690f03333e6629d21660364cd1
Reviewed-on: http://gerrit.openafs.org/1120
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-01-17 08:15:59 -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
Derrick Brashear
b7cc8bf285 create LINUX24 directory
shadow src/afs/LINUX into .../LINUX24, removing 2.6 code from it
same for rx/LINUX

cheat and simply modify MKAFS_OSTYPE in MakefileProto.LINUX.in

Reviewed-on: http://gerrit.openafs.org/565
Reviewed-by: Matt Benjamin <matt@linuxbox.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-10-03 16:17:49 -07:00
Simon Wilkinson
af9c9d905a Add support for background page copies
LICENSE BSD

This patch adds support for backgrounding the page copies which are
caused by a call to readpages() In theory, this should improve the
throughput of the AFS kernel module as it permits processes to start
work whilst data is still being read into the page cache for later
pages.

Reviewed-on: http://gerrit.openafs.org/537
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-09-29 12:13:04 -07:00
Claudio Bisegni
dffd78ccb0 Fixed the tokens update and update .gitignore for MacOSX packaging file
Fixed the tokens update on preference pane if operation is made with NSStatusItem. 
Has been updated the src/packaging/MacOS/.gitingore for CellServDB file and src/libafs/.gitignore has been added afs.x86_darwin_100.plist.

Reviewed-on: http://gerrit.openafs.org/372
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-08-28 13:05:50 -07:00
Derrick Brashear
e26235ed3e macos 10.5 doesn't support compiler kext flag
-kext was added in later xcodes; it's safer to just assume we don't
have it.

Reviewed-on: http://gerrit.openafs.org/365
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-08-27 22:03:10 -07:00
Derrick Brashear
81099c479e macos 10.6 64 bit support
support 64 bit userland with 32 bit kernel, and
32 and 64 bit userland with 64 kit kernel

Reviewed-on: http://gerrit.openafs.org/343
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2009-08-27 04:59:29 -07:00
Derrick Brashear
6bec05a874 macos 10.6 amd64 kmod build fix
make the ARCHFLAGS support for amd64 work correctly by grepping for the correct thing

Reviewed-on: http://gerrit.openafs.org/250
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-07-29 20:44:47 -07:00
Derrick Brashear
adddef8d14 correct macos 10.6 amd64 support
add a missing space so the kernel module can link

Reviewed-on: http://gerrit.openafs.org/http://gerrit.openafs.org/203
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-07-23 18:48:26 -07:00
Felix Frank
0b3e7a0747 Gathered alternative afs_TttCacheFetchProcs and afs_TttCacheStoreProcs
Fetch and Store procs now live in the new source file afs_fetchstore.c

Reviewed-on: http://gerrit.openafs.org/106
Reviewed-by: Russ Allbery <rra@stanford.edu>
Verified-by: Russ Allbery <rra@stanford.edu>
2009-07-16 14:31:45 -06:00
Derrick Brashear
1d1ae6195b MacOS 10.6 support update
Make things build on MacOS 10.6 again. Don't break 10.5 build.
Fix an error in the MacOS port which was left from previous head.

Reviewed-on: http://gerrit.openafs.org/96
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-07-16 08:59:53 -06:00
Marc Dionne
4c2a6c8799 Linux build: properly install built kernel module
Fix a problem introduced by the recent parallel make patches - the
resulting kernel module was not getting copied to the install or
dest location.
Copy some of the code from the COMPDIRS target for INSTDIRS and
DESTDIRS.  We still have to call into the lower level make and have it
install the module.

Reviewed-on: http://gerrit.openafs.org/67
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-07-13 08:53:52 -06:00
Marc Dionne
8e382795d5 Parallel make: additional fixes
Testing turned up a few more errors with parallel builds:

- Linux: Apply a similar fix for "make dest" to the one in the previous
patch for "make install".  Avoid conflict between DESTDIRS and COMPDIRS,
which also prevents unneeded duplicate work.

- Fix a couple of cases where we have 2 targets in a single rule with a
command that generates both of them.  Two parallel jobs can run this
command at the same time, with missing or corrrupted files as a result.
The workaround: make one of the targets build the files, and make the
second target depend on the other one.

Reviewed-on: http://gerrit.openafs.org/57
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-07-11 17:35:25 -06:00
Marc Dionne
d46713d4bd Parallel make fixes
Fixes several problems with parallel makes in the current source:
- Add '+' prefix to many top-level Makefile commands. This informs make that
the following command should be treated as a sub-make and propagates the -jN
flag.
- Add a few missing dependencies
- Tweak some Makefiles that work with generated header files to prevent cases
where we attempt to use the file while it's being generated
- For the Linux kernel build, eliminate duplicated effort between COMPDIRS
and INSTDIRS, which also prevents conflict between the two in a
parallel situation.

FIXES 125031

Reviewed-on: http://gerrit.openafs.org/3
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
2009-07-11 08:07:11 -06:00
Aaron M. Ucko
01d390d0d0 Build shadow header files when necessary on Linux
The current kernel module build infrastructure relies on the ability to
create symlinks from known directory names used in the AFS code to the
actual locations of the kernel header files.  This breaks if there is no
single kernel header tree and instead multiple trees are layered together
by kbuild using compile-time -I include paths.

Attempt to detect this case by seeing if linux/types.h is in the kernel
header directory where we expect it.  If not, rather than creating
symlinks for h, sys, and netinet, create directories and populate them
with single-line headers that just include the corresponding linux/*.h
header.  The list of headers for which to do this is generated dynamically
by analyzing the AFS kernel source code and looking for relevant #include
directives.

This patch has been part of the Debian OpenAFS package since
1.4.10+dfsg1-1.  The check for whether we have layered kernel header trees
may be specific to Debian and may require modification later if other
Linux distributions do something similar.

FIXES 124583

Reviewed-on: http://gerrit.openafs.org/6
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Verified-by: Derrick Brashear <shadow@dementia.org>
2009-07-10 07:58:09 -06:00
Simon Wilkinson
d5081f264d Remove CVS ignore files
Now we're in git we don't need any cvsignore files any more...

Reviewed-on: http://gerrit.openafs.org/1
Verified-by: Derrick Brashear <shadow@gmail.com>
Reviewed-by: Derrick Brashear <shadow@gmail.com>
2009-07-06 11:03:16 -06:00
Simon Wilkinson
ba9ad62845 Revise git ignore files
Revise our git ignores to match the current state of the tree, and include
entires in the top level for all of the 'dest' directories for all of the
architectures we claim to support.

Reviewed-on: http://gerrit.openafs.org/2
Reviewed-by: Derrick Brashear <shadow@gmail.com>
Verified-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
2009-07-06 10:03:23 -06:00
Simon Wilkinson
c41a467741 gitignore-20090615
LICENSE IPL10

make gitignore files
2009-06-15 23:29:29 +00:00
Matt Benjamin
25f13f3806 dragonfly-bsd-userland-20090427
LICENSE IPL10
FIXES 124702

add support for dragonflyBSD's userland
2009-04-27 19:29:09 +00:00
Chas Williams
8bc58a3d6d macos-10-6-support-20090216
LICENSE IPL10
FIXES 124288

support for (32 bit) macos 10.6. no pam yet
2009-02-17 04:25:10 +00:00
Matt Benjamin
ba9556ff2b freebsd-cleanup-20090112
LICENSE IPL10
FIXES 124107

minor freebsd cleanup
2009-01-12 14:33:09 +00:00
Derrick Brashear
1754101972 fbsd71-like-current-20081215
LICENSE IPL10
FIXES 123917

rpc is in sys now, like in current. tweaked from matt's patch to also
deal with amd64
2008-12-15 20:50:57 +00:00
Matt Benjamin
c63e2541e5 amd64-fbsd-20081215
LICENSE IPL10
FIXES 123811

add support for fbsd 7.1, amd64 fbsd
2008-12-15 20:37:51 +00:00
Stefaan De Roeck
726fc5b842 linux-alternate-kernel-builddir-20081012
LICENSE IPL10
FIXES 121354

add support for KBUILD_OUTPUT=... builds.
2008-10-12 19:01:58 +00:00
Matt Benjamin
9d63160ccc bypasscache-20080922
LICENSE IPL10

add cache bypass support (currently linux only)
2008-09-25 12:42:02 +00:00
Niklas Edmundsson
539535cf67 aix61-initial-support-20080903
LICENSE IPL10
FIXES 113638

aix 6.1 support
2008-09-03 19:26:29 +00:00
Derrick Brashear
995ee981fd linux26-libafs-makefileproto-trust-kbuild-system-no-really-20080903
LICENSE IPL10

if we are really not using COMMON_KERN_CFLAGS and being trusting, let's do so.
2008-09-03 17:59:08 +00:00
Matt Benjamin
a123bd8ccd freebsd-70-client-20080826
LICENSE IPL10

FreeBSD 7.0 client support (and 8.0 support but that's a moving target)
2008-08-26 15:59:42 +00:00
Simon Wilkinson
1c96127e37 linux-packaging-module-build-20080701
LICENSE IPL10

Add --with-linux-kernel-packaging configure flag which disables building
multiple kernels for different MP flavors, sets the kernel module name to
openafs.ko with no version, and installs the modules into the standard
Linux location.
2008-07-01 23:44:14 +00:00
Marc Dionne
daf6b1cf28 linux-nfstrans-updates-20080630
LICENSE IPL10
FIXES 105109

exportfs - NFS translator:

- The exportfs code is updated for the new export ops. The changes are made
conditional on a new configure test that detects the new ops. fh_to_dentry()
basically replaces decode_fh and uses our own get_dentry function instead of the
now defunct find_exported_dentry.
- A check for fh_len=4 is removed - in testing this value is always 6, possibly
because of changes in the kernel code.
- The check for authtab in osi_nfssrv.c assumes that an undefined weak symbol is
0. On my system, an unresolved weak symbol in a loaded module gets the value
0xfffffffe (-2 or -ENOENT) - again, probably a change on the kernel side. Check
that the pointer is not an error constant using IS_ERR().
- In osi_vfsops.c, only use the export_ops bits if building the translator

afspag: the problem here was dealing with unresolved symbols

- afs_showflags is redefined in afs_pag_call.c so it's available for the afspag
module
- A new source file afs_warn.c gets the afs_warn* functions from afs_util.c.
This allows the afspag module to get the afs_warnuser function without dragging
in too many symbols. The new file is attached separately.

other:

- d_path() now takes a struct path argument - includes a new configure test
- osi_vfsmnt -> osi_vfsmount in osi_misc.c Looked like a typo?
- reorder the remove_proc_entry() calls - we need to remove the children before
the parent (introduced with my earlier patch)
2008-07-01 04:33:38 +00:00
Derrick Brashear
c0124d5179 revert-pinstall-collateral-damage-20080630
LICENSE IPL10

we'll fix this another way (with install-sh)
2008-07-01 03:38:03 +00:00
Simon Wilkinson
18a36a3f62 disconnected-20080523
LICENSE IPL10

add readonly disconnected support
2008-05-23 15:57:18 +00:00
Derrick Brashear
be49dbe891 pinstall-collateral-damage-20080327
LICENSE IPL10

it's really easy to get into install-sh relative path hell. work around it.
2008-03-28 04:41:00 +00:00
Mike Meffie
4bd64596ca s390x-not-s390-20080219
LICENSE IPL10

don't try to link multiple things to asm
2008-02-19 15:07:24 +00:00
Derrick Brashear
9d22f7702e libafs-linux-dest-right-things-20080121
LICENSE IPL10

"duh"

make it like the install rules
2008-01-21 14:18:11 +00:00
Matt Benjamin
c386499fbe fbsd-70-updates-20080115
LICENSE IPL10
FIXES 82847

updates to make us build on freebsd 7.0
2008-01-15 06:04:49 +00:00
Derrick Brashear
e1b1f4655f macos-version-generation-20071011
make release time simpler
2007-10-11 17:51:56 +00:00
Derrick Brashear
604838e7d4 darwin90-debug-harder-20071009
stab the stabs
2007-10-09 22:28:18 +00:00
Derrick Brashear
b4b2b74d14 darwin90-dsym-and-ppc-cputype-support-20071009
build for all ppc cputypes. also, support dsym debug info instead of stabs, when appropriate
2007-10-09 16:58:47 +00:00
Derrick Brashear
a621049680 solaris-sparc-default-to-v8-insns-for-kmod-20070605
FIXES 23935

don't use the default instruction set since the compiler has changed over time
2007-06-05 18:10:00 +00:00
Jeffrey Hutzelman
e8493e06f9 fix-kbuild-linux-ppc64-20070604
The Linux 2.6 kbuild environment requires assembly files end in .S, not .s.
2007-06-05 04:47:09 +00:00