'vos online' and 'vos offline' were documented as taking -bless and
-unbless options, respectively. They do not actually take these
options, and since adding that functionality, while useful, will
require protocol changes, they are likely to take some time to appear.
Change-Id: I91800e9637162e24873beac5d41f3ad456f25af8
Reviewed-on: http://gerrit.openafs.org/2481
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Install the non-DAFS fssync-debug along with the DAFS dafssync-debug,
since fssync-debug uses some structures that are specific to DAFS or
non-DAFS.
Change-Id: Ib7420857cd32f33fc3cc04f67baa1fcc90abc936
Reviewed-on: http://gerrit.openafs.org/2479
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Don't set the vp to NULL; instead just go to the general error
handling code. When a volume is not blessed, we just want it to go
offline, not go into an error state. Furthermore, we must free the
volume header when nUsers is set to 0, so manually do so when we do
not call VRequestSalvage_r.
Change-Id: I3ccd61ac219e092a5c9ee52cd563d007bc20a1a1
Reviewed-on: http://gerrit.openafs.org/2476
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
vol-bless was just calling VPutVolume when it was done blessing or
unblessing a volume. Instead call VDetachVolume, so we actually give
the volume back to the fileserver when we are done if !nofssync.
Change-Id: Idc1e0c32cf5c1c9d2c130fee4b2f1a5f61ab1c3a
Reviewed-on: http://gerrit.openafs.org/2477
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
With gcc 4.5 the -sequence_point warning triggers some new
warnings.
Fix some of them by simplifying the arguments to some
problematic macros.
Change-Id: I6c4e2b09f3f9d07d342b7be0d6d8317673dddf34
Reviewed-on: http://gerrit.openafs.org/2474
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
return fail, rather than success, if no fid and thus
no list of servers to resort, in BlackListOnce.
will need a later change for vlservers
reported by jhutz@cmu.edu
Change-Id: I782781ed87a6de718a4cc3dbe2f948ef325af27c
Reviewed-on: http://gerrit.openafs.org/2473
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Previously we were writing out the root and readme vnodes with
uninitialized 'lock' structures, when we create a new root dir for
attaching orphans. Just use calloc so we ensure that everything is
zeroed before writing it out.
Change-Id: I3c7712254aaef8731be95ea63530af05438d96a6
Reviewed-on: http://gerrit.openafs.org/2469
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Force using an absolute path for install-sh. Autoconf normally prefers
using a relative path, which confuses (at least) part of the libafs
build system.
Change-Id: I6962e61bb866362f674708e611ff22eb190a771a
Reviewed-on: http://gerrit.openafs.org/2461
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
tsalvaged has no documented necessary warning inhibitions, and it
appears to cause no warnings. So, remove the warning inhibition.
Change-Id: Iac2f8e8657034b01ce705dddb5dab3f33c913f31
Reviewed-on: http://gerrit.openafs.org/2467
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Cast to afs_int64, as int64_t can reduce to a different type than
AFS_INT64_FMT's.
Change-Id: I77ffe8813fbef284e6e91db25804d95d73898b54
Reviewed-on: http://gerrit.openafs.org/2466
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
When we detect if lex is flex, we run 'lex --version', which may
complain to stderr if lex is not flex. Instead of printing such errors
to the person running 'configure', redirect stderr to config.log along
with stdout.
Change-Id: I812805245a2638eda5885a41a6d70ffeff608c58
Reviewed-on: http://gerrit.openafs.org/2462
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Russ Allbery <rra@stanford.edu>
based on a report from Hans-Werner Paulsen
avoid adding regex anchors to a buffer which is already full
when copying it to a like sized buffer. instead, leave extra space.
Change-Id: I486c51779da285888fe38ed2aa5f30dd2d008a9a
Reviewed-on: http://gerrit.openafs.org/2456
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
This comment is no longer true, and its existence now is just
confusing.
Change-Id: I3954bd82f11c5f48e3e9491a885087067b3d9d34
Reviewed-on: http://gerrit.openafs.org/2458
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
install-man is a config.status-generated script, so Autoconf will
substitute in the path to our install-sh script, but Autoconf prefers
relative paths that are only valid in the directory in which
install-man is generated. We therefore must avoid changing directories
before calling install-man.
Instead of cd, use relative paths including the directory and adjust
the installation path accordingly.
Change-Id: I8666257b9d74fa80cf7f136bd0ee6ff895897066
Reviewed-on: http://gerrit.openafs.org/2460
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Solaris afs_syscall_iopen was returning the fd in r_val2 for 64-bit
architectures (for 5.7 and beyond). If we are little-endian, though,
we want the return value in r_val1; otherwise we just always return fd
0. So, put the fd in r_val1 if we are little-endian.
Change-Id: I8553c338625e9c50f846f4676b53ea8f054b7a73
Reviewed-on: http://gerrit.openafs.org/2457
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
ugen_ClientInit was still trying to use tokens to make an
authenticated connection, even if noAuthFlag was set. Make it so we do
not attempt authenticated connections with noAuthFlag, and suppress
the "Could not get afs tokens" message if noAuthFlag was set.
Change-Id: I1a0afbb8507307f09a3555e6a7ce0c197ddcc6ef
Reviewed-on: http://gerrit.openafs.org/2454
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
For salvaging purposes, we were assuming that if a DAFS bnode existed,
we should perform a DAFS salvage. Since it is possible to have a
disabled DAFS bnode alongside an enabled non-DAFS fs bnode, we should
perform a regular non-DAFS salvage if the DAFS bnode is disabled. Do
that.
Change-Id: If4e6fa3b733e2e9684cd9942be56368d60bf6dee
Reviewed-on: http://gerrit.openafs.org/2453
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
bosserver was remembering the parms for past bnodes, and just
overwriting parms for new bnodes. This is a problem if we have a
'dafs' bnode followed by an 'fs' bnode, since the 'fs' bnode will get
the 'dasalvager' parm, and bosserver will think it is its scanner
program.
So instead keep track of a separate array of the parms that we
actually pass to bnode_Create, so we only pass parms that we saw for
this specific bnode.
Change-Id: Ic609e2156cfd8ecf5b83b3815c5dff235010aa00
Reviewed-on: http://gerrit.openafs.org/2452
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
This patchset permits the building of demand attach file server
and volume server.
Change-Id: I7ee81c69924cde5e8aec2067d73b51cba7e4423e
Reviewed-on: http://gerrit.openafs.org/2450
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
if later callers will deem a volume offline, note it at attach time.
additionally, log the cause.
Change-Id: I4870e8f3bfd8d7e69e448d3a445be81435407f0f
Reviewed-on: http://gerrit.openafs.org/2448
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
the code refactoring missed this case. sadly, it means we
can panic under heavy vcache contention.
FIXES 127645
Change-Id: I41929df066b8e3d447ba72e77be6777a306b8bf8
Reviewed-on: http://gerrit.openafs.org/2449
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Make 'vos status' print the lastReceiveTime and lastSendTime in a
human-readable format, instead of just printing the number of seconds
since the epoch as an integer. As suggested by Jeffrey Altman.
Change-Id: I1348a45078e49ff631cb46323767f1c384a72084
Reviewed-on: http://gerrit.openafs.org/2338
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Add a field in the 'vos status' output to report the last time a
transaction was touched by a volser RPC.
Change-Id: Ibfe11e16fc3d7f00134d840ec3ab9fb9263fbea1
Reviewed-on: http://gerrit.openafs.org/2337
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
The 'created' field in 'vos status' output was being reported as
something else. Make 'vos status' actually report the time the
transaction was created in that field.
Change-Id: Ib890256f4b9f67cf0a37910dc3b3585eafdba4fc
Reviewed-on: http://gerrit.openafs.org/2336
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
salvage.c uses the Log() function defined by vol/common.c. At the
moment, this isn't defined in a way that we can easily grab its prototype,
so the code has an extern definition at the beginning. For now, just add
format checks to this definition.
Fix all of the fallout from this - we were casting to intptr, and
printing with %x - use AFS_PTR_FMT as nature intended.
Change-Id: I2110ebddbe207c307fcad00ab89e5818824a644d
Reviewed-on: http://gerrit.openafs.org/2446
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Add format checking to the Log, LogError and LogDebug functions.
Fix the resulting type errors. One of these in particular is a
signficant bug, where we would try to print a hash table pointer
as a string.
Change-Id: I02d7bcd7ce63583d24dda4da40288af51a516583
Reviewed-on: http://gerrit.openafs.org/2445
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Fix the Log, Abort and Quit functions used by the vol package so
that they are all defined in a common header file, rather than
prototyped in each file which uses them.
Use the appropriate macros to flag those functions which never
return, and mark them all as taking printf style input.
Fix all of the callers which had mismatched format strings and
arguments.
Change-Id: I78194f623360e13f055f8f37b3558c08a70acd1f
Reviewed-on: http://gerrit.openafs.org/2444
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The changes to use the exportfs interface to access cache files
require that the exportfs module is loaded before our module.
In 'normal' operation depmod, and modprobe, would take care of
this for us, however our legacy installation format where we
ship the kernel module outside of /lib/modules stops modprobe from
working, and our init script uses insmod. So, explicitly load
exportfs first.
Note: I'm aware of just how much this sucks, and the fact that we
really should just tidy up all of the packaging and init scripts
around our kernel module - but this close to 1.6 branch is probably
not the time for those kinds of changes.
Change-Id: Icdc11482f4eb05419a806a2cd55852eaa5999638
Reviewed-on: http://gerrit.openafs.org/2443
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Rename configure.in and configure-libafs.in to use the *.ac extension
instead, which is preferred by current Autoconf versions for input
files to Autoconf. *.in can then be more consistently used for files
that are input into config.status.
Change-Id: I4d352560200e4dbb1a2dda3d5ab7c7c9a38b565f
Reviewed-on: http://gerrit.openafs.org/2437
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Russ Allbery <rra@stanford.edu>
Add a preprocessor for POD documentation that handles a custom
=include directive. Demonstrate how to use the preprocessor by
factoring out all the standard PTS options into a separate POD
fragment and including that fragment in all the PTS commands that
take the standard options instead of including that documentation
in each separate file.
Change-Id: If5255efc6d3fc670b38a9898b3d7d3c60af04fcf
Reviewed-on: http://gerrit.openafs.org/2440
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Remove obsolete configure options and document all remaining options
other than some provided by Autoconf and some that are currently not
very interesting.
Document that, on modern Linux systems, configure can find the kernel
build system and headers by itself and doesn't need the flag.
Include some more information in README about changing the default
installation paths, and mention that the da* versions of the file server
and volserver also aren't stripped.
Remove the generic GNU installation instructions, which aren't useful
for OpenAFS.
Change-Id: I56d0003ff0173749e9a5e04f1d0ed4d004787dfd
Reviewed-on: http://gerrit.openafs.org/2438
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The first argument to the git-version script should be the root
directory of the tree, not the .version file in that directory.
Change-Id: I145d360dc79132fc1474e94893c999b35774d874
Reviewed-on: http://gerrit.openafs.org/2433
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Now that we have a build-tools directory, move the various support
files used by Autoconf and Automake into it as well to reduce clutter
at the top level.
Change-Id: Ieae317524d5354e3a6168507c569378f7913b05f
Reviewed-on: http://gerrit.openafs.org/2432
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
in order to correctly generate KBUILD_MODNAME, each object
file needs to be built only once. in this case it matters because the
pr_debug macro, called as a result of including errqueue.h, needs it
and things which depend on it, and when it's built into 2 .kos,
the wrong thing happens.
Change-Id: I85be7a3322fd179ef75fe14a90c9e7592e542ed1
Reviewed-on: http://gerrit.openafs.org/2435
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
This will need more comprehensive packaging work later, but in the
meantime, install the binaries so that make dpkg will complete
successfully.
Change-Id: Ic82feb92c05a3638365593c4e321ef5e45916ee2
Reviewed-on: http://gerrit.openafs.org/2429
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Debian packaging can deal with the full version number that we
generate using git-version, so base the version we put into
src/packaging/Debian/changelog on that version instead of the
LINUX_PKGVER that we use for other packaging.
Change-Id: Ibf50854748b2b588c2f971d6bdadd4f66f648c5b
Reviewed-on: http://gerrit.openafs.org/2428
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The source package we would get by running dpkg-buildpackage in the
source tree without further preparation is basically useless, since
it's a native source package for a non-native package and will contain
any random dirty cruft in the current source tree. Since the purpose
of make dpkg is to provide quick Debian packages for testing purposes,
only build the *.deb files and don't bother to build the source
package.
Change-Id: Ia2643c7e8936b15e3447df589ed0236438b8341e
Reviewed-on: http://gerrit.openafs.org/2427
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Fixes the duplicate run of make install during the package build
process and updates the changelog to the current Debian packages.
Change-Id: I20fa4cc24e17c3944de2b08e265e277ff5d5564f
Reviewed-on: http://gerrit.openafs.org/2426
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
0xffffffff is a bad representation for -1 when the size of the data
type may vary. Rather than forcing everything to 32 bits and losing
later on platforms with 64-bit time_t, change the table to use time_t
and try to add a cast that will do the right thing.
Change-Id: Id532c9b7a1fc215dc9fd532592fecb2ea45597a0
Reviewed-on: http://gerrit.openafs.org/2420
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Currently RX lists all non-127.0.0.1 interfaces in the interface list,
even those that are specified as IFF_LOOPBACK, to accomodate certain
special cases where IFF_LOOPBACK interfaces should be advertised.
However, this makes us advertise e.g. a 127.0.0.2 lo interface. So
instead, skip all interfaces that are both in 127/8 and claim they are
IFF_LOOPBACK, as this will skip a stray 127.0.0.2, but should not
confuse the special cases.
Change-Id: I60a4ed5330252078e2f58894195f9b68ec70dcfa
Reviewed-on: http://gerrit.openafs.org/2376
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Many places treat loopback addresses specially; they are skipped over
when traversing local interface lists, and they are sometimes replaced
with the public IP of the local hostname when interpreting user
arguments.
However, we only treated 127.0.0.1 as 'loopback'. Many systems can
have more than one loopback interface, such as having an interface
with the address 127.0.0.2. So, to catch these, treat everything in
127.0/16 as a loopback address or otherwise 'invalid' address. We
still do not treat the rest of 127/8 like this, to still allow some
127.* addresses to not be treated as loopback if someone really wants
to.
Change-Id: I64724cc1ee366e5ef80a8d6e3008e30a7077a4b2
Reviewed-on: http://gerrit.openafs.org/2367
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>