Commit Graph

9010 Commits

Author SHA1 Message Date
Derrick Brashear
5b6a1a619d macos: future-proof MakefileProto.DARWIN.in
if new cases show up which match the current ones, they just work.
darwin60 and older were already killed from the tree, kill here also

Reviewed-on: http://gerrit.openafs.org/7782
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit e6aa586a99)

Change-Id: I66bb6eb54856a37d3ff14cf455d90c482443a00e
Reviewed-on: http://gerrit.openafs.org/8912
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2013-01-29 13:13:20 -08:00
Stephan Wiesand
a167ef4a21 make openafs 1.6.2pre3
prerelease for 1.6.2

Change-Id: I1df309f98b003f6ef88289e4219e24ef00dfbf13
Reviewed-on: http://gerrit.openafs.org/8899
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
2013-01-10 08:56:34 -08:00
Andrew Deason
42257f27e6 SOLARIS: Avoid open count cleanup for Solaris 11
The comments in here no longer apply to Solaris, as of OpenSolaris
commit 11736:63a134e1f09c by Donghai Qiao (4492533 Filesystems may
need VOP_CLOSE() for executables following a VOP_OPEN()). This means
that this workaround should no longer be necessary for any Solaris 11
release, any illumos release, and anything else based off of
OpenSolaris. So, stop doing it.

Thanks to Frank Batschulat for pointing this out, and providing all of
the details.

Reviewed-on: http://gerrit.openafs.org/8895
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 08a4b05c27)

Change-Id: Ic689ac75fd618945ae7a6e101f29c3610d414603
Reviewed-on: http://gerrit.openafs.org/8897
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:05:10 -08:00
Andrew Deason
3697dc8506 SOLARIS: Use vn_renamepath when available
In Solaris 11.1, the signature of vn_setpath changes; it gains an
extra boolean_t argument called 'force'. Instead of trying to adapt to
it, call vn_renamepath() instead, which will do the correct thing and
call vn_setpath &co for us. vn_renamepath has existed since Solaris 10
Update 8, and is in all releases of Solaris 11. Only call it in
Solaris 11, since it makes the ifdefs easier, and there are no
problems with calling vn_setpath on Solaris 10.

Thanks to Frank Batschulat for all of the relevant information.

Reviewed-on: http://gerrit.openafs.org/8894
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 6c50960174)

Change-Id: Ifdc5bb7785b791d36dc1523421badd29d8df2faa
Reviewed-on: http://gerrit.openafs.org/8896
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:04:47 -08:00
Andrew Deason
9754a288e7 SOLARIS: Look for ncurses in ncurses/ncurses.h
Solaris 11+ has ncurses.h in ncurses/ncurses.h. Look for it there.

Without this, on Solaris 11.1 we will detect libncurses automatically
(because it lives in /usr/lib), but not ncurses.h (since it is in
ncurses/ncurses.h, not ncurses.h). So, we will fall back to curses.h,
but will try to link to libncurses, which, as you might guess, fails
with various undefined symbols.

Reviewed-on: http://gerrit.openafs.org/8874
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 81dd4878e7)

Change-Id: I139296ae267ec057fc5ee11634d19ba36c8f8d6c
Reviewed-on: http://gerrit.openafs.org/8890
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:04:23 -08:00
Andrew Deason
5be413b079 SOLARIS: Avoid areq and auid conflict
On new Solaris (11.1), nfs/auth.h #defines areq and auid to access
some elements inside the nfsauth_arg structure more easily. We have a
lot of functions that use those names as parameters, so the compiler
throws an error (since we have a decl like "struct vrequest
*areq_u.areq").

We cannot avoid including that header, since we need some NFS-related
headers for the NFS xlator, and they pull in nfs/auth.h
unconditionally. So, work around this by undefining areq and auid
afterwards.

Reviewed-on: http://gerrit.openafs.org/8873
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 936c2b02bf)

Change-Id: I54da96a48d163b6aa57bb8525ff4c80f10d70fa1
Reviewed-on: http://gerrit.openafs.org/8889
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:04:04 -08:00
Russ Allbery
39dc50198e Ensure MIN/MAX are defined in userspace builds of rx
The include of <sys/param.h> was removed from rx_packet.h on
Linux 2.6 and later to fix kernel builds with 3.7, which doesn't
have that header in kernel space.  However, while kernel space
always provides MIN/MAX defines, userspace relied on the header.
On at least powerpc, no other include chain includes sys/param.h,
so MIN/MAX were left undefined.

Fix this by only skipping the include of <sys/param.h> on Linux
if building in kernel mode.

Reviewed-on: http://gerrit.openafs.org/8870
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit fe2bae1c83)

Change-Id: I4b2b123c493ab35cbeff309db7ff58354afc170b
Reviewed-on: http://gerrit.openafs.org/8872
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:03:19 -08:00
Russ Allbery
cf605455b3 Fix spelling error (retreive for retrieve) in strings
Caught by Lintian analysis of the compiled binaries.

Reviewed-on: http://gerrit.openafs.org/8865
Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 2e5ef04e24)

Change-Id: Ied16661878edf39fb723e56c2ed997015e566b6e
Reviewed-on: http://gerrit.openafs.org/8869
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:02:55 -08:00
Andrew Deason
075893f250 afs: Avoid unnecessary panic in ShakeLooseVCaches
afs_vcount can change as we traverse the loop. If we successfully
evict something from the cache, afs_vcount goes down, but our loop
variable 'i' stays incremented. For example, if afs_vcount was 100 at
the start of the loop and we kicked out 50 things, by the time we
traverse the entire VLRU, we could have iterated over the loop 100
times, but afs_vcount would still be just at 50.

So, remember what afs_vcount was at the start of the loop, and use
that for our loop limit. Note that vcaches cannot be added to the VLRU
during the execution of this loop, since we're just kicking stuff out.
And nobody else can modify the VLRU but us, since we're holding
afs_xvcache, and if we drop afs_xvcache, we restart the whole eviction
process.

The bug here was introduced by commit bc6dd950, but usually did not
affect Linux until commit 696db866.

FIXES 131553

Reviewed-on: http://gerrit.openafs.org/8849
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 1cee097b5b)

Change-Id: I1bdbe41980e03522905217e55f745a96fb2bdc2d
Reviewed-on: http://gerrit.openafs.org/8867
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:02:17 -08:00
Andrew Deason
2e50eb38bf afs: Consolidate ShakeLooseVCaches retry init
Don't duplicate the initialization code in effectively three separate
places. Just goto the top of the loop again.

This should incur no functional change; it's just reorganization.

Reviewed-on: http://gerrit.openafs.org/8848
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 36959b50e5)

Change-Id: If1277fd4f1cc4adb03695688bcc54ae65715f1a8
Reviewed-on: http://gerrit.openafs.org/8866
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-10 08:01:25 -08:00
Hans-Werner Paulsen
fa0c841d2b Do not call afs_MarinerLog when afs_mariner is not set
When mariner log is not set up (afs_mariner=0), do not call afs_MarinerLog,
otherwise a osi_NetSend() to hostaddress=0 is tried, which will give you
ICMP messages in the socket error queue.
Do not call afs_AddMarinerName, when afs_mariner is not set.

(cherry picked from commit 41f8d6b923)

Change-Id: Id9584b07a0d3726fdd2176ac04945f976255e2d4
Reviewed-on: http://gerrit.openafs.org/8801
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2013-01-09 10:55:01 -08:00
Simon Wilkinson
7507bc7375 shlibafsauthent: Add a load more objects
The perl-AFS module needs to link against a pthreaded, PIC, library
that contains all of the routines that it provides perl shims for.
At the moment, libafsrpc_pic and libafsauthent_pic are the only such
libraries that OpenAFS provides.

Add all of the necessary objects to libafsauthent_pic such that the
2.6.2 version of perl-AFS can build with a minimal set of patches.
Minimise the damage by only making these available through the static
version of the libafsauthent_pic library.

Reviewed-on: http://gerrit.openafs.org/7070
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>

This is a 1.6 version of this change, which adds some additional
symbols and objects to cater for differences between master and 1.6
The changes aren't relevant to master, as the whole shared library
situation there is now completely different.

Change-Id: Iad596cd92bc883e47c5d261886db61e9c7482112
Reviewed-on: http://gerrit.openafs.org/8811
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2013-01-09 10:39:38 -08:00
Simon Wilkinson
65568d6d59 shlibafsrpc: More exports to support perl-AFS 2.6.3
Add some additional exports for perl-AFS 2.6.3

This patch isn't applicable on master, as our whole shared library
infrastructure there has changed.

Change-Id: Ie1f399c9fcb1638501533a45ff9a17f95bc98afc
Reviewed-on: http://gerrit.openafs.org/8810
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2013-01-09 10:38:33 -08:00
Simon Wilkinson
88c9f12fc6 shlibafsrpc: Add additional XDR functions
Export the afs_xdr_pointer and afs_xdr_u_char functions so that
shlibafsauthent can make use of them.

Reviewed-on: http://gerrit.openafs.org/7065
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 00992c6697)

Change-Id: I48ef13427c53e8fe3ceca00eb5d9d35c2c4327d7
Reviewed-on: http://gerrit.openafs.org/8809
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2013-01-09 10:37:28 -08:00
Stephan Wiesand
ed0886ca6f make openafs 1.6.2pre2
prerelease for 1.6.2

Change-Id: Ic15db559c115f18528e05ced0080e489eadfb0b9
Reviewed-on: http://gerrit.openafs.org/8817
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-24 05:52:23 -08:00
Andrew Deason
aeb42c44bc ihandle: Avoid FD cache in ih_sync_all
If an ihandle is IH_REALLYCLOSE'd immediately before or during the
IH_OPEN call in ih_sync_all, ih_sync_all can open a new file handle
after the IH_REALLYCLOSE is complete. For a volume that has gone
offline, this means that ih_sync_all can hold a file open for a volume
that has gone offline, and is possibly being manipulated or deleted by
an external program (e.g. the volserver for a clone operation).

While the FdHandle_t is open, or after the handle has been closed and
returned to the FD cache, another caller in the fileserver could try
to open the same file and get back the cached FdHandle_t. If the file
has been deleted by the volserver, this means the fileserver is
writing to the 'wrong' file, as it has been deleted. This can result
in a CopyOnWrite operation causing a file from the clients' point of
view to suddenly become empty, or to revert to a previous version.

To avoid this, prevent ih_sync_all from interacting with the FD cache
entirely, and just open a file descriptor directly from the IHandle_t.
This should prevent it from causing any problems with other users of
the FD cache.

This change is not intended for the master branch. The current
intention for the master branch and future versions is to eliminate
ih_sync_all entirely.

FIXES 131530

Change-Id: I809a0e3ebfe4692eab01671fdf83bf58676453f6
Reviewed-on: http://gerrit.openafs.org/8796
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-22 12:18:58 -08:00
Simon Wilkinson
140fb74331 libafsauthent: Add volser and vldb
Add the volser and vldb families of functions to libafsauthent. This
allows applications such as perl-AFS which are building pthreaded
clients to use a single library, rather than trying to mix LWP and
pthreaded code within the same process.

Reviewed-on: http://gerrit.openafs.org/5157
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 55beacdc38)

Change-Id: I60a35b3032f071a0a3ef4dc66221f22166942bfd
Reviewed-on: http://gerrit.openafs.org/8799
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2012-12-22 04:01:09 -08:00
Marc Dionne
c4dbf26d03 venus depends on libafsauthent
Add an explicit dependency on libafsauthent for src/venus, since it
is needed to build afsio.  This can cause parallel builds to fail.

Reviewed-on: http://gerrit.openafs.org/5171
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 784a410d0f)

Change-Id: I8baf9008e4f59d916242e0a8ac9bda19522f0b0d
Reviewed-on: http://gerrit.openafs.org/8800
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2012-12-22 03:59:43 -08:00
Simon Wilkinson
2bcb13edde tubik: Don't install ubik.h or ubik_int.h
Both ubik and tubik try to install ubik.h and ubik_int.h. This leads
to a race during which the header file may be missing, which upsets
parallel builds. Just don't install them from tubik to solve this
issue.

This is 1.6 only - a similar fix was done as part of the libtool
work on master in 035a2ea4a1

Change-Id: I18a7dcb425b2f805656ab8ff8c06b87bcca526c7
Reviewed-on: http://gerrit.openafs.org/8808
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2012-12-22 03:58:44 -08:00
Michael Laß
7d65918703 Update configure help msg to match actual defaults
The defaults for LINUX_KERNEL_PATH and LINUX_KERNEL_BUILD in
acinclude.m4 were changed in 2cfd611, 94ff565 and 3f9d982 without updating
the output of ./configure --help. Change the description of
linux-kernel-headers and linux-kernel-build to show the correct defaults.

Reviewed-on: http://gerrit.openafs.org/8759
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 986a854151)

Change-Id: I2fc463fc3b5793d6125f7367de22631c8e52da21
Reviewed-on: http://gerrit.openafs.org/8805
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2012-12-22 03:54:33 -08:00
Stephan Wiesand
efbcfd8159 Linux: Restructure kernel header detection
As of kernel 3.7, version.h has moved, and hence utsrelease.h was
no longer found. Loop over candidate directories and locations
within, and look for the files we're actually after.

FIXES 131525

Reviewed-on: http://gerrit.openafs.org/8761
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit 3f9d982ec2)

Change-Id: Ia9653405195d4c5f6592960375340553de1267c5
Reviewed-on: http://gerrit.openafs.org/8804
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2012-12-22 03:53:44 -08:00
Derrick Brashear
bff5e77d97 macos: avoid leaking iocount on synthetic fsevents
in certain cases we could leak an iocount. clean up even if
our event couldn't be run

Reviewed-on: http://gerrit.openafs.org/8777
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit cf150252b6)

Change-Id: Id8c94bee3663507d31c0e0dc719693d82f90a151
Reviewed-on: http://gerrit.openafs.org/8791
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
2012-12-22 03:51:50 -08:00
Andrew Deason
f69aaf6914 LINUX: Avoid infinite d_invalidate loop
If a reference is grabbed after we d_invalidate() a dentry, but before
we dput() that dentry, the dentry can still be on the alias list for
its inode. This will cause us to loop forever, since we'll get the
same dentry back from d_find_alias, and d_invalidate() will return
success, since it is a no-op.

Avoid this by just limiting the number of times we loop. Leaving
dentry aliases around is non-critical as long as we clear some each
time.

This change is not applicable to master, which will get a more robust
fix for this issue. This change was discussed during the 19 Dec 2012
release-team meeting.

Change-Id: Ief22ae9f8f6de62518604383c421772c25c5dc26
Reviewed-on: http://gerrit.openafs.org/8795
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
2012-12-21 10:43:12 -08:00
Derrick Brashear
5f7cf5fc22 Windows: limit number of retries due to kdc repeat error
don't retry forever. does not apply to master due to difference
in sdk for kerberos

Reviewed-on: http://gerrit.openafs.org/8792
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 8c1288ed64)

Change-Id: I67e20e302d09ebecec8e7856cafe7133333b89f4
Reviewed-on: http://gerrit.openafs.org/8798
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 09:56:17 -08:00
Jeffrey Altman
7fd2d9ba8b Windows: KFW_AFS_klog() changes
If an explicit 'realm' is specified as input:

 a. Do not duplicate a request for afs/cellname@REALM if the
    explicit realm matches the realm of the client principal.

 b. If afs/cellname@REALM fails, request afs@REALM for the
    explicit realm.

This patchset does not apply to master due to Kerberos Compatibility
SDK conversion.

Reviewed-on: http://gerrit.openafs.org/8773
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit f9e9d9aebf)

Change-Id: I0cbf8f9a540159b5169e4cdf409dc7e875527d77
Reviewed-on: http://gerrit.openafs.org/8776
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 09:55:53 -08:00
Jeffrey Altman
9b63f04eff Windows: handle KRB5KRB_AP_ERR_REPEAT errors
This patchset adds logic to handle a KRB5KRB_AP_ERR_REPEAT error
sent by a KDC for the Windows aklog and the afskfw library.  The
KRB5KRB_AP_ERR_REPEAT is sent when the KDC detects a replay.
However, the KDC replay detection is known to generate many false
positives.  If KRB5KRB_AP_ERR_REPEAT is received, wait one second
and retry the request.

This patchset does not apply to 'master' due to Kerberos
Compatibility SDK conversion.

Reviewed-on: http://gerrit.openafs.org/8772
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit c23664aff7)

Change-Id: I806a3ede5f0fa6794f3ccaf8f2d514b0c8443ec1
Reviewed-on: http://gerrit.openafs.org/8775
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 09:55:31 -08:00
Derrick Brashear
5cfb72022a linux: update spec requirements
don't require things which don't exist on el5. do require them
in el6. require kernel-devel if building modules
don't do anything involving the kernel if not building modules
if we can figure out that we don't have 2.4 based on the version,
avoiding the need to depend on kernel-devel just to build an srpm.

Reviewed-on: http://gerrit.openafs.org/6985
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 72f5d88acc)

Change-Id: Ibcc53eb6a742de2101a054070e9b48607d0bce1d
Reviewed-on: http://gerrit.openafs.org/8787
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 03:06:22 -08:00
Michael Meffie
9cf0b0dcc6 LINUX: make d_automount work properly on rhel5 kernels
Recent centos/rhel 5 kernels (2.6.18-308.*) started providing the
d_automount operation, but renamed the DCACHE_NEED_AUTOMOUNT flag to
DMANAGED_AUTOMOUNT.

Reviewed-on: http://gerrit.openafs.org/8006
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 5daa08ea26)

Change-Id: I1ebc2a3cab52ff7294b03e1e82680a99d62013fc
Reviewed-on: http://gerrit.openafs.org/8790
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:15:55 -08:00
Andrew Deason
7ca9875197 LINUX: Use struct vfs_path on RHEL5
Some revisions of the kernel from RHEL5 (2.6.18-308.* and possibly
others) renamed 'struct path' to 'struct vfs_path'. So, use
'struct vfs_path' when it exists.

This introduces the afs_linux_path_t typedef, which is defined as
either a struct path, or struct vfs_path.

Reviewed-on: http://gerrit.openafs.org/8019
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 74c1881dff)

Change-Id: I6eaf17ebe9a35b345c1fd5cebd490f8095a1b22b
Reviewed-on: http://gerrit.openafs.org/8789
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:14:55 -08:00
Andrew Deason
716cca7ed8 autoconf: add AC_CHECK_LINUX_TYPE macro
add a macro which looks for a given type in a given linux kernel
header file

Reviewed-on: http://gerrit.openafs.org/8021
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit f87d49cd17)

Change-Id: Idc6cc79d9410149f6faeb867f878724beaa30793
Reviewed-on: http://gerrit.openafs.org/8788
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:13:43 -08:00
Arne Wiebalck
cf59993d50 Update 'vos shadow' man page
Change the 'vos shadow' man page to say that updating the
VLDB with shadow volumes does only work if the VLDB entries
for the corresponding source volumes are deleted first.

Reviewed-on: http://gerrit.openafs.org/8652
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Dan van der Ster <daniel.vanderster@cern.ch>
Tested-by: Dan van der Ster <daniel.vanderster@cern.ch>
Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
(cherry picked from commit 83ccb62012)

Change-Id: I59eacb7406e8bec9e5736afe32564a04be7ff72a
Reviewed-on: http://gerrit.openafs.org/8786
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:12:46 -08:00
Derrick Brashear
cddc0c4669 macos: fix growlagent icon handling
the whole of the api used for icon handling when you steal it
from a resource fork is deprecated in new macos. fine. we'll just make
an app bundle by cheating, move andy into a standalone icns file,
install him into the "bundle" and open it the macos way.

Reviewed-on: http://gerrit.openafs.org/7786
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 3dd230e859)

Change-Id: I9a439601058a4c2f32cbe687865a9143d56b92bf
Reviewed-on: http://gerrit.openafs.org/8781
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:11:53 -08:00
Derrick Brashear
b64c45535b macos: native apps need 64 bit support
the installer bundle, prefs pane and backgrounder all need to be 64 bit
mode since the system uses them as plugins

Reviewed-on: http://gerrit.openafs.org/7787
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 50009267bb)

Change-Id: I7b6f8b011380f1ce8284f5c44656422405490dc7
Reviewed-on: http://gerrit.openafs.org/8780
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:11:08 -08:00
Derrick Brashear
8445c07524 macos: next version support
support things beyond 10.7

Reviewed-on: http://gerrit.openafs.org/7763
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 73ff095130)

Change-Id: I0bbef00747b01b387989398557fb82be93fe28f9
Reviewed-on: http://gerrit.openafs.org/8785
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:10:05 -08:00
Derrick Brashear
64f1ed16c8 macos: next version header
add header for next macos

Reviewed-on: http://gerrit.openafs.org/7868
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 3638ef30d0)

Change-Id: Ia4ad32e66566c8d822a32ca51fae784293f7ac24
Reviewed-on: http://gerrit.openafs.org/8779
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-21 02:09:49 -08:00
Stephan Wiesand
58c2a08b73 make openafs 1.6.2pre1
prerelease for 1.6.2

Change-Id: I22fad3411c09644578c717c06cd7cb6b3469fe57
Reviewed-on: http://gerrit.openafs.org/8738
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-10 07:38:50 -08:00
Simon Wilkinson
463e0d2049 rxperf: -S takes an argument
The -S option to rxperf (which permits the maximum number of server
threads to be set) takes a parameter. Update the getopt string so
that we can give it one.

Reviewed-on: http://gerrit.openafs.org/4801
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 80b3648e6d)

Change-Id: Ic1a8264d0471e9458ade11af00ed78871b390b34
Reviewed-on: http://gerrit.openafs.org/8423
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-10 05:53:39 -08:00
Jeffrey Altman
4c084a67e6 rxperf: use parallel connections
When the number of threads exceeds RX_MAXCALLS allocate additional
rx connection objects.

Reviewed-on: http://gerrit.openafs.org/3285
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit df682aa341)

Change-Id: Ia699fe0230e6dde2bc1f270d766f512f2693c94f
Reviewed-on: http://gerrit.openafs.org/8421
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
2012-12-10 05:53:08 -08:00
Jeffrey Altman
fb95823877 NetIdMgr: Krb4 is optional
32-bit builds should not require the krb4 library.

Reviewed-on: http://gerrit.openafs.org/8414
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 51021ac306)

Change-Id: I8664140cd8e5d159789be94628a726e8c7ee5cb7
Reviewed-on: http://gerrit.openafs.org/8727
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 22:02:33 -08:00
Jeffrey Altman
2c1ba63df3 Windows: Make krb4v32.dll and krb524.dll optional
Permit afskfw.dll to be built with USE_KRB4 and USE_KRB524 without
the requisite DLLs being available on the target machine.

Reviewed-on: http://gerrit.openafs.org/8413
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 3764cbfbc9)

Change-Id: Ib546aa45a57bba40de02dc9499dd1ce6c2ef9d73
Reviewed-on: http://gerrit.openafs.org/8726
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 22:02:21 -08:00
Jeffrey Altman
4061aa47f1 Windows: cm_RecycleSCache remove from hash table
Remove the cm_scache_t object from the hash table during recycling.
This step is performed on master and on 1_7_x.  Did not get pulled
onto 1.6.x previously.

Change-Id: I2c50a08b8f0b191bd558ce344cb0ce594e13661c
Reviewed-on: http://gerrit.openafs.org/8725
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 22:02:07 -08:00
Jeffrey Altman
ad7cfa94e6 Windows: buf_CleanLocked protect against NULL bp->userp
The cm_buf_t.userp field should never be NULL if the CM_BUF_DIRTY
flag is set but apparently it sometimes is.  cm_BufWrite() requires
that the userp parameter be non-NULL.  Otherwise, an assertion fails
and afsd_service.exe panics.  If bp->userp is NULL, use cm_rootUserp.
The worst that will happen is the write will fail due to an access
denied error.

Reviewed-on: http://gerrit.openafs.org/8475
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit f436fe03c8)

Change-Id: I33f5e73509cc2c6517ae4bf4214011383a341411
Reviewed-on: http://gerrit.openafs.org/8649
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:19:31 -08:00
Jeffrey Altman
c95d1aee53 Windows: do not adjust deleted scache LRU ordering
Instead of moving deleted scache objects so that they are next
in line to be recycled, do not move them at all.  Making them
next to be recycled results in the CM_SCACHEFLAG_DELETED flag
value being lost.

Reviewed-on: http://gerrit.openafs.org/8474
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 887cff5b0f)

Change-Id: I7a9377fdd1546f6e555afa4b2f714d8b74b26e87
Reviewed-on: http://gerrit.openafs.org/8648
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:19:17 -08:00
Jeffrey Altman
d23b655e78 Windows: Do not reset cm_buf.offset on error
When an error occurs the cm_buf_t is not removed from the
hash tables.  Since the scacheHashTable hash is built from
the fid and the offset it is not safe to reset the offset field.
Resetting the offset field results in an assertion failure
during buffer recycling.

Reviewed-on: http://gerrit.openafs.org/8452
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit f56c01d313)

Change-Id: I888e56c8c34bcae58c51ba965fd59e5539e1bab5
Reviewed-on: http://gerrit.openafs.org/8647
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:19:05 -08:00
Jeffrey Altman
907e2f148f Windows: Prevent SMB unitialized variable access
smb_ReceiveNTTranCreate would make use of 'fidp' before it was
allocated.

Reviewed-on: http://gerrit.openafs.org/8411
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 6f79eb3659)

Change-Id: Ifedf7887c76698ecb32a1c0fa9f4c01e3df74817
Reviewed-on: http://gerrit.openafs.org/8646
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:18:39 -08:00
Jeffrey Altman
6efa862c41 Windows: call MIDL_user_allocate instead of calloc
In the RPC service routines do not call calloc() directly.
All memory will be deallocated by a call to MIDL_user_free()
so use MIDL_user_allocate() to perform the allocation.

Modify MIDL_user_allocate() to call calloc() instead of malloc()
to ensure that the memory is initialized to NUL bytes.

Reviewed-on: http://gerrit.openafs.org/8365
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 8c7846f4e1)

Change-Id: I5562dbac4977a5d23407cd62c3deb743e629c48c
Reviewed-on: http://gerrit.openafs.org/8645
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:18:26 -08:00
Jeffrey Altman
39da28383a Windows: mark server reference offline for VOFFLINE
cm_Analyze() was not marking the cm_ServerRef_t reference to
a volume instance as srv_offline in response to a VOFFLINE error.
As a result the same volume instance is tried again and again.

Reviewed-on: http://gerrit.openafs.org/8326
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit e59cf940ce)

Change-Id: Iab79c0b2e0c885a0d9180c000f9cc9574fab11dc
Reviewed-on: http://gerrit.openafs.org/8644
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:18:15 -08:00
Jeffrey Altman
a30a4dc211 Windows: Fix memory leak SRXAFSCB_GetCellServ
In commit 19f1e0f7cf strdup()
was replaced by xdr_alloc() and memcpy().  Unfortunately,
the patch was wrong and the pointer to which the result of
xdr_alloc() was assigned was overwritten with zero.

Reviewed-on: http://gerrit.openafs.org/8162
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 137ea396db)

Change-Id: Ia15bcbeec4ad3ff411fd599e2d57f1ead4c3be23
Reviewed-on: http://gerrit.openafs.org/8643
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:17:57 -08:00
Jeffrey Altman
d9b7f61546 Windows: remove sdk sample token.c
The sdk sample is no longer applicable.

Reviewed-on: http://gerrit.openafs.org/7932
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 5a707645b7)

Change-Id: Ic811e8b13c9ab5c3eef9e36ffb0cc38c896a7e89
Reviewed-on: http://gerrit.openafs.org/8642
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:17:37 -08:00
Jeffrey Altman
441e6fc771 Windows: cm_MergeStatus unknown interface numbers
Ignore status information if the interface number is unknown.
Currently only version 1 is recognized.

Reviewed-on: http://gerrit.openafs.org/7743
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 8115841e2f)

Change-Id: Iaa3eb3aae931ee65c991e2786d80a9a62eff76c6
Reviewed-on: http://gerrit.openafs.org/8641
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
2012-12-08 08:17:26 -08:00