Make usr_thread_create create a non-detached thread by default, and
just have callers call usr_thread_detach if they want it detached. The
only current caller of usr_thread_create already calls
usr_thread_detach.
Also add usr_thread_join to make it possible to join a created thread.
Change-Id: Iad581c45d36dc43e94c950a5ca6a41dea8dc4b2f
Reviewed-on: http://gerrit.openafs.org/1722
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Use the AFS_CACHE_VNODE_PATH cache mechanism for UKERNEL, to be
compatible with new kernel caching code, and simplify the cache code a
little bit.
Change-Id: Ifc44790db08a336cca0032a1d05eedf70d2b24b8
Reviewed-on: http://gerrit.openafs.org/1721
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
libuafs was previously using an implementation of osi_GetTime (and
thus clock_GetTime) that required 32-bit time_t's to work properly.
Instead, just use the non-kernel osi_GetTime for UKERNEL, since we're
just in userspace either way.
Change-Id: I4f2d060f7e2aaeaaa3fe164aca6bee5333de4583
Reviewed-on: http://gerrit.openafs.org/1714
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Coerce the inode into an int, so we can predictably print it when we
print debug info.
Change-Id: I81533b66b632eb0fed3a9e37480feaf2fa92d510
Reviewed-on: http://gerrit.openafs.org/1720
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Prototype uafs_Shutdown in afs_usrops.h, so users of libuafs can stop
the CM.
Change-Id: I63e0106f7bfb5fff9a3ff1936005f6e24855efec
Reviewed-on: http://gerrit.openafs.org/1719
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
In UKERNEL, make VDIR be S_IFDIR, VREG be S_IFREG, etc. This makes
fakestat work correctly, since the va_mode of faked mountpoints are
OR'd with VDIR.
Change-Id: I7ac1dc7ae1d7cefade9bf92d8169db80977a5c76
Reviewed-on: http://gerrit.openafs.org/1718
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
During shutdown, do not release afs_CurrentDir if we don't have one.
Change-Id: I809a23f36929a02cb63753d66627357615cbaf9e
Reviewed-on: http://gerrit.openafs.org/1717
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Check for the NULL case in uafs_readdir/closedir, so we don't blindly
dereference the given pointer.
Change-Id: Iaefce9bf2e5135a60e9739f866a1f27333f06e28
Reviewed-on: http://gerrit.openafs.org/1715
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The Debian packaging files in the tree were ancient. Update to the
packaging files from the just-uploaded 1.5.73.3-1 version, which should
build and correctly install the current development source.
The current packaging files no longer use a hard-coded version in
debian/rules, so remove the configure machinery for creating it. The
correct way of handling the version number is to generate a new
changelog entry. That work will come in a subsequent patch.
Change-Id: I187fe7cc3f4ca38de6165d58274841d300b6cdf1
Reviewed-on: http://gerrit.openafs.org/1713
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Improve support for supergroups in the pts membership command
with a new option called -expandgroups. This option will
recursively show the complete membership of users and groups.
The expanded members of a group are all the users which are
members of all of the group's sub-groups. The expanded groups
of a user are all the groups which are supergroups of the
users's groups.
Change-Id: I811a4e5e73632e5e205fe10f3f3a36a98464d49e
Reviewed-on: http://gerrit.openafs.org/1601
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Improve pts support for supergroups with an option to list the
supergroups of a group.
Change-Id: I4fe1cd131cd334386bc16ce733e01e29e0511d4f
Reviewed-on: http://gerrit.openafs.org/1600
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Using page_address() will return NULL if the page is in highmem. To
avoid this, we must kmap() the page we're getting the address of,
and kunmap() when we are done. If the page isn't in high memory, then
kmap() is equivalent to page_address().
Change-Id: I42abfadaf3101bf5ad41bd7e5f720ba2583c4ee5
Reviewed-on: http://gerrit.openafs.org/1705
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
It's possible to use AFSDB records only to locate the VLDB servers but
still list the cell in the client CellServDB so that the client is
aware of it and populates it into dynroot. Describe doing this in the
man page.
Change-Id: I714cd515dc4b72a6e358bbd8f9332d4ddce5a5fc
Reviewed-on: http://gerrit.openafs.org/1710
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
It didn't compile because it includes <afs/afs_const.h> changing that
to afs_consts.h makes it happy.
Change-Id: I3a21e6ab2b99d8f4ebbc55922163b0695a6187f3
Reviewed-on: http://gerrit.openafs.org/1708
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
aklog was previously writing the magic AFS ID string into previously
alloated memory with sprintf, but the variable in question was only
as long as the username, so this code could overwrite memory and lead
to heap corruption. Free previously allocated memory and use
afs_asprintf to format the AFS ID string instead.
Change-Id: I7649864817340764c39c176606a9a543c10983c9
Reviewed-on: http://gerrit.openafs.org/1706
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Add a caution to the fileserver man page explaining that traditional
and demand-attach require different configurations, and also mention
that there are two different server implementations. Add an example
of a bos create command for creating a demand-attach File Server to
the fileserver man page.
Add a caution to the bos create man page that a traditional fs node
won't work with demand-attach and vice versa. Document the necessary
arguments for the dafs type. Clarify in EXAMPLES which bos create
commands are traditional and which are demand-attach. Add an example
of changing from a traditional to a demand-attach configuration.
Change kaserver to ptserver in the example of a simple process.
Change-Id: I4077246b69edf6e1ddc7c0761ac8e1006d471c24
Reviewed-on: http://gerrit.openafs.org/1707
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
In verbose mode, wintorture should send to stdout all logged
messages.
LICENSE MIT
Change-Id: I4e173c35fcf6b1284d31149d773308b9f9c9a773
Reviewed-on: http://gerrit.openafs.org/1696
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Make the computation of the docbook stylesheet location
based upon testing for directory existence now that versions
of cygwin 1.7.2 and place the stylesheets in a new location.
Change-Id: I844ae35a34eab73ee033bba875e68f71dc54f26b
Reviewed-on: http://gerrit.openafs.org/1702
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Add a dependency to the documentation rule on config so that
the documentation can be built without the entire source tree
Change-Id: I81d18fa9ec32c4d7d9799db2b1eac57c1d83df75
Reviewed-on: http://gerrit.openafs.org/1701
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
when a vnode has gone CVInit, don't use it as a vlru pivot.
Change-Id: I0b874c141069a23a9724d360a7864b0271c36e15
Reviewed-on: http://gerrit.openafs.org/1698
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
if we can't find a candidate to be the vlru item to manipulate past,
simply don't do the vlru update
FIXES 126868
Change-Id: I5c053d1934b0787ab7f2021c70a776e54208d345
Reviewed-on: http://gerrit.openafs.org/1690
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
something weird, e.g.
panic(cpu 0 caller 0x5c91c3d0): buf@/Users/shadow/Source/openafs/src/rx/rx_kcommon.c:1348
which came from an osi_Assert. not sure yet what the deal is, but attempt to
make this less ambiguous and less likely to conflict with other macros.
Change-Id: Iac27e89fc655d2b1ba6d04936e137060d8abd9c4
Reviewed-on: http://gerrit.openafs.org/1693
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
cm_UpdateVolumeLocation will append ".readonly" to a volume
name if the base name cannot be located. However, this should
not be done if the base name is numeric.
LICENSE MIT
Change-Id: Id61b8803eed51d124b612ffba8b185a4b4982c1d
Reviewed-on: http://gerrit.openafs.org/1695
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Add a new call state, RX_STATE_RESET, which permits us to
remove the conn_call_lock contention between rx_NewCall
and rx_EndCall. It is no longer necessary for rx_NewCall
to hold conn_call_lock across rxi_ResetCall which can block.
rx_EndCall is therefore always free to complete without
unnecessary delays caused by rx_NewCall.
Change-Id: Ie169708681eb1bbbb31951b95f68e861a4b01c7e
Reviewed-on: http://gerrit.openafs.org/1697
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
FreeBSD uses kldstat instead of kmodstat to get the
stats of the dynamically loaded kernel modules.
Change-Id: I3f658469e60f48b50a81e6ab5bcc507186fd8c5a
Reviewed-on: http://gerrit.openafs.org/1694
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The usage of RX_CALL_TQ_WAIT flag was not consistent within both
rx.c and rx_rdwr.c. When a thread is waiting on the transmit
queue it must not only set the RX_CALL_TQ_WAIT flag but also
increment the call->tqWaiters count. Upon waking up, it must
decrement call->tqWaiters and only clear RX_CALL_TQ_WAIT if
the tqWaiters count reaches zero.
Change-Id: I7de01d27f073cddd9651fbcd9cd2038e56ac35cf
Reviewed-on: http://gerrit.openafs.org/1685
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
if we flush, play it safe and signal tq waiters.
Change-Id: I945649c2e440c78c5c5a62da70236a67dc190228
Reviewed-on: http://gerrit.openafs.org/1682
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
make it able to decode prerelease and point release panics
Change-Id: Ibf28a7df7f0a21ff8f297d548a6b853a5e296064
Reviewed-on: http://gerrit.openafs.org/1692
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
make the ioctl32 translator work as expected, e.g., create
proper user addresses.
Change-Id: Ia690dee5f9978d679e942a9954f2123df4a96bc2
Reviewed-on: http://gerrit.openafs.org/1687
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
add TimedSleep for condvar-based sleep. this should be revisited;
mac and freebsd should be able to share this. possibly several other
platforms.
Change-Id: I918f45a689dd129119477cc63820f5c802e182d2
Reviewed-on: http://gerrit.openafs.org/1684
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
didEnterInstallerPane is void, not BOOL. make it so.
Change-Id: I934129684c839fa304bbfb7745833f5a7739e111
Reviewed-on: http://gerrit.openafs.org/1686
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Waiters of flags_cond and version_cond were not doing so correctly;
the correct way is to acquire a lock prior to their respective checks,
and atomically drop/acquire that lock with pthread_cond_wait.
Otherwise, we could miss a wakeup if a flag changed between our check
and when we wait.
To make this possible, make versionLock a normal pthread mutex in
AFS_PTHREAD_ENV, so it is a lock we can pass to pthread_cond_wait.
Make the waiters pass versionLock to pthread_cond_wait, and eliminate
flags_mutex and version_mutex.
Change-Id: Id33a72182b907d069e342cb049e23868ab2f7eb9
Reviewed-on: http://gerrit.openafs.org/1681
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Replace all calls to afs_inet_ntoa with the threadsafe
afs_inet_ntoa_r. afs_inet_ntoa was being used in a few places that may
be threaded (ubik), and in general should be avoided in case the
relevant code becomes threaded. Remove the definition of afs_inet_ntoa
to prevent anyone from using it.
Change-Id: I163d3f58fdd3d28077780963ced9995247682d78
Reviewed-on: http://gerrit.openafs.org/1680
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
assert we don't try to recurse on the glock
Change-Id: Iecf0f869e4a541a0b5322def47c944dec310ae3e
Reviewed-on: http://gerrit.openafs.org/1683
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
We cannot type-pun pointers like that. Instead, declare a new struct
on the stack, and copy the memory into it. Remove the CFLAGS_NOSTRICT
suppression on fssync-debug.o.
Change-Id: I25b48399417e009dc94bfebd513c0ee6feea282a
Reviewed-on: http://gerrit.openafs.org/1678
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
This patch changes formatting in src/afs to be
return_type
fn_name(args)
{
}
... as in the rest of the code.
Change-Id: Ib6e792d0795a83ea6fcf35df4413dec6492a4cc0
Reviewed-on: http://gerrit.openafs.org/1645
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Finish fixing the bug from 34ffc9cd that 57d8e454 only partially
fixed -- set a storeOps.storeproc element in rxfs_storeMemOps
as well as in rxfs_storeOps. This eliminates a NULL/uninitialized
memory dereference.
Change-Id: I9fe0fb147222b8f7a5a76c9ada9ca93f53ce1fa7
Reviewed-on: http://gerrit.openafs.org/1677
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
The change to a dynamically-allocated group list came before
the change to allow the maximum size of that group list to
be set as a tuneable at boot. The 8.0 release happened to
come between them, so we must treat both cases.
(Note that AFS_FBSD81_ENV is not yet defined anywhere; that
will come later.)
Change-Id: I87a0e2cff3c42de60d512fe5653abe0161afc789
Reviewed-on: http://gerrit.openafs.org/1676
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Since FreeBSD 5.0, system calls have taken a thread argument instead
of a proc argument. Finish catching up.
Also remove the retval argument, which is not in the system sysent
definition, and is unused.
Since we took our sweet time getting around to it, we can also
remove large swaths of FreeBSD 4.X-only code from the area.
Fix the vop_*_args struct definition comments that had changes in
addition to proc-->thread while we're here.
Change-Id: Ib469e77655a6c04bfbfe1e5fab54f6f3a6119a85
Reviewed-on: http://gerrit.openafs.org/1675
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Needed to pick up INT_MAX in the KERNEL case, for stopping the
XDR madness, among other things.
Change-Id: Ibcf2681b450f6a3603418991951f5144ab677d28
Reviewed-on: http://gerrit.openafs.org/1674
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
with rpm and macos versions which hopefully work for packaging
(well, the macos does)
Change-Id: I42016db95ddaff6f76e1f0954eb06cfd743f18cf
Reviewed-on: http://gerrit.openafs.org/1670
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Partially rewrite 2cf1f10a to reduce code clutter.
Instead of accessing pproc->p_ucred directly in afs_GCPAGs_perproc_func(),
push this access into a FBSD-specific afs_proc2cred() function.
This is not quite right, since we do not lock the proc mutex, but
in the same way as the old version and with more reasonable preprocessor
conditionals.
This also eliminates a probably-needless call to osi_Panic.
Change-Id: Ib403132f31cc13f8c4581cb89ecc8938d0a0dd88
Reviewed-on: http://gerrit.openafs.org/1672
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Added the libkopenafs libraries and headers to the authlib package.
Added the afs_compile_et binary to the devel package
Removed the reference to .../man5/afszcm.cat.* because it is already
caught by the earlier reference to .../man5/afs* glob. This caused a
warning during the package build process.
Change-Id: I64a037a8534ac3d2c6b0aa22249d6827e08af9b1
Reviewed-on: http://gerrit.openafs.org/1671
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>