Turns out the we have two almost identical lock routines on Linux,
one for POSIX locks, and one for flocks. Fix them both. Also,
while we're at it, make the same fixes in the LINUX24 tree.
Thanks to Andrew Deason for pointing out the oversight in the
original patch (5abe706a7e237d3872db3638d947a14c935370d5)
Change-Id: I59f0f1e12af36a97e490df36537ac17e8ed87303
Reviewed-on: http://gerrit.openafs.org/2535
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
this is a short-term hack. macos lacks pags, and anywhere without
pags won't have tokens when fs discon online is run as root unless
the tokens are explicitly set for root... which can be bad mojo.
instead, allow a uid to be passed in.
Change-Id: I44ebf9468976fa43d449f72d392fbb9e830e44d6
Reviewed-on: http://gerrit.openafs.org/2515
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
tweak how we hold vcaches to avoid issues with the underlying
vnode having an iocount underrun due to races.
Change-Id: I96526ed52c11aac1124a8cf66458ba3e25e7efb2
Reviewed-on: http://gerrit.openafs.org/2501
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The flock code gets a kernel error code from afs_posix_lock_file()
but then passes this error code through afs_convert_code (which sees
that it is already negative, and returns EIO). Instead, we should just
return afs_posix_lock_file()'s code direct to our caller.
Change-Id: I28bbc2dc8535d28a4e9e9f564392fd4cbfa76569
Reviewed-on: http://gerrit.openafs.org/2534
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Volume package bugs in the file server can result in VOFFLINE
being returned to the client instead of VNOVOL or VMOVED. As
a result the Unix CM treats VOFFLINE the same as VMOVED and VNOVOL.
The Windows client has not. As a result, bugs in the file server
can cause the Windows client to lose if the volume has in fact
been moved to another server.
As part of this change, the volume location list is updated prior
to the volume status being applied to the server from which the
error was received.
LICENSE MIT
Change-Id: I01036aa9d1999d0ba6822beb1b73500d365bf0b3
Reviewed-on: http://gerrit.openafs.org/2532
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
CopyAndSalvage makes a copy of the directory to salvage it. So, the
new directory will have a new inode. Update the array of directory
inodes to reflect this. Without this, we can fail to alter the
copied/salvaged directory later on, since we will try to read/write to
the wrong inode.
Change-Id: I2466981e8ee54c5aecf1a166a37d8146b126de24
Reviewed-on: http://gerrit.openafs.org/2530
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
'code' is declared at the top of SalvageVolume; no need to declare it
again in a lower block.
Change-Id: I9b48830c17e5043e6abcda4dd4dd3cc040031d9a
Reviewed-on: http://gerrit.openafs.org/2529
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
If we have not found any root directory, don't even look at
'oldrootdir' or 'rootdir', since they will be uninitialized at this
point.
Change-Id: Ia1a7037e06a223a7e1fbc48c0bfadd3b7aaa0e4b
Reviewed-on: http://gerrit.openafs.org/2528
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
In the salvager, if we read in a corrupt header (either we get a short
read or the magic is mismatched), make sure we zero out the contents,
so we don't read garbage further on.
Change-Id: Ifb4b9fc1b25d5eab470f0950a1d3bb240f75b0d3
Reviewed-on: http://gerrit.openafs.org/2527
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
At least some makes treat ./serialize_state.c as only in the current
dir, ignoring VPATH. So just specify serialize_state.c.
Change-Id: I250886cb4bbfb955984b39c5a7d1a1acd5d9e0c4
Reviewed-on: http://gerrit.openafs.org/2524
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The $< variable in makefiles is not portable when used outside of
pattern rules. Replace each usage with the actual name of the file we
want.
Change-Id: Idc9309e7d7bd3b1bd93e8225507b8b53c9433d69
Reviewed-on: http://gerrit.openafs.org/2523
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Many 'install' and 'dest' targets were referring to source files
without a srcdir prefix. Fix them so we can 'make install' / 'make
dest' with objdir.
Change-Id: Id76c5e326309baf8ec3f1213ecb2e40b19aea7d4
Reviewed-on: http://gerrit.openafs.org/2522
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
- Make netutils.c include afs/dirpath.h, so we don't have to find the
correct include dir for "dirpath.h"
- Fix dependencies in tvlserver, tbudb, and tptserver, and refer to
sources in srcdir where appropriate
Change-Id: Id9c2b3eefaa9d02ccb197a61341776444b958cdc
Reviewed-on: http://gerrit.openafs.org/2521
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
afsd_fuse.o could not find afsd_fuse.c for objdir builds. While we're
here, make the afsd_fuse.o rule more closely match the rules close by.
Change-Id: I675359134e2672cb36c9eb780edefb498d498bb1
Reviewed-on: http://gerrit.openafs.org/2520
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
If we call 'cpp' and it returns with an erroneous exit code, exit with
an error ourselves. Otherwise we will return success and generate
empty results even if the input file is unreadable, for instance,
which causes confusing errors later in the build.
Change-Id: Ia12dc58eee0937a6bd529dcd6b552e253dbc40c8
Reviewed-on: http://gerrit.openafs.org/2519
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
the smallest thing which can be encoded is a single character;
also allow it to be decoded, such that low numbered volumes
are treated as valid.
Change-Id: Ia5e694f7f73e1035af741bd23c7f50805910d0c4
Reviewed-on: http://gerrit.openafs.org/2470
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Add a general framework to permit flags to be passed into the
smb ioctl interface functions. This patchset does not define
any such flags.
LICENSE MIT
Change-Id: I9a894a186c4ca455116ea79bdd6c3cc0d02a2dc3
Reviewed-on: http://gerrit.openafs.org/2525
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Despite what the comment says, shutdown_axscache does have a caller,
so just remove the comment lest it confuse people.
Change-Id: I0491bf4f945c372d7ddbafb7a43390821c95a0c1
Reviewed-on: http://gerrit.openafs.org/2471
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
If the pages to be flushed are from a readonly or backup volume
they can't be dirty. In this case there is no need to stabilize
the pages before they are locked and recycled.
Stablilization is performed on the cm_scache_t object so do not
stabilize and unstablize for each cm_buf_t object.
LICENSE MIT
Change-Id: I6fa86cf0a33dc9f45d77911909e799c0fc6510cf
Reviewed-on: http://gerrit.openafs.org/2518
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
The docbook DTD requires a <revision> element to contain a <date>
element. So make a blank <date> one even though we don't keep track of
a date, so we can pass xmllint.
Change-Id: I06e68b756d215ec3ce279561a05b5bc5fc418028
Reviewed-on: http://gerrit.openafs.org/2517
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Modify the sections dealing with creating the 'fs' bnode to also
mention how to create the 'dafs' bnode, and add an appendix explaining
DAFS and the differences between DAFS and non-DAFS.
Change-Id: I026405dbc3838a9a0247b85cbdc508d6be93275d
Reviewed-on: http://gerrit.openafs.org/2508
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
xdr_mem uses INT_MAX, so we need limits.h in the kernel for HP-UX.
Change-Id: I5c75f9d3cb9cfd5da78cf625f042c1dee862dcd7
Reviewed-on: http://gerrit.openafs.org/2506
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
alternate to 2503 (which we will push after branching)
Thanks to Andrew Deason for discovering this issue.
Change-Id: I3a43bb1eab1a753f099c9d21e440f6660c706e37
Reviewed-on: http://gerrit.openafs.org/2514
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
the discardall loop was not dequeueing vcaches, meaning we would loop.
caught by Simon Wilkinson
Change-Id: I80256ef5f91d7030e0cb11e78a79f137a217a29a
Reviewed-on: http://gerrit.openafs.org/2513
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
reset the vcache before we (nominally, it's still under a lock)
discard it. remove superfluous shadow clearing.
Caught by Simon Wilkinson
Change-Id: I55b91fa4f2f92a8b6fd1f8117c2448f7a7d1d98a
Reviewed-on: http://gerrit.openafs.org/2512
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
don't leak an unref'd vcache pointer if we are returning an error
(EAGAIN). thanks to Simon Wilkinson for catching this.
Change-Id: I40c5aa0fd50e1f2c76b09ba073a7109bca706d8c
Reviewed-on: http://gerrit.openafs.org/2511
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Add the function afs_exec_alt to help programs easily execute an
"alternate" version of themselves. For example, for programs that are
built with/without DAFS support, or are built for 32-bit/64-bit
structures, etc.
Change-Id: Ibb2b7105d58476f84bd9f15987f8b7df37314b6b
Reviewed-on: http://gerrit.openafs.org/2483
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Over the years the processing of the Freelance callbacks have
added functionality that behaves much more like FetchStatus checks
to a file server. If the data version of the object has changed,
get the new data. Given that is the case, we can remove much of
the original refresh logic that is rather race prone. Say goodbye
to cm_fakeGettingCallback and cm_fakeDirCallback.
LICENSE MIT
Change-Id: I249c84201afc16611039b2ba0801a643fcf05f28
Reviewed-on: http://gerrit.openafs.org/2505
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
When processing a pioctl path with either smb_ParseIoctlPath or
smb_ParseIoctlParent, cm_SyncOp(CM_SCACHESYNC_NEEDCALLBACK|GETSTATUS)
must be called on the cm_scache_t object to ensure that it is up
to date before we permit cm_Lookup or other operations to be performed
on it. Add the cm_SyncOp() call to smb_ParseIoctlPath and
smb_ParseIoctlParent to ensure it is done for all pioctl operations.
LICENSE MIT
Change-Id: I2fe5d5ec2567693155277b40929dedb8155d9ebf
Reviewed-on: http://gerrit.openafs.org/2504
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Even if we can't generate a date, we must include the date tag
within the revision tag in order for the docbook dtd to be applied
and pass xmllint.
Change-Id: Ic58995ecd7b07a1163f0965e22bcd78769d4565e
Reviewed-on: http://gerrit.openafs.org/2500
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
The 32-bit tools installer was displaying client configuration wizard
pages. Since, the 32-bit tools share configuration with the AFS
service, the 32-bit tools installer should not be attempting to change
client configuration. Remove said wizard pages from the 32-bit tools
installer.
Change-Id: Ib52b5741d5d412b1aea1856e0304364ed928b2ba
Reviewed-on: http://gerrit.openafs.org/2492
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Newer versions of the Message Compiler included with Windows SDKs
break when using the -s option. Remove it.
Change-Id: I71bcd2d5aa000b11c44b77ce4687bc0f070699b0
Reviewed-on: http://gerrit.openafs.org/2495
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Do not use the local cell name when determining if a new entry name is
too long. This check assumes that foreign cells will use our local
cell name (assumed to be our local Kerberos realm) in a certain way,
and prevents creating users that will make those names too long.
This is undesirable for several reasons. One is that the local realm
name may not be the same as the local cell name (and we may have many
local realms). Another is that we cannot reliably predict how foreign
cells will construct foreign pt entry names, so preventing entry
creation based on that may prevent names that will never cause any
problems. This check also assumes that our names will be used as
foreign entries in other cells, which may not be the case.
So, remove the check based on the local cell name, and remove the
pr_realmNameLen variable while we are at it, since this is all it is
used for.
Thanks to Jeffrey Altman for discussion, and for bringing this up in
the first place.
Change-Id: Ief4bc94d9ead61a1589797b5dc663a6473c9ed72
Reviewed-on: http://gerrit.openafs.org/2488
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
cm_data.rootSCachep is a global pointer to the cm_scache_t that
represents the root.afs volume root directory. Throughout the
code this cm_scache_t was being used without ensuring that a
callback to the volume is in fact valid.
Under most circumstances this would not be a problem. However,
it is possible for a request to fail due to the lack of a callback
at a critical moment. Add a new function cm_rootScachep() that
attempts to ensure that a callback is present (if possible) prior
to use the cm_scache_t object.
LICENSE MIT
Change-Id: I997dc05a2214788d32727c261947206a61cd8d32
Reviewed-on: http://gerrit.openafs.org/2491
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
When the contents of the Freelance root directory changes the fake
directory buffers are updated and a fakeDirVersion is incremented.
The dataVersion of the cm_scache_t object is supposed to be updated
on the next access by performing a fake get callback request.
Unfortunately, this did not always occur because of a race. If another
Freelance object is updated first, the root directory object would
never successfully get a fake callback.
This patchset ensures that the generation of the fake directory
buffer content and the callback are obtained under the same set
of locks thereby removing the race.
LICENSE MIT
Change-Id: Ic8c77fc3c652cd056f84db55ca6db32499bcb0c9
Reviewed-on: http://gerrit.openafs.org/2490
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Factor out some common options out of the man pages.
LICENSE IPL
Change-Id: Ic79e53a2d6464cc62d49987ab58d38c9898f372b
Reviewed-on: http://gerrit.openafs.org/2496
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The NFS translator-enabled kernel module refuses to load if
misc/nfssrv is not also loaded. We were only checking misc/nfssrv and
misc/sparcv9/nfssrv, though, not misc/amd64/nfssrv. Check that, too,
as it may be loaded on amd64 machines.
Reported by Robert Milkowski.
Change-Id: Idbb9c4136b87ffa4c72ca376738001fb6a3ca7d8
Reviewed-on: http://gerrit.openafs.org/2497
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
lstat is now defined globally in the build system.
remove redundant definition.
LICENSE MIT
Change-Id: I91f90f571ffd2dfe1544ce17b50e5577acc5adbc
Reviewed-on: http://gerrit.openafs.org/2499
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The generate-html script scans the directories to compile a list of
POD files. The list of candidates include the 'fragments' directory,
which causes an error when the script attempts to open it as a file.
Change-Id: If1208561f58f869ccba60f4a263bee5200dad1ed
Reviewed-on: http://gerrit.openafs.org/2494
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
The ptserver was restricting all names to be less than PR_MAXNAMELEN -
pr_realmNameLen - 1, so that the local realm and a '@' can be safely
appended for foreign user registration. This check is overly
restrictive for foreign users, since the local realm will never be
appended to the user name (it already has the foreign realm name
appended). So, just check for PR_MAXNAMELEN for foreign users.
Original issue reported by Gunnar Krull.
Change-Id: I34c5d908cc2c1b3abe87966115e6ada74c9a93a9
Reviewed-on: http://gerrit.openafs.org/2485
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
FreeBSD 8.1 (and 9.0) now require a second parameter to
ifa_ifwithnet. Fix the build by using the same macro
as OBSD46.
Change-Id: I22eac8722bef79b6349b9d879eb42d63450b362e
Reported-by: Jan Henrik Sylvester
Reviewed-on: http://gerrit.openafs.org/2489
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
'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>