2021-08-04 09:22:38 +02:00
|
|
|
|
commit 8c307b42f0b0b80bcf69de09031991d2ab776ed9
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Thu Jun 17 17:03:16 2021 +0200
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Make OpenAFS 1.8.8
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Update version strings for the 1.8.8 release
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: I8dc5b309ab17890410825caa329e536f14430d6b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14642
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
commit 40a209edeeb984ab20b35cde666dac087bfc5eb0
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Thu Jun 17 16:59:56 2021 +0200
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Update NEWS for OpenAFS 1.8.8
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Finalize the release notes for the 1.8.8 release.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: I01b4527f708fbc8a733b3aa7754274c94683cb92
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14641
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
commit 270bb0998f149485e4ae251fce802d8e80794e7c
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Thu Jul 15 17:27:10 2021 +0200
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Make OpenAFS 1.8.8pre2
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Update version strings for the second 1.8.8 prerelease.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: Ie920e12fde0bc5043273d6dfceceaa1a4705ea3a
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14699
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 67e7662714a39d00d77b7689c3457fdcc689f160
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Thu Jul 15 21:09:12 2021 +0200
|
|
|
|
|
|
|
|
|
|
Update NEWS for 1.8.8pre2
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Release notes for the second 1.8.8 prerelease.
|
|
|
|
|
|
|
|
|
|
Change-Id: I178d09bfa6c8d24b129cfdf92d4a4fb641518087
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14700
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit d15cd1c8cfd431617ff29e9b83e79d82e1fa0d58
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jun 4 10:18:39 2021 -0600
|
|
|
|
|
|
|
|
|
|
cf: Resolve implicit function definition for memset
|
|
|
|
|
|
|
|
|
|
The autoconf function OPENAFS_HAVE_STRUCT_FIELD can produce a compiler
|
|
|
|
|
warning for an implicit function definition for memset, however with
|
|
|
|
|
macOS 11 (Big Sur) the default compiler flags have been changed
|
|
|
|
|
(-Werror=implicit-function-declaration) so that this is now flagged as an
|
|
|
|
|
error. As an error this can lead to an incorrect result returned by
|
|
|
|
|
OPENAFS_HAVE_STRUCT_FIELD.
|
|
|
|
|
|
|
|
|
|
Add an include for <string.h> to provide the necessary definition for
|
|
|
|
|
memset.
|
|
|
|
|
|
|
|
|
|
Note, both gcc and clang can produce the implicit function definition
|
|
|
|
|
warning.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14631
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
(cherry picked from commit fd5aa52ef8ce719502f970ab93ffde07d7ed4780)
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: I6829f13ee2fb1698738e95b379928cfea383e348
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14668
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 6fbbc7b579dc21b9229c24b1d0d577f7a7bd14fa
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jun 17 17:15:13 2021 -0500
|
|
|
|
|
|
|
|
|
|
afs: Free pioctlToken in extractPioctlToken
|
|
|
|
|
|
|
|
|
|
Ever since it was introduced in commit 5ec5ad5 (New GetToken pioctl),
|
|
|
|
|
extractPioctlToken has incorrectly freed pioctlToken by passing
|
|
|
|
|
'&pioctlToken' to xdr_free (instead of 'pioctlToken').
|
|
|
|
|
|
|
|
|
|
This causes xdr_ktc_tokenUnion to interpret &pioctlToken (which is a
|
|
|
|
|
struct ktc_tokenUnion **) as a struct ktc_tokenUnion *. This doesn't
|
|
|
|
|
cause any corruption or panics, since ktc_tokenUnion doesn't contain
|
|
|
|
|
any freeable fields unless its at_type is 2 (AFSTOKEN_UNION_KAD). So
|
|
|
|
|
as long as the bogus 'at_type' from the misinterpreted pointer is not 2,
|
|
|
|
|
the xdr_free call will just not free anything (and return an error,
|
|
|
|
|
which we ignore).
|
|
|
|
|
|
|
|
|
|
If the bogus at_type is 2, this would probably cause some memory
|
|
|
|
|
corruption or other nastiness. For this to happen on 32-bit systems,
|
|
|
|
|
the value of the 'pioctlToken' pointer itself would need to be 0x2.
|
|
|
|
|
On 64-bit systems, the top or bottom 32-bits of the pointer would need
|
|
|
|
|
to be 0x2 (depending on endianness). Those situations seem impossible
|
|
|
|
|
or very unlikely on most systems, and have never been seen in the
|
|
|
|
|
wild.
|
|
|
|
|
|
|
|
|
|
FIXES 135238
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14651
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
(cherry picked from commit 966d5eb58f1f4fb333f263f018429c3a782be344)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ied9b6c42106fa2c4353cccd08e1a6b50190a8504
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14667
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
commit 5abea9b8b1164f203fe18b5abe7d64ac8cb514eb
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Tue Jun 22 20:02:18 2021 -0400
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
bos: Let xdr allocate rpc output strings
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
The bos client provides fixed sized buffers on the stack for RPC output
|
|
|
|
|
strings instead of letting xdr allocate output strings. Unfortunately,
|
|
|
|
|
the fixed sized buffers do not account for the terminating nul char when
|
|
|
|
|
the output string is the maximum size defined for the bozo RPCs.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
To avoid potential buffer overflows, and to allow for larger xdr string
|
|
|
|
|
sizes in the future, convert these to xdr allocated strings. Be sure to
|
|
|
|
|
always free the xdr allocated strings.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
The following bozo RPCs have xdr output strings, and are addressed in
|
|
|
|
|
this commit:
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
BOZO_EnumerateInstance
|
|
|
|
|
BOZO_GetCellHost
|
|
|
|
|
BOZO_GetCellName
|
|
|
|
|
BOZO_GetInstanceInfo
|
|
|
|
|
BOZO_GetInstanceParm
|
|
|
|
|
BOZO_GetInstanceStrings
|
|
|
|
|
BOZO_GetStatus
|
|
|
|
|
BOZO_ListSUsers
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Thanks to Cheyenne Wills for pointing out this issue.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14650
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 9ae5b599c7289a6f3ea2b03f2646402da182bb5d)
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: If8b23bbee3db83d65b7c7532fd47f3b5a16c424c
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14666
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 6484bc7d5aa2dd15ed0fc6dbf7a3ddcf071f7dad
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Tue Oct 6 00:02:53 2020 -0400
|
|
|
|
|
|
|
|
|
|
bos: do not assume fs just if dafs bnode is stopped
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
If dafs is configured but stopped, 'bos salvage <fs> <vicep>
|
|
|
|
|
-forceDAFS' will fail with:
|
|
|
|
|
|
|
|
|
|
bos: failed to get instance info for 'fs' (no such entity)
|
|
|
|
|
bos: shutting down 'fs'.
|
|
|
|
|
bos: can't stop 'fs' (no such entity)
|
|
|
|
|
|
|
|
|
|
This is due to incomplete logic in IsDAFS, introduced with commit
|
|
|
|
|
e46f10a0a0a930f318833a8a86b10c19744160c1 'bos: Do not assume DAFS just
|
|
|
|
|
if DAFS bnode exists'
|
|
|
|
|
|
|
|
|
|
Add logic to IsDAFS to work correctly when dafs is configured but
|
|
|
|
|
stopped.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14382
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
(cherry picked from commit 48df3ac30210056ec046b48c28aee425b0690f92)
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: Ib55b9e322f529d120f424813c21af133ca2e6acc
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14665
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 0b55780042d8f856c33ad7a97c65825e3ddee5b7
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Thu Jul 1 20:14:12 2021 -0400
|
|
|
|
|
|
|
|
|
|
libadmin: Be sure to free the server list in ListCellsRPC
|
|
|
|
|
|
|
|
|
|
Commit 0d6b9defb36cb94f3d34b058f00055e9e99d85fc added a check to avoid
|
|
|
|
|
overrunning a buffer when the cell name returned by RXAFSCB_GetCellServDB
|
|
|
|
|
is too large for the libadmin buffer, but in that case missed freeing
|
|
|
|
|
the server list returned in the same rpc.
|
|
|
|
|
|
|
|
|
|
Move the xdr_free() of the server list under the cleanup label so the
|
|
|
|
|
server list returned by the RPC will always be freed.
|
|
|
|
|
|
|
|
|
|
Thanks to Mark Vitale for finding this bug.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14690
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a5c146116faccc9891ae6d50506cd43d52dadb70)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic310d8d940588db2c966130a1e7b0a9543dd5e23
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14698
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 00423e6920fba66ce4ce7ab746210825830aae5b
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Fri May 21 12:38:01 2021 -0400
|
|
|
|
|
|
|
|
|
|
libadmin: Let xdr allocate rpc output strings
|
|
|
|
|
|
|
|
|
|
In most functions, the libadmin library provides fixed sized buffers for
|
|
|
|
|
RPC output strings instead of letting xdr allocate the output string.
|
|
|
|
|
Unfortunately the fixed sized buffers do not account for the terminating
|
|
|
|
|
nul char when the output string is the maximum length possible for the
|
|
|
|
|
xdr output strings.
|
|
|
|
|
|
|
|
|
|
To avoid potential buffer overflows, and to allow for larger xdr string
|
|
|
|
|
sizes in the future, convert these to xdr allocated strings and use safe
|
|
|
|
|
string functions to copy the results to the application buffers. Fail
|
|
|
|
|
with an error if the application buffer is too small, instead of
|
|
|
|
|
overflowing the buffer or truncating results.
|
|
|
|
|
|
|
|
|
|
Thanks to Cheyenne Wills for pointing out this issue.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14626
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 0d6b9defb36cb94f3d34b058f00055e9e99d85fc)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia477d68ec62558470ae27544c86c340a7d2b7235
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14664
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5b557f37ade19c0eb7073ee39808a16cf9508fd5
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Wed Aug 21 11:48:53 2019 -0500
|
|
|
|
|
|
|
|
|
|
afs: Update style in afs_tokens.c
|
|
|
|
|
|
|
|
|
|
Fix a few style nits and other minor edits in afs_tokens.c. Mark a few
|
|
|
|
|
functions 'static' that are not referenced outside of that file.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13806
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 1d2a1002bd1bc8d82c05399c06836ede83f9eeea)
|
|
|
|
|
|
|
|
|
|
Change-Id: I85b263674477e63cdc72d4dd9b4f714611b71d7e
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14663
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c978f92cbf9306c0b12eec68cd64ebac045c65e6
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Tue Jun 30 22:53:33 2020 +0200
|
|
|
|
|
|
|
|
|
|
Make OpenAFS 1.8.8pre1
|
|
|
|
|
|
|
|
|
|
Update version strings for the first 1.8.8 prerelease.
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia7468e6ae5ec93a81e13dda55842ec57135c2a03
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14264
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit e9cc2c3c71eba2f5a1b1be1f5d4198385b681d5c
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Fri Feb 19 21:51:15 2021 +0100
|
|
|
|
|
|
|
|
|
|
Update NEWS for 1.8.8pre1
|
|
|
|
|
|
|
|
|
|
Release notes for the first 1.8.8 prerelease.
|
|
|
|
|
|
|
|
|
|
Change-Id: I04762b28b3cc5528f31c2b5d8f1d7f906e46f62f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14540
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2021-01-17 04:29:07 +01:00
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit f0283af65e81a4bc9aa4fa44eb8a4a45c6a0448e
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu May 27 11:02:01 2021 -0600
|
|
|
|
|
|
|
|
|
|
afscp: Link against opr/roken/hcrypto
|
|
|
|
|
|
|
|
|
|
Link afscp against libopr, libroken, and libafshcrypto, so afscp can
|
|
|
|
|
be built again.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13656
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
(cherry picked from commit 4eeed830fa31b7b8b5487ba619acbc8d30642aaa)
|
|
|
|
|
|
|
|
|
|
Change-Id: I73264df34743dcb6a8f6232267892ee602a76053
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14627
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
commit d7900532e3e7897f8030a6ed31abff4ec0d32ebf
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Fri Jan 29 01:30:47 2016 -0500
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
afs: free the Buffers array correctly during shutdown
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
DInit() allocates 'Buffers' with afs_max_buffers = 4*nbuffers
|
|
|
|
|
worth of buffer structs to allow for run-time expansion.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
But shutdown_bufferpackage() free 'Buffers' as if it only had
|
|
|
|
|
nbuffers worth of buffer structs.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Correct the size of Buffers passed to afs_osi_Free().
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Discovered during Solaris shutdown testing with kmem_flags=x0f.
|
|
|
|
|
This bug is not Solaris-specific, but it may be symptomless on other
|
|
|
|
|
platforms.
|
2020-11-03 08:17:17 +01:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Introduced by commit e7c966354c428a5a5929a3db6a829ee71c8ba2fc 'Flexible
|
|
|
|
|
client buffer growth'; this only affected cold shutdowns (afsd
|
|
|
|
|
-shutdown).
|
|
|
|
|
|
|
|
|
|
After commit 2336164d1bf63980419d3a870f908f1f384fdfc0 'afs: Actually
|
|
|
|
|
free resources during warm shutdown', this bug also affects warm
|
|
|
|
|
shutdowns (the default when /afs is unmounted).
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12183
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
2020-11-03 08:17:17 +01:00
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
(cherry picked from commit d1c944ec167b8845d703a6b6a8d9492751056b98)
|
|
|
|
|
|
|
|
|
|
Change-Id: I612b33a3788d2c9a0c39c5cb22a3473f8e1c01e1
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14616
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
2020-08-17 16:35:19 +02:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5cfee79d9a12e67720906cc5a985f7c12064db41
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jul 21 17:02:34 2019 -0500
|
|
|
|
|
|
|
|
|
|
afs: Actually free resources during warm shutdown
|
|
|
|
|
|
|
|
|
|
Currently, the shutdown_*() code paths for several subsystems only
|
|
|
|
|
free the memory for that subsystem for "cold" shutdowns, and not for
|
|
|
|
|
"warm" shutdowns. This means the memory gets leaked during a "warm"
|
|
|
|
|
shutdown, since we never free these resources anywhere else.
|
|
|
|
|
Specifically, this happens in shutdown_bufferpackage, shutdown_AFS,
|
|
|
|
|
and shutdown_osinet.
|
|
|
|
|
|
|
|
|
|
To avoid these leaks for warm shutdowns, just move the
|
|
|
|
|
afs_cold_shutdown check around a little, so we free the relevant items
|
|
|
|
|
in either codepath.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13716
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2020-06-16 21:03:57 +02:00
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
(cherry picked from commit 2336164d1bf63980419d3a870f908f1f384fdfc0)
|
2020-06-16 21:03:57 +02:00
|
|
|
|
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Change-Id: I1d2360ea777b7a7488e599b6e707c98295d8fbdd
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14615
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
2020-06-16 21:03:57 +02:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 4d03c0cac0abe575ccf1a74078c3338245690462
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Jul 30 16:42:19 2020 -0400
|
|
|
|
|
|
|
|
|
|
vol: ensure ih package defaults are set for salvage
|
|
|
|
|
|
|
|
|
|
Like most OpenAFS components that work with ihandles, salvager relies on
|
|
|
|
|
implicit invocation of ih_PkgDefaults via the one-shot in the first call
|
|
|
|
|
to IH_INIT.
|
|
|
|
|
|
|
|
|
|
Unfortunately, there is at least one reachable code path in salvager
|
|
|
|
|
that asserts (panics) because vol_io_params has not yet been
|
|
|
|
|
initialized. This is when salvaging a volume group that does not have a
|
|
|
|
|
link table; the salvager then panics while attempting to create a new
|
|
|
|
|
link table:
|
|
|
|
|
|
|
|
|
|
SalvageFileSys -> SalvageFileSys1 -> DoSalvageVolumeGroup ->
|
|
|
|
|
CreateLinkTable -> IH_CREATE -> namei_icreate -> icreate ->
|
|
|
|
|
namei_SetLinkCount -> FDH_SYNC -> ih_fdsync -> osi_Assert(0)
|
|
|
|
|
|
|
|
|
|
This path was discovered while testing the non-dafs salvager, but it has
|
|
|
|
|
also been observed in the field with the DAFS salvageserver. It is
|
|
|
|
|
possible that there are additional undiscovered paths where
|
|
|
|
|
vol_io_params are required but uninitialized.
|
|
|
|
|
|
|
|
|
|
Add an implicit ih_PkgDefaults call to icreate to avoid triggering the
|
|
|
|
|
assert via the code path above.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14378
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 9d65bcf8833a826a74fc433777599380cd5b03b9)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8c7fb5acbaf2d84b290ce95e11a7baf0421b920d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14614
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
2020-06-16 21:03:57 +02:00
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 90e54b2a2010b4620b007ea5c8d3a5a7cbc30069
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Fri Oct 9 16:28:15 2020 -0400
|
|
|
|
|
|
|
|
|
|
vol: move ih_PkgDefaultsSet check inside ih_PkgDefaults
|
|
|
|
|
|
|
|
|
|
Instead of repeating the oneshot check in each caller of ih_PkgDefaults,
|
|
|
|
|
move the oneshot check into ih_PkgDefaults itself.
|
|
|
|
|
|
|
|
|
|
While here, ensure that ih_PkgDefaults does its work under IH_LOCK.
|
|
|
|
|
|
|
|
|
|
Finally, make ih_PkgDefaultsSet a local static variable (no longer
|
|
|
|
|
exported).
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14383
|
2020-06-16 21:03:57 +02:00
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 896524963ca1f1d8144a668dafefc8ce88ad440b)
|
|
|
|
|
|
|
|
|
|
Change-Id: I179640df6e0a5fd6b9a97b57cfde6377213e1d14
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14613
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 1b794441fe2c7d3c22ca92135035b5ebe826431f
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Oct 1 17:13:51 2020 -0400
|
|
|
|
|
|
|
|
|
|
afsd: remove unused variable afs_shutdown
|
|
|
|
|
|
|
|
|
|
Since the original IBM code import, the variable afs_shutdown has been
|
|
|
|
|
set but never read.
|
|
|
|
|
|
|
|
|
|
Remove it from the code base.
|
|
|
|
|
|
|
|
|
|
No functional change is incurred by this commit.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14380
|
2020-08-17 16:35:19 +02:00
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
2021-08-04 09:22:38 +02:00
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 0761bb7c58260985fbbfcf477d597da3c5d64fc5)
|
|
|
|
|
|
|
|
|
|
Change-Id: I35d657fb93b9e6f611d91d5a374899249cec5b88
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14612
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 553270ec9e02fc36bdb59924344fa4f470ee20cc
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Jan 28 23:38:59 2016 -0500
|
|
|
|
|
|
|
|
|
|
afs: remove duplicate declaration for afs_shutdown()
|
|
|
|
|
|
|
|
|
|
Somehow there were two. Now there is but one.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12181
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 3e2fe677a2d3b9f76644175f3a59d392872b87f3)
|
|
|
|
|
|
|
|
|
|
Change-Id: I19a2f0ebe2c79fd32800cc388e488fa11fd8f0ce
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14611
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7ebe9b70b994ba04d016a5bbf479f30934b7c632
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Jan 28 10:01:13 2016 -0500
|
|
|
|
|
|
|
|
|
|
afs: afsd -shutdown sets afs_cold_shutdown too soon
|
|
|
|
|
|
|
|
|
|
'afsd -shutdown' always invokes syscall(AFSOP_SHUTDOWN)
|
|
|
|
|
with parm2 set to 1 to indicate a "cold" shutdown.
|
|
|
|
|
(There are no other callers to AFSOP_SHUTDOWN).
|
|
|
|
|
|
|
|
|
|
AFSOP_SHUTDOWN sets global variable afs_cold_shutdown
|
|
|
|
|
based on the value of parm2. Then it checks to see if
|
|
|
|
|
AFS is still mounted; if so, we return early with EACCES.
|
|
|
|
|
However, global afs_cold_shutdown remains set.
|
|
|
|
|
|
|
|
|
|
Therefore, the next successful 'umount' after a "failed"
|
|
|
|
|
'afsd -shutdown' will always trigger a "cold" shutdown.
|
|
|
|
|
This is contrary to the intent of the current implementation,
|
|
|
|
|
which is to perform a "warm" shutdown upon 'umount' for
|
|
|
|
|
most platforms. (Exceptions: AIX, OBSD, NBSD always
|
|
|
|
|
specify a cold shutdown upon 'umount').
|
|
|
|
|
|
|
|
|
|
This bug would never be noticed on the "cold" exception
|
|
|
|
|
platforms, but on the "warm" platforms the inconsistency
|
|
|
|
|
of seeing an unexpected "COLD" shutdown may be confusing
|
|
|
|
|
and surprising.
|
|
|
|
|
|
|
|
|
|
Make shutdown operation more self-consistent by modifying
|
|
|
|
|
AFSOP_SHUTDOWN to defer setting of afs_cold_shutdown until
|
|
|
|
|
after the mount test.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12180
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit c72ec68bcea646aa3e0395ad103afb2ee9ba9cde)
|
|
|
|
|
|
|
|
|
|
Change-Id: I7b40728bcb56c9bb0d86912f140fed315e93bf64
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14610
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit de668dbafb55682a209f71cb1d09b5084d0c2af1
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Fri Apr 9 15:14:52 2021 +0000
|
|
|
|
|
|
|
|
|
|
macos: delegate sock_* calls to bkg daemons
|
|
|
|
|
|
|
|
|
|
As part of Apple's ongoing effort to modernize macOS, improve security
|
|
|
|
|
and reliability, the deprecation of kernel extensions was officially
|
|
|
|
|
announced at WWDC19. According to this announcement, Kernel programming
|
|
|
|
|
interfaces will be deprecated as alternatives become available, and
|
|
|
|
|
future OS releases will no longer load kernel extensions that use
|
|
|
|
|
deprecated KPIs by default.
|
|
|
|
|
|
|
|
|
|
Unfortunately, the following KPIs, extensively used by rx, are included
|
|
|
|
|
in the list of deprecated KPIs as of macOS 10.15:
|
|
|
|
|
|
|
|
|
|
- sock_receivembuf
|
|
|
|
|
- sock_close
|
|
|
|
|
- sock_send
|
|
|
|
|
- sock_socket
|
|
|
|
|
- sock_setsockopt
|
|
|
|
|
- sock_bind
|
|
|
|
|
|
|
|
|
|
To workaround this problem, delegate calls to the functions mentioned
|
|
|
|
|
above to bkg daemons forked by afsd. Notice that the ifadd_* and ifnet_*
|
|
|
|
|
functions are also deprecated. Fortunately, these calls can be avoided
|
|
|
|
|
enabling AFS_USERSPACE_IP_ADDR.
|
|
|
|
|
|
|
|
|
|
Thanks to Andrew Deason for his assistance (ideas, suggestions,
|
|
|
|
|
documentation, etc).
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14431
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 70e5c4f6a45854ae3a4241568769279747a8b76f)
|
|
|
|
|
|
|
|
|
|
Conflicts:
|
|
|
|
|
src/config/afs_args.h
|
|
|
|
|
|
|
|
|
|
Change-Id: I4370c0aa3978f208c763ed43c3cc5567ee74e730
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14600
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7f7ff82c0ab57ee23f19c3ea783ab8ebf23ca045
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Aug 14 15:53:20 2018 -0500
|
|
|
|
|
|
|
|
|
|
afs: Add AFS_USPC_SHUTDOWN bkg request
|
|
|
|
|
|
|
|
|
|
When AFS_NEW_BKG was added, the kernel module indicated to the
|
|
|
|
|
relevant afsd process that it's time to shutdown by returning -2. This
|
|
|
|
|
works on DARWIN, but it's difficult to make this work on all
|
|
|
|
|
platforms, because of the different way that platforms handle error
|
|
|
|
|
codes from our pioctls and other AFS syscalls.
|
|
|
|
|
|
|
|
|
|
Specifically, on LINUX, negative error codes are assumed to be
|
|
|
|
|
negative errno codes, and so returning -2 from the syscall handler
|
|
|
|
|
means we return -1 to userspace, with errno set to 2 (ENOENT).
|
|
|
|
|
|
|
|
|
|
Getting this to work consistently across platforms is probably more
|
|
|
|
|
trouble than its worth, so instead of relying on specific return codes
|
|
|
|
|
from the syscall, just add a new background daemon operation called
|
|
|
|
|
AFS_USPC_SHUTDOWN, which just tells the background daemon to exit.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13281
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 397199a1992d74d8b7e693a2d76df836f7a70080)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ib809a27476f49baef70dcbcc749eed95a4de8d2f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14605
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit a80e04a9eb6fb6b3d4cffce0a682931f63efc933
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Thu Jan 28 15:49:25 2021 -0800
|
|
|
|
|
|
|
|
|
|
macos: packaging support for MacOS X 11.0
|
|
|
|
|
|
|
|
|
|
This commit introduces the new set of changes / files required to
|
|
|
|
|
successfully create the dmg installer on OS X 11.0 "Big Sur".
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14430
|
|
|
|
|
Reviewed-by: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 40c6f3aa5576d7e1ac23caff1ae4ffd69e74dc44)
|
|
|
|
|
|
|
|
|
|
Change-Id: I55bab1631c41fdb636fa84359f2d76d4bfc2b6a1
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14598
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 3ea37d57106901e8d4e82537dcee3609f1ef2c1e
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Thu Jan 28 14:45:10 2021 -0800
|
|
|
|
|
|
|
|
|
|
macos: add support for MacOS 11.0
|
|
|
|
|
|
|
|
|
|
This commit introduces the new set of changes / files required to
|
|
|
|
|
successfully build the OpenAFS source code on OS X 11.0 "Big Sur".
|
|
|
|
|
|
|
|
|
|
While here, refactor the code that checks if the "-Xlinker -kext"
|
|
|
|
|
system-specific linker option is needed.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14429
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit acc955bc17e1a1e10f634e7017c1323954f07b31)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie5b791c7444612c617eeb3b16e1165510fe9f251
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14597
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c7a8bf889ddacf1935282da14e06abf0e63999f7
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Fri Dec 20 22:09:35 2019 -0600
|
|
|
|
|
|
|
|
|
|
rx: Indent ifdef maze in rx_kcommon.c
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13997
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 08c769967ca12f1ac99c736789f1925763d8a115)
|
|
|
|
|
|
|
|
|
|
Change-Id: I75d5ec5c9f75f79817adec3f259e546e79fc3629
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14599
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit efac54c67d527fb8a4fa118f53fc55ad75c7d2ff
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Fri Dec 20 21:51:18 2019 -0600
|
|
|
|
|
|
|
|
|
|
afs: Indent ifdef maze in afs_server.c
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13996
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 2a8db42664cc450c2db097fe19472fe7876203df)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iff5bb059ea7005c4f174401b9daa45f1ae6d092d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14604
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7550806b15b3347c70520b23d5f7f59665e8d4a0
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Thu Mar 18 08:28:22 2021 -0600
|
|
|
|
|
|
|
|
|
|
bozo: Fix the test for bosserver '-cores none'
|
|
|
|
|
|
|
|
|
|
The check for the '-cores none' parameter is incorrect resulting in the
|
|
|
|
|
parameter to be taken as a directory path.
|
|
|
|
|
|
|
|
|
|
Update the string comparison.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14559
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 000fe6b7e6e7bf140c7cca7becc8fb7e8006fec7)
|
|
|
|
|
|
|
|
|
|
Change-Id: I45ac645bb7cdd6f3cd1dfd81d6ccdc9cda4547a8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14589
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 3c19cf40f4016931accc97c555bc5b623b838e96
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Dec 7 14:42:54 2020 -0500
|
|
|
|
|
|
|
|
|
|
vol: always build vol-bless utility
|
|
|
|
|
|
|
|
|
|
In order to avoid future bit-rot, always build vol-bless. Also add it
|
|
|
|
|
to the clean rule. However, continue to leave it undistributed and
|
|
|
|
|
uninstalled by default.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14464
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 1efa4e49f2dabe2f3a1ef235e21a96ae9d5ff6bf)
|
|
|
|
|
|
|
|
|
|
Change-Id: I62b2f192e2bcb24221c94468e2e72aaa567568d4
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14601
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 91a298cc1fb93ffa8766f291b5a1c7ab29ad6f84
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Dec 7 14:40:33 2020 -0500
|
|
|
|
|
|
|
|
|
|
vol: add vol-bless to .gitignore
|
|
|
|
|
|
|
|
|
|
No functional change is incurred by this commit.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14463
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 986ee6a0a70d70f366baeb43670eb367f0525b97)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1819537c8ac26101a81100871f85a6de78408cea
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14602
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit b6c9bf43988d5945e502be1c9455adc791539a72
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Dec 7 13:13:28 2020 -0500
|
|
|
|
|
|
|
|
|
|
vol: make vol-bless buildable again
|
|
|
|
|
|
|
|
|
|
The vol-bless utility is not built by default and so is subject to
|
|
|
|
|
bit-rot. Thus commit 170dbb3ce301329ff127bb23fb588db31439ae8d 'rx: Use
|
|
|
|
|
opr queues' overlooked vol-bless.c when adding includes for users of
|
|
|
|
|
struct rx_queue.
|
|
|
|
|
|
|
|
|
|
Add the required #include <rx/rx_queue.h> so vol-bless builds again.
|
|
|
|
|
|
|
|
|
|
Note to maintainers: this change is only required for 1.8.x and later;
|
|
|
|
|
vol-bless builds fine in 1.6.x and earlier releases.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14462
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit e1f20287a4d0cd80c6bfe7309b907fe5a4ac1464)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1f9acb176758bd34b7f63d5ebde54e9af191ad77
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14603
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 67385e65cbdb41a8b2895a7fe1d637c7b899ef5c
|
|
|
|
|
Author: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Date: Thu Oct 29 21:29:10 2020 -0400
|
|
|
|
|
|
|
|
|
|
FBSD: Add support for FreeBSD 12.2
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14474
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 96ebee44c322934b9eda1bab5907ee87b03d571f)
|
|
|
|
|
|
|
|
|
|
Change-Id: I95dedbee8b67a2bb05a8bb3614045fa3a49f9a11
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14590
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c58313fc4f1c04e1d3f94f53b966516b2560e4c2
|
|
|
|
|
Author: Tim Creech <tcreech@umd.edu>
|
|
|
|
|
Date: Mon Dec 9 21:13:58 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Add support for FreeBSD 12.1
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13982
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 71ce9fff8e682a77e17490a54e091656cbf96925)
|
|
|
|
|
|
|
|
|
|
Change-Id: I4214101d314cac6d677a08f760ccf990a4441306
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14537
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 4b14b60afbf28f5fcf325ee378a26657f7780254
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Tue Aug 18 13:56:26 2020 +0000
|
|
|
|
|
|
|
|
|
|
bos: suppress unnecessary warn if -noauth
|
|
|
|
|
|
|
|
|
|
Commit d008089a7 (Add interface to select client security objects)
|
|
|
|
|
consolidated the code that selects the client security objects into a
|
|
|
|
|
set of new interfaces. Before this commit, the "bos: running
|
|
|
|
|
unauthenticated" message, which warns the user when an unauthenticated
|
|
|
|
|
connection is established, used to be suppressed if the -noauth flag was
|
|
|
|
|
specified.
|
|
|
|
|
|
|
|
|
|
Similarly to commit b3c16324e (ubik: Make ugen_ClientInit honor
|
|
|
|
|
noAuthFlag), recover the original behavior avoiding warn messages about
|
|
|
|
|
unauthenticated connections if the -noauth flag is provided.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14306
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit d5f0e16ac44475be55a7cc3e2895fc4a3a923ece)
|
|
|
|
|
|
|
|
|
|
Change-Id: Id78494c2a189f2e99e25111200cabde32a4add2b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14546
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c747b15dd2877e6d17e3e6b940ae78c1e1ccd3ea
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Mar 5 16:31:03 2021 -0700
|
|
|
|
|
|
|
|
|
|
Linux 5.12: Add user_namespace param to inode ops
|
|
|
|
|
|
|
|
|
|
The Linux commits:
|
|
|
|
|
"fs: make helpers idmap mount aware" (549c72977) and
|
|
|
|
|
"attr: handle idmapped mounts" (2f221d6f7) that were merged into
|
|
|
|
|
Linux-5.12-rc1 cause a build failure when creating the kernel module.
|
|
|
|
|
|
|
|
|
|
Several functions within the inode_operations structure had their
|
|
|
|
|
signature updated to include a user_namespace parameter. This allows
|
|
|
|
|
a filesystem to support idmapped mounts.
|
|
|
|
|
|
|
|
|
|
OpenAFS only implements some of the changed functions.
|
|
|
|
|
|
|
|
|
|
LINUX/vnodeops function inode_operation
|
|
|
|
|
===================== ===============
|
|
|
|
|
afs_notify_change setattr
|
|
|
|
|
afs_linux_getattr getattr
|
|
|
|
|
afs_linux_create create
|
|
|
|
|
afs_linux_symlink symlink
|
|
|
|
|
afs_linux_mkdir mkdir
|
|
|
|
|
afs_linux_rename rename
|
|
|
|
|
afs_linux_permission permission
|
|
|
|
|
|
|
|
|
|
Update the autoconf tests to determine if the Linux kernel requires
|
|
|
|
|
the user_namespace structure for inode_operations functions. If so,
|
|
|
|
|
define a generic "IOP_TAKES_USER_NAMESPACE" macro.
|
|
|
|
|
|
|
|
|
|
Update the above vnodeops functions to accept a 'struct user_namespace'
|
|
|
|
|
parameter.
|
|
|
|
|
|
|
|
|
|
When using the 'setattr_prepare' function a user namespace must be
|
|
|
|
|
now provided. In order to provide compatibility as a non-idmapped mount
|
|
|
|
|
filesystem the initial user namespace can be used. With OpenAFS, the
|
|
|
|
|
initial user namespace obtained at kernel module load time is stored in
|
|
|
|
|
a global variable 'afs_ns'.
|
|
|
|
|
|
|
|
|
|
Update the call to setattr_prepare to pass the user namespace pointed
|
|
|
|
|
to by the 'afs_ns' global variable.
|
|
|
|
|
|
|
|
|
|
Update calls to setattr to pass the user namespace pointed to by
|
|
|
|
|
the 'afs_ns' global variable.
|
|
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
|
|
The changes introduced with Linux 5.12 allow a filesystem to support
|
|
|
|
|
idmapped mounts if desired. This commit does not implement support for
|
|
|
|
|
idmapped mounts, but will continue to use the same initial user
|
|
|
|
|
namespace as prior to Linux 5.12.
|
|
|
|
|
|
|
|
|
|
With Linux 5.12 the following autoconf checks fail:
|
|
|
|
|
|
|
|
|
|
HAVE_LINUX_INODE_OPERATIONS_RENAME_TAKES_FLAGS
|
|
|
|
|
HAVE_LINUX_SETATTR_PREPARE
|
|
|
|
|
IOP_CREATE_TAKES_BOOL
|
|
|
|
|
IOP_GETATTR_TAKES_PATH_STRUCT
|
|
|
|
|
IOP_MKDIR_TAKES_UMODE_T
|
|
|
|
|
|
|
|
|
|
The new macro 'IOP_TAKES_USER_NAMESPACE' covers the cases where these
|
|
|
|
|
macros where used.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14549
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 1bd68506be3243c5670aaf53798b2e4e715d4c8b)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8cd54042da4e0295f3cf8417c84138bb0458f881
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14565
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5a5d358b02b88d6d2c7a27a75149e35b1de7db38
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Mon Mar 8 09:22:04 2021 -0700
|
|
|
|
|
|
|
|
|
|
Linux: Create wrapper for setattr_prepare
|
|
|
|
|
|
|
|
|
|
Move call to setattr_prepare/inode_change_ok into an osi_compat.h
|
|
|
|
|
wrapper called 'afs_setattr_prepare'. This moves some of the #if logic
|
|
|
|
|
out of the mainline code.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14548
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 12ae2beeeb172cebdfa24d5ea149f73fd85541f8)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1c7806893daf2404a8b3ac1b5c88ca04e6409226
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14564
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit cdec210405afb47ee338bfde9280710b64d7abc6
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Jul 23 13:50:31 2019 -0500
|
|
|
|
|
|
|
|
|
|
LINUX: Introduce afs_d_path
|
|
|
|
|
|
|
|
|
|
Move our preprocessor logic around d_path into an osi_compat.h
|
|
|
|
|
wrapper, called afs_d_path. This just makes it a little easier to use
|
|
|
|
|
d_path, and moves a tiny bit of #ifdef cruft away from real code.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13721
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 4c4fb6e36634e5663c8be25acd4a1ac872e4738c)
|
|
|
|
|
|
|
|
|
|
Change-Id: I08763c71006e4ac6f2bf88d8ac71941fc44e6ab8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14563
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 8cdd8ad84006b17bfe243b004f0c4191c7df3af5
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Apr 12 22:28:29 2020 -0500
|
|
|
|
|
|
|
|
|
|
tests: Skip SIGBUS test on FreeBSD
|
|
|
|
|
|
|
|
|
|
Currently, 'softsig-helper -buserror' causes a SIGBUS on most
|
|
|
|
|
platforms, but can result in SIGSEGV on FreeBSD by default (at least
|
|
|
|
|
on 11.3-RELEASE). Skip the test on FreeBSD, until we can provide a
|
|
|
|
|
more reliable way to generate SIGBUS.
|
|
|
|
|
|
|
|
|
|
Note that when the sysctl machdep.prot_fault_translation is set to 1,
|
|
|
|
|
'softsig-helper -buserror' generates a SIGBUS instead of SIGSEGV,
|
|
|
|
|
suggesting that generating a SIGBUS here is the old 'compat' behavior.
|
|
|
|
|
When machdep.prot_fault_translation is 0 (the default), the code path
|
|
|
|
|
in the FreeBSD kernel that dictates whether to send a SIGBUS or
|
|
|
|
|
SIGSEGV in this situation depends on some autodetection heuristics,
|
|
|
|
|
and so may produce different results depending on FreeBSD releases or
|
|
|
|
|
even compiler settings (due to detection of ABI based on some ELF
|
|
|
|
|
notes in the relevant binary).
|
|
|
|
|
|
|
|
|
|
For some details on this sysctl, see
|
|
|
|
|
<https://www.freebsd.org/news/status/report-2019-07-2019-09.html#Signals-delivered-on-unhandled-Page-Faults>
|
|
|
|
|
or the FreeBSD source code. In 11.3-RELEASE, the decision to issue a
|
|
|
|
|
SIGBUS or SIGSEGV can be found around sys/amd64/amd64/trap.c:355.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14145
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit df5480057c2994914e22bd14b169dbcd8857485a)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ifd2c17c52a7a9be7a8a09776cf15500fdc9ca62d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14536
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5c1aa944d73e20272fa886e46ba0d4e69c54e8db
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Sep 8 16:10:40 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Remove MA_* abstractions
|
|
|
|
|
|
|
|
|
|
In FBSD/osi_vnops.c, we have a few abstractions (e.g. MA_VOP_UNLOCK)
|
|
|
|
|
that used to expand to different things for older FreeBSD versions.
|
|
|
|
|
Currently, they always expand to the same thing, so just remove the
|
|
|
|
|
abstractions.
|
|
|
|
|
|
|
|
|
|
While we are changing these calls, also change one instance of
|
|
|
|
|
MA_VOP_LOCK to vn_lock (instead of VOP_LOCK), since we're not usually
|
|
|
|
|
supposed to call VOP_LOCK directly, according to the VOP_LOCK(9)
|
|
|
|
|
manpage. The MA_VOP_LOCK call was added in commit bd707fb7
|
|
|
|
|
(freebsd-almost-working-client-20020216), seemingly by mistake.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13843
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 7260c7164b9a2199c7b5f83279fa18af16e7d387)
|
|
|
|
|
|
|
|
|
|
Change-Id: I831e798546da97eeba923965c24dd79be14a9b89
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14535
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit b03f8b684077c9224fe059abf8c316739096e0cd
|
|
|
|
|
Author: Tim Creech <tcreech@umd.edu>
|
|
|
|
|
Date: Fri Dec 13 22:24:57 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Build vnode_if.h before libafs objs
|
|
|
|
|
|
|
|
|
|
Currently, if we are building with -j2 or higher, we can easily fail
|
|
|
|
|
to build some libafs objects because vnode_if.h does not exist yet.
|
|
|
|
|
vnode_if.h is generated by the FreeBSD build, but none of our objects
|
|
|
|
|
depend on it, so during parallel builds it may not be available by the
|
|
|
|
|
time we build, for example, src/external/heimdal/hcrypto/sha256.c.
|
|
|
|
|
|
|
|
|
|
This results in build errors that can look like this:
|
|
|
|
|
|
|
|
|
|
--- sha256-kernel.o ---
|
|
|
|
|
cc -I. -I.. -I../nfs [...]/src/external/heimdal/hcrypto/sha256.c
|
|
|
|
|
In file included from [...]/src/external/heimdal/hcrypto/sha256.c:34:
|
|
|
|
|
In file included from [...]/src/crypto/hcrypto/kernel/config.h:30:
|
|
|
|
|
In file included from [...]/src/afs/sysincludes.h:354:
|
|
|
|
|
/usr/src/sys/sys/vnode.h:588:10: fatal error: 'vnode_if.h' file not found
|
|
|
|
|
#include "vnode_if.h"
|
|
|
|
|
^~~~~~~~~~~~
|
|
|
|
|
1 error generated.
|
|
|
|
|
*** [sha256-kernel.o] Error code 1
|
|
|
|
|
|
|
|
|
|
make[4]: stopped in [...]/src/libafs/MODLOAD
|
|
|
|
|
1 error
|
|
|
|
|
|
|
|
|
|
To avoid this, make all of our libafs objects depends on vnode_if.h.
|
|
|
|
|
|
|
|
|
|
[adeason@dson.org: Expanded commit message.]
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13983
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 0ee53d2fe9341e60f420662749d5ae8c6d4b5f24)
|
|
|
|
|
|
|
|
|
|
Change-Id: I85696c23aeeabf8ebc38c8a9ea320fdcf8141ad9
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14534
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 8825b5346f67f2193e770d524d4524b2ff16d84a
|
|
|
|
|
Author: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Date: Sun Mar 5 18:15:58 2017 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Remove LOCKPARENT/ISLASTCN lookup logic
|
|
|
|
|
|
|
|
|
|
Currently, our afs_vop_lookup on FBSD tries to only lock 'dvp' for
|
|
|
|
|
ISDOTDOT requests when LOCKPARENT and ISLASTCN are set. There are a
|
|
|
|
|
couple of problems with this:
|
|
|
|
|
|
|
|
|
|
- The conditional locking logic involving LOCKPARENT/ISLASTCN is only
|
|
|
|
|
relevant in very old FreeBSD releases (per-fs checking of these
|
|
|
|
|
flags for parent locking went away around the FreeBSD 6 era).
|
|
|
|
|
|
|
|
|
|
- Our current logic here is wrong anyway, since we try to lock 'dvp'
|
|
|
|
|
twice when those flags are set. This was mostly introduced by commit
|
|
|
|
|
2f6be821 (FBSD: band-aid vnode locking in lookup), which added a
|
|
|
|
|
lock/unlock pair for 'dvp' around the lock for 'vp', even though
|
|
|
|
|
'dvp' was unlocked several lines earlier.
|
|
|
|
|
|
|
|
|
|
This means that if we hit the relevant code path, we will deadlock,
|
|
|
|
|
since we try to lock 'dvp' twice. To avoid this, just remove the
|
|
|
|
|
relevant logic for LOCKPARENT/ISLASTCN, since it is only relevant for
|
|
|
|
|
old FreeBSD releases that are not supported by us or FreeBSD.
|
|
|
|
|
|
|
|
|
|
Add and rearrange some comments around here to try to more explicitly
|
|
|
|
|
explain the relevant locking rules.
|
|
|
|
|
|
|
|
|
|
[adeason@dson.org: Commit message rewrite, adding comments, removing
|
|
|
|
|
old FreeBSD code.]
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12578
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 17a845c8d44f453b09b21afd59182e616234e872)
|
|
|
|
|
|
|
|
|
|
Change-Id: I105dfe397bb723b0939bb626103d857007e1a7bf
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14533
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 27268300531101748069741f9deaae5e160616a8
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Apr 12 22:40:14 2020 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Remove unused 'wantparent' logic
|
|
|
|
|
|
|
|
|
|
In afs_vop_lookup, the 'wantparent' variable doesn't actually change
|
|
|
|
|
any logic in the function. In the if() clause that it's used, the
|
|
|
|
|
value of 'wantparent' is only ever used if cnp->cn_nameiop is RENAME
|
|
|
|
|
and ISLASTCN is set. But if both of those are true, then the second
|
|
|
|
|
half of the if() conditional will always be true, so the value of
|
|
|
|
|
'wantparent' doesn't matter.
|
|
|
|
|
|
|
|
|
|
So to remove this confusing unused logic, remove the 'wantparent'
|
|
|
|
|
local var, and all its associated logic.
|
|
|
|
|
|
|
|
|
|
Issue spotted by kaduk@mit.edu.
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia63b88d67d21cc2b81a0c25aa31ea60ab202b0a7
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14143
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 7df5c003ed6eb17a693d67ffdfc0556f0c569cc1)
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14532
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit fa25fb8f53f8a31556b6aa189becef5850cc068a
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Aug 18 19:59:50 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Add support for FreeBSD 11.3
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13792
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 7116de596a8f1d0be3da6eebe92d486f57aefd02)
|
|
|
|
|
|
|
|
|
|
Change-Id: I9bbf3a72041dda4220b63963b6fc9bd8bd2342e8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14531
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ed6170582ce6fc9fc501349aa98ccc726c04501b
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Dec 1 15:39:04 2019 -0600
|
|
|
|
|
|
|
|
|
|
FBSD: Declare vnops/vfsops static
|
|
|
|
|
|
|
|
|
|
Declare our vnode and vfs operations as static functions, since they
|
|
|
|
|
are not referenced outside of osi_vfsops.c/osi_vnodeops.c. Shuffle
|
|
|
|
|
around the definitions in osi_vnodeops.c so that we don't need forward
|
|
|
|
|
declarations for the functions.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13973
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 37c5db3ce767868803135c916b282ff2e541d052)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8817e0e2a02bc4211dc84c0d9f8b418de756120e
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14530
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 60f3f689c4a0bd152e1c5a2fe660a3c59933491e
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Aug 25 23:21:23 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Remove pre-8 code
|
|
|
|
|
|
|
|
|
|
Commit 123f0fb1 (config: remove support for old FreeBSD releases)
|
|
|
|
|
removed our support for FreeBSD releases before FreeBSD 8. However,
|
|
|
|
|
various areas of code still reference the symbols from those old
|
|
|
|
|
versions (e.g. AFS_FBSD53_ENV). Remove our ifdef logic for these old
|
|
|
|
|
symbols, according to the following rules:
|
|
|
|
|
|
|
|
|
|
- In FBSD-specific dirs, assume AFS_FBSD80_ENV is always true (as well
|
|
|
|
|
as the symbols for earlier versions)
|
|
|
|
|
|
|
|
|
|
- In non-FBSD dirs, convert AFS_FBSD80_ENV to AFS_FBSD_ENV (and do the
|
|
|
|
|
same for all earlier versions)
|
|
|
|
|
|
|
|
|
|
This allows us to remove code that was specific to older FreeBSD
|
|
|
|
|
versions, and simplify some ifdef conditionals.
|
|
|
|
|
|
|
|
|
|
Also remove the definitions for AFS_FBSD80_ENV and earlier versions in
|
|
|
|
|
our existing param.h files.
|
|
|
|
|
|
|
|
|
|
With this commit, the functions afs_start, afs_vop_lock,
|
|
|
|
|
afs_vop_unlock, and afs_vop_islocked are now always unreferenced, so
|
|
|
|
|
remove them.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13812
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 847b63af92dd527de31675a0c3c82c9a57e6c4b3)
|
|
|
|
|
|
|
|
|
|
Change-Id: Icaaf660a95084a358d1ddf6fbc63944eff90492f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14529
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit dcda95f388426e6bf6ace5f86905f0cf695e8413
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jun 23 17:48:53 2019 -0500
|
|
|
|
|
|
|
|
|
|
libafs: Create debug KMODDIR for FBSD debug inst
|
|
|
|
|
|
|
|
|
|
Commit 99418024 (libafs: Create $(DESTDIR)$(KMODDIR) on FBSD inst)
|
|
|
|
|
made it so we create the kmod installation dir before copying our
|
|
|
|
|
module into it. However, if we build a 'debug' variant of our module,
|
|
|
|
|
the FreeBSD build process also installs debug symbols in a different
|
|
|
|
|
directory, ${DESTDIR}${KERN_DEBUGDIR}${KMODDIR}, which may not exist.
|
|
|
|
|
So do the same thing for that dir too, if --enable-debug-kernel is
|
|
|
|
|
turned on, so the build still works.
|
|
|
|
|
|
|
|
|
|
To do this, introduce the LIBAFS_REQ_DIRS var, to make it easier to
|
|
|
|
|
keep track of which dirs we may need to create.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13690
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
(cherry picked from commit 3bc03e7a5f8ef521e71a30cb8e66e07e2d1b4605)
|
|
|
|
|
|
|
|
|
|
Change-Id: Idee5614e92b99bd1140a3cef971537fb68eec151
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14528
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 44d7a30657d8b507e5d382c68b8411b8437c2af2
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jul 14 17:31:30 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Use ucontext for FreeBSD 10+ on amd64
|
|
|
|
|
|
|
|
|
|
Currently, running any LWP program on recent FreeBSD on amd64 causes
|
|
|
|
|
(or can cause) a SIGBUS very quickly. This is possibly because our
|
|
|
|
|
stack management code in LWP only ensures our stacks are 4 or 8-byte
|
|
|
|
|
aligned in most cases (except DARWIN, which gets 16-byte-aligned
|
|
|
|
|
stacks), according to the value of STACK_ALIGN. The amd64 ABI mandates
|
|
|
|
|
that stacks be 16-byte-aligned, and some function calls assume that
|
|
|
|
|
this is followed, causing a SIGBUS when it is not. FreeBSD on amd64
|
|
|
|
|
currently uses process.amd64.s for its savecontext() implementation,
|
|
|
|
|
which does not do any checking or fixup of the stack alignment.
|
|
|
|
|
|
|
|
|
|
This behavior has been observed on amd64 with FreeBSD 11 specifically,
|
|
|
|
|
but it probably happens on any FreeBSD release when using clang.
|
|
|
|
|
FreeBSD switched to clang as the default compiler with FreeBSD 10, so
|
|
|
|
|
this probably occurs with FreeBSD 10 and newer.
|
|
|
|
|
|
|
|
|
|
We could perhaps try to fix this by changing our stack management
|
|
|
|
|
code, but we can also avoid most of this nonsense by just using
|
|
|
|
|
ucontext instead of our custom assembly code. So, do that, by setting
|
|
|
|
|
USE_UCONTEXT for FreeBSD 10+. Also enable the same 'stackvar'-based
|
|
|
|
|
workaround in savecontext() as Linux uses, since otherwise 'topstack'
|
|
|
|
|
appears to always be NULL, and triggers our stack overflow checks.
|
|
|
|
|
|
|
|
|
|
Note that while LWP use is deprecated, as of this commit many small
|
|
|
|
|
utilities (like 'fs') are still linked to LWP, and so are unusable
|
|
|
|
|
without a fix like this.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13691
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 0a39efee224e8d4431ae79281ca353a7ba6fdce4)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8cb4c20eb32c12310f41e38a3f40b132c919bace
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14527
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 56ec046f0137b217a55ff40cc66363c36b7e5c21
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jul 28 15:03:43 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Set KERNBUILDDIR for --with-bsd-kernel-build
|
|
|
|
|
|
|
|
|
|
Currently, specifying --with-bsd-kernel-build during configure causes
|
|
|
|
|
us to set BSD_KERNEL_BUILD, which sets KBLD in MakefileProto.FBSD.in,
|
|
|
|
|
but nothing ever uses KBLD. This means that when we use
|
|
|
|
|
--with-bsd-kernel-build, we don't actually build against the
|
|
|
|
|
configuration for that kernel, which can result in a libafs.ko that
|
|
|
|
|
cannot be loaded or causes other errors. Specifically, if trying to
|
|
|
|
|
build for a VIMAGE kernel, the kernel complains when trying to load
|
|
|
|
|
libafs:
|
|
|
|
|
|
|
|
|
|
[...] kernel: link_elf_obj: symbol in_ifaddrhead undefined
|
|
|
|
|
[...] kernel: linker_load_file: Unsupported file type
|
|
|
|
|
|
|
|
|
|
The FreeBSD module build system looks for KERNBUILDDIR for an
|
|
|
|
|
alternative build, which it uses to pull in opt_global.h and other
|
|
|
|
|
required pieces from the build tree. So just specify KERNBUILDDIR if
|
|
|
|
|
we have one.
|
|
|
|
|
|
|
|
|
|
At the same time, avoid setting our default value for BSD_KERNEL_BUILD
|
|
|
|
|
for FBSD when the calculated dir doesn't exist. At least for the
|
|
|
|
|
default GENERIC kernel on FreeBSD 11.2-RELEASE, there may not be a
|
|
|
|
|
build dir on the running machine, and so setting BSD_KERNEL_BUILD to
|
|
|
|
|
the calculated value causes the build to fail when it doesn't exist.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13746
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 8f9c92a888df7b2fd61a3e84aaf1d2c96a8b10dd)
|
|
|
|
|
|
|
|
|
|
Change-Id: I7afc54121ac3a9d81a7a8005d53eb2ed5df489c1
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14526
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit be3b02e7dee78f492090e89746167116e4f221fd
|
|
|
|
|
Author: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Date: Sun Mar 5 18:18:01 2017 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Call CURVNET_SET/CURVNET_RESTORE for VIMAGE
|
|
|
|
|
|
|
|
|
|
In commit 9703b023 (FBSD: VIMAGE support), we changed a couple of our
|
|
|
|
|
variable references to their V_* equivalents, to accommodate kernels
|
|
|
|
|
with VIMAGE turned on. This allows us to build, but causes us to crash
|
|
|
|
|
whenever we hit that code when VIMAGE is enabled, because the relevant
|
|
|
|
|
macros reference 'curvnet', which is NULL outside of networking code.
|
|
|
|
|
|
|
|
|
|
What we're supposed to do is to set 'curvnet' before entering
|
|
|
|
|
networking code by calling 'CURVNET_SET(xxx)', and reset it afterwards
|
|
|
|
|
by calling 'CURVNET_RESTORE()'. We must make exactly one _RESTORE call
|
|
|
|
|
for each _SET, and they are supposed to be run at the same level of
|
|
|
|
|
scope.
|
|
|
|
|
|
|
|
|
|
So to avoid the crashes, make the relevant CURVNET_* calls whenever we
|
|
|
|
|
look at networking info. We currently only do this in a few places:
|
|
|
|
|
|
|
|
|
|
- In afs_SetServerPrefs, to try to detect if a given server address is
|
|
|
|
|
in the same network as one our local interfaces (V_in_ifaddrhead)
|
|
|
|
|
|
|
|
|
|
- In rxi_GetIFInfo, for some MTU-related info (V_ifnet)
|
|
|
|
|
|
|
|
|
|
- In rxi_FindIfnet, for some MTU-related info (ifa_ifwithnet)
|
|
|
|
|
|
|
|
|
|
As for what vnet we actually set 'curvnet' to, we could set it to the
|
|
|
|
|
vnet of the current thread (TD_TO_VNET(curthread)), or we could set it
|
|
|
|
|
to the vnet of an associated network object (a socket, an interface,
|
|
|
|
|
etc). Since all of our network-related code goes through Rx, in this
|
|
|
|
|
commit we set curvnet to the vnet of the Rx socket
|
|
|
|
|
(rx_socket->so_vnet).
|
|
|
|
|
|
|
|
|
|
Note that VIMAGE is optional in 11-RELEASE, but is turned on by
|
|
|
|
|
default in 12.0-RELEASE. For more information, see:
|
|
|
|
|
https://wiki.freebsd.org/VIMAGE/porting-to-vimage
|
|
|
|
|
|
|
|
|
|
[adeason@dson.org: Reworded commit message; moved some code around.]
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12580
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 1effc3517fdb4b4653d47c59bf67076567209324)
|
|
|
|
|
|
|
|
|
|
Change-Id: I5fd8b2bf204790b1da6427fe72b8743a7aaa4f13
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14525
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 642f9776c28933ac2769ef9ea67d316dd1c6cff5
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jul 14 22:53:39 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Remove unnecessary explicit osi_fbsd_alloc
|
|
|
|
|
|
|
|
|
|
AFS_KALLOC is already defined to be osi_fbsd_alloc on FBSD, so this
|
|
|
|
|
extra #ifdef here is completely unnecessary. Remove it.
|
|
|
|
|
|
|
|
|
|
Do the same for AFS_KFREE/osi_fbsd_free.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13708
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit ad1fe5e1a825a3b3f88c04fd84613e4105206443)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ib62b52d040ffd4170a0bb556684244ee1f372401
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14524
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7a5f648e0ac84ecb6321752be5334e16b1b5051e
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sat Jul 20 23:09:27 2019 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Give 0 'rootrefs' to vflush on unmount
|
|
|
|
|
|
|
|
|
|
Currently, in afs_unmount, we give vflush a 'rootrefs' arg of 1,
|
|
|
|
|
indicating that we hold 1 reference on the root vnode. But ever since
|
|
|
|
|
commit 6eb1088a (freebsd: properly track vcache references), we drop
|
|
|
|
|
the ref for the root vnode at the beginning of this function.
|
|
|
|
|
|
|
|
|
|
What happens currently in afs_unmount for a normal successful umount
|
|
|
|
|
is something like this (at least, on FreeBSD 11.2-RELEASE):
|
|
|
|
|
|
|
|
|
|
- We afs_PutVCache the afs_globalVp vcache, reducing its v_usecount
|
|
|
|
|
and v_holdcnt to 0, and afs_globalVp is set to NULL.
|
|
|
|
|
|
|
|
|
|
- vflush calls afs_root() to get the root vnode, which sees that
|
|
|
|
|
afs_globalVp is NULL, and so calls afs_GetVCache for the root fid
|
|
|
|
|
and returns it (and sets afs_globalVp to that vcache), with a
|
|
|
|
|
v_usecount of 1.
|
|
|
|
|
|
|
|
|
|
- vflush tries to vgonel() all of our vnodes, which calls our
|
|
|
|
|
afs_vop_reclaim, which calls afs_FlushVCache(). For the root vnode
|
|
|
|
|
specifically, vflush() sees that v_usecount is nonzero, and so skips
|
|
|
|
|
calling vgonel() at first, but later calls vgone() on it
|
|
|
|
|
specifically because we gave a nonzero 'rootrefs'. The resulting
|
|
|
|
|
afs_FlushVCache() for the root vnode fails, because the root vnode's
|
|
|
|
|
v_usecount is still 1. Since a failure from afs_vop_reclaim would
|
|
|
|
|
cause a panic, we just log a warning and try to continue on anyway.
|
|
|
|
|
|
|
|
|
|
- vflush() calls vrele() on the root vnode, right before returning.
|
|
|
|
|
|
|
|
|
|
All of this allows the unmount to proceed, but this means that most of
|
|
|
|
|
afs_FlushVCache() doesn't actually run for the root vcache, and it
|
|
|
|
|
means we always log a warning like this on unmount:
|
|
|
|
|
|
|
|
|
|
afs_vop_reclaim: afs_FlushVCache failed code 16 [...]
|
|
|
|
|
|
|
|
|
|
In addition, this means that setting afs_globalVp at the beginning of
|
|
|
|
|
afs_unmount() is largely pointless, since it gets set to a vcache
|
|
|
|
|
again near the beginning of vflush().
|
|
|
|
|
|
|
|
|
|
To avoid all of this, stop lying to vflush about how many references
|
|
|
|
|
to the root vnode we hold, and just say that we hold 0 references.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13709
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit d13b647aa392e1d802be1023930a8e1a07fb11ab)
|
|
|
|
|
|
|
|
|
|
Change-Id: I7ca79ee5c10277d6ef94b5f317aa4ba091642ffd
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14523
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit a4f5adb0cdc8493603f51422501b4a45b9e26c7f
|
|
|
|
|
Author: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Date: Sun Mar 5 18:17:23 2017 -0500
|
|
|
|
|
|
|
|
|
|
FBSD: Handle F_UNLCK in VOP_ADVLOCK
|
|
|
|
|
|
|
|
|
|
When a_fl->type is F_UNLCK, FreeBSD gives our VOP_ADVLOCK an a_op of
|
|
|
|
|
F_UNLCK, instead of F_SETLK like we expect. This causes afs_lockctl to
|
|
|
|
|
return EINVAL, since F_UNLCK isn't a normal fcntl lock op, and so
|
|
|
|
|
userspace requests to unlock fcntl-style locks always fail. This can
|
|
|
|
|
be seen, for example, when trying to use sqlite3 to access a database
|
|
|
|
|
that lives in afs.
|
|
|
|
|
|
|
|
|
|
This F_UNLCK behavior in FreeBSD seems a bit peculiar, but has been
|
|
|
|
|
around effectively forever (since 4.4BSD-Lite). So just work around
|
|
|
|
|
it.
|
|
|
|
|
|
|
|
|
|
[adeason@dson.org: minor style adjustments and commit message/comment
|
|
|
|
|
rewording.]
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12579
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f5acf1b1bfe940faf0a6f4bd11c55d6c90f60242)
|
|
|
|
|
|
|
|
|
|
Change-Id: I52d0c513aeabd54019fc6d7bb6c3b542e95b2dee
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14522
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 908be3fadb642578f1fb331d229910b386e559c9
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jun 23 17:48:53 2019 -0500
|
|
|
|
|
|
|
|
|
|
libafs: Create $(DESTDIR)$(KMODDIR) on FBSD inst
|
|
|
|
|
|
|
|
|
|
We rely on bsd.kmod.mk for our actual rules during 'make install', but
|
|
|
|
|
that tries to install our kernel module into $(DESTDIR)$(KMODDIR),
|
|
|
|
|
without creating it first. If the user tries to 'make install
|
|
|
|
|
DESTDIR=/some/path' and that path doesn't exist, we will fail with
|
|
|
|
|
something like:
|
|
|
|
|
|
|
|
|
|
make DESTDIR=/home/adeason/git/destdir single_instdir_libafs
|
|
|
|
|
/usr/bin/install -c -T release -o root -g wheel -m 555 libafs.ko /home/adeason/git/destdir/boot/modules/
|
|
|
|
|
install: /home/adeason/git/destdir/boot/modules/: No such file or directory
|
|
|
|
|
*** Error code 71
|
|
|
|
|
|
|
|
|
|
To avoid this, add a dependency on the 'install' target which causes
|
|
|
|
|
our target dir to be created.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13653
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 99418024276c94da5982d7dad6126a8d53924d7e)
|
|
|
|
|
|
|
|
|
|
Change-Id: I439b7b9514b3ab060c887003e0af19557fd2c812
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14521
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 8d0651efeb11b248a2d1b9a00b97c2de9724c3d1
|
|
|
|
|
Author: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Date: Fri Mar 22 12:46:17 2019 +0100
|
|
|
|
|
|
|
|
|
|
Add param.h files and sysnames for FreeBSD 11.2
|
|
|
|
|
|
|
|
|
|
Thanks to Måns Nilsson for filing the bug. Note that this change
|
|
|
|
|
differs from the proposed patch in the report, in that it
|
|
|
|
|
doesn't define the 10.4 symbols in the 11.2 param.h files.
|
|
|
|
|
|
|
|
|
|
FIXES 134850
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13534
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
(cherry picked from commit 2ee35afa339731f6a60f1e5e99ccaf63baa6c891)
|
|
|
|
|
|
|
|
|
|
Change-Id: I6ba8ba41df12f1a5977f5b530aa1353902de5ebe
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14520
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit b7bddcf63339a15d0e4c5cd0d56b3b44c428ed54
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Tue May 31 16:23:41 2016 -0400
|
|
|
|
|
|
|
|
|
|
SOLARIS: provide cache manager stats via kstat
|
|
|
|
|
|
|
|
|
|
Provide statistical information via the solaris kstat framework. Data
|
|
|
|
|
can be examined with the kstat tool or the kstat userspace api.
|
|
|
|
|
|
|
|
|
|
The kstat module is called openafs. Three kstat names are provided. The
|
|
|
|
|
"param" name provides cache manager parameters as given by the cmdebug
|
|
|
|
|
-cache program.
|
|
|
|
|
|
|
|
|
|
# kstat -m openafs -n param
|
|
|
|
|
|
|
|
|
|
The "cache" name provides cache manager statistics as given by the
|
|
|
|
|
xstats plus some additional cache related stats. The "cache" name also
|
|
|
|
|
provides the libafs kernel module version string and the current local
|
|
|
|
|
cellname.
|
|
|
|
|
|
|
|
|
|
# kstat -m openafs -n cache
|
|
|
|
|
|
|
|
|
|
The "rx" name provides general rx statistics as given by rxdebug -rxstat.
|
|
|
|
|
|
|
|
|
|
# kstat -m openafs -n rx
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13170
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 9338cb5fce2e38b864b8f957b6ea4c56c78d20f8)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic70d766d7a112d673b6c5898da43b3eea11b1065
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14518
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 4d768b764dbba492805d9e4a4af8474e1f7e0d2e
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Aug 9 17:40:09 2018 -0400
|
|
|
|
|
|
|
|
|
|
afs: consolidate duplicated wait-for-cache-drain code
|
|
|
|
|
|
|
|
|
|
Consolidate duplicated logic into a new routine
|
|
|
|
|
afs_MaybeWaitForCacheDrain().
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13278
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 23bd776b0140deb596287869872a41de555ba99a)
|
|
|
|
|
|
|
|
|
|
Change-Id: I31b04da2170dcdf795b8a50ea7ab78d964eeebf5
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14517
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit afa3802d065375f32876e150588cbce3b88c61e3
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Mon Jun 20 15:29:45 2016 -0400
|
|
|
|
|
|
|
|
|
|
afs: more cache truncation stats
|
|
|
|
|
|
|
|
|
|
Add counters for cache too full and waiting to drain occurrences. These
|
|
|
|
|
will be used in later commits to indicate how often the cache truncation
|
|
|
|
|
is required and how often the cache manager is waiting for cache
|
|
|
|
|
truncation to complete.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13168
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 25792e246362a201743533a970f90dbc77d0ed5c)
|
|
|
|
|
|
|
|
|
|
Change-Id: I659cce58951c869ce40ff47b13aa79ab33cd26aa
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14516
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit eee6a0cddcd31dafb1c67b3cf909496c232bca09
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Aug 20 16:09:02 2020 -0400
|
|
|
|
|
|
|
|
|
|
vol: prevent salvage segfault for orphaned vnode with out-of-range parent
|
|
|
|
|
|
|
|
|
|
While salvaging a RW volume, salvager may segfault if it encounters an
|
|
|
|
|
orphaned directory with a parent vnode that does not exist. For
|
|
|
|
|
example, if the large vnode index contains a maximum vnode of 2901, any
|
|
|
|
|
parent vnode encountered that is larger than 2901 will result in an
|
|
|
|
|
out-of-bounds reference to our vnode essence array, leading to a
|
|
|
|
|
segfault or undefined behavior.
|
|
|
|
|
|
|
|
|
|
Modify the logic to check for out-of-bounds parent vnodes, and log them
|
|
|
|
|
rather than segfaulting.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14385
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 750628da77bb71e24ed3061431bbb913ff8d5f72)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ib0cabde440d59394704967dd3ab2eb73f07aec22
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14515
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 9e608659f67da53213f376623526638bc10743e5
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Fri Apr 20 00:57:28 2018 -0400
|
|
|
|
|
|
|
|
|
|
rx: prevent leakage of non-cached rx_connections (pthread)
|
|
|
|
|
|
|
|
|
|
The rxi_connectionCache (AFS_PTHREAD_ENV only) allows applications to
|
|
|
|
|
reuse rx_connection structs. Cached rx_connections are obtained via
|
|
|
|
|
rx_GetCachedConnection and released via rx_ReleaseCachedConnection.
|
|
|
|
|
This feature is used most heavily by libadmin and kauth, but there are
|
|
|
|
|
other users in the tree as well.
|
|
|
|
|
|
|
|
|
|
For instance, ubikclient routines ubik_ClientInit and ubik_ClientDestroy
|
|
|
|
|
call rx_ReleaseCachedConnections (if AFS_PTHREAD_ENV) when disposing of
|
|
|
|
|
their rx_connections. Unfortunately, in many cases these rx_connections
|
|
|
|
|
were obtained via rx_NewConnection, _not_ from the cache via
|
|
|
|
|
rx_GetCachedConnection. In those cases, rx_ReleaseCachedConnection will
|
|
|
|
|
not find the rx_connection in the rxi_connectionCache, and thus it
|
|
|
|
|
returns without doing anything.
|
|
|
|
|
|
|
|
|
|
Therefore, when ubik_ClientInit is passed an existing ubik_client (for
|
|
|
|
|
re-initialization) that contains rx_connections NOT allocated via
|
|
|
|
|
rx_GetCachedConnection, those connections are not destroyed, but will be
|
|
|
|
|
silently leaked. Similarly, ubik_ClientDestroy will leak its
|
|
|
|
|
rx_connections when it frees the ubik_client struct.
|
|
|
|
|
|
|
|
|
|
For example, the fileserver host package calls ubik_ClientInit (via
|
|
|
|
|
hpr_Initialize) and ubik_ClientDestroy (via hpr_End) to manage
|
|
|
|
|
connections to the ptserver. However, these connections were obtained
|
|
|
|
|
via rx_NewConnection, not rx_GetCachedConnection. If the fileserver has
|
|
|
|
|
a failed call to the ptserver that sets prfail=1, the next RPC scheduled
|
|
|
|
|
for that client (in CallPreamble) will refresh the thread's ubik_client
|
|
|
|
|
(viced_uclient_key) by calling hprEnd -> ubik_ClientDestroy ->
|
|
|
|
|
rx_ReleaseCachedConnection. The "released" connections will be leaked.
|
|
|
|
|
|
|
|
|
|
This problem exists in all versions of OpenAFS going back to IBM 1.0.
|
|
|
|
|
Starting with 1.8.x, many components that were formerly LWP-only are now
|
|
|
|
|
pthreaded and thus susceptible to this leak.
|
|
|
|
|
|
|
|
|
|
It seems difficult and error-prone to identify all possible code paths
|
|
|
|
|
that may pass a non-cached rx_connection to rx_ReleaseCachedConnection,
|
|
|
|
|
and convert them to obtain connections via rx_GetCachedConnection.
|
|
|
|
|
|
|
|
|
|
Instead, prevent all existing and future leaks by modifying the connection
|
|
|
|
|
cache to:
|
|
|
|
|
- flag all rx_connections it allocates
|
|
|
|
|
- correctly release any rx_connection it is passed, whether they came
|
|
|
|
|
from the cache or not.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13042
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit bb5397e4c409e3c075ee73d6bf54a3b6eacc0060)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia48e29a53a83211c1011eba24c16f78f7253d84b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14514
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 1e5496856b71dca6cc2fd0e54ea8dea4444e3867
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Apr 30 18:34:28 2018 -0400
|
|
|
|
|
|
|
|
|
|
rx: fix out-of-range value for RX_CONN_NAT_PING
|
|
|
|
|
|
|
|
|
|
Commit 496fb87372555f6acddd4fd88b03c94c85f48511 ("rx: avoid nat ping
|
|
|
|
|
until connection is attached") introduced functionality to defer turning
|
|
|
|
|
on NAT ping for server connections until after reachability had been
|
|
|
|
|
established for the client.
|
|
|
|
|
|
|
|
|
|
Unfortunately, this feature could never work correctly because it
|
|
|
|
|
assigned an out-of-range flag value of 256 (0x100) for the u_char flags
|
|
|
|
|
field. Instead of calling this out as an error, both gcc and Solaris cc
|
|
|
|
|
elide this flag so that it is never set in
|
|
|
|
|
rx_SetConnSecondsUntilNatPing(), Furthermore, the test in
|
|
|
|
|
rxi_ConnClearAttachWait() will always fail; therefore
|
|
|
|
|
rxi_ScheduleNatKeepAliveEvent is never called after attach wait has
|
|
|
|
|
ended.
|
|
|
|
|
|
|
|
|
|
Fortunately, this bug is currently moot - not actually exposed in
|
|
|
|
|
OpenAFS. (It was discovered by inspection). This is because there are
|
|
|
|
|
currently no rx_connection objects in the tree that have both NAT ping
|
|
|
|
|
and checkReach (rx_SetCheckReach) enabled. I also searched git history
|
|
|
|
|
and found no time when this bug could ever have been exposed. This does
|
|
|
|
|
raise the question of why the original commit was needed; but instead of
|
|
|
|
|
reverting the original commit, this commit attempts to fix it.
|
|
|
|
|
|
|
|
|
|
To prevent problems if NAT ping and checkReach are ever both enabled for
|
|
|
|
|
an rx_connection, enlarge the rx_connection flags member so that the
|
|
|
|
|
RX_CONN_NAT_PING value is no longer out of range.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13041
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 55fca11421055d0bcee79f118ea2a035393cc6e5)
|
|
|
|
|
|
|
|
|
|
Change-Id: I9b02ff06d7bf6ba0dfa30ed5ca17ddb89b517987
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14513
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 8453eada315a87ce8fa3cbd54abecb94ed99a947
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Wed Dec 23 12:44:35 2020 -0600
|
|
|
|
|
|
|
|
|
|
afs: Fix XBSD check for VNOVAL va_uid
|
|
|
|
|
|
|
|
|
|
Commit e86eb73e (obsd-vattrs-20040125) introduced an XBSD-specific
|
|
|
|
|
check to detect some unchanged attributes. But the #ifdef for XBSD for
|
|
|
|
|
the va_uid section was added in the middle of an HPUX-specific block
|
|
|
|
|
by mistake.
|
|
|
|
|
|
|
|
|
|
Move this #ifdef one level higher, so it's actually used on BSD
|
|
|
|
|
platforms.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14473
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Tim Creech <tcreech@tcreech.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit cd35aa9e2aec16d622177eeea1e1b3ec8aacdd45)
|
|
|
|
|
|
|
|
|
|
Change-Id: I6a840cffc1e3dfc6df1237261aa3a21bb3b73fbc
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14512
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ee53dd3bc087a05e22fc4111297a51ddb30013f0
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jan 22 07:57:55 2021 -0700
|
|
|
|
|
|
|
|
|
|
Linux 5.11: Test 32bit compat with in_compat_syscall
|
|
|
|
|
|
|
|
|
|
Linux 5.11 removed the TIF_IA32 thread flag with commit:
|
|
|
|
|
x86: Reclaim TIF_IA32 and TIF_X32 (8d71d2bf6efec)
|
|
|
|
|
|
|
|
|
|
The flag TIF_IA32 was being used by openafs to determine if the task was
|
|
|
|
|
handling a syscall request from a 32 bit process. Building against a
|
|
|
|
|
Linux 5.11 kernel results in a build failure as TIF_IA32 is undefined.
|
|
|
|
|
|
|
|
|
|
The function 'in_compat_syscall' was introduced in Linux 4.6 as
|
|
|
|
|
the preferred method to determine if a syscall needed to handle a
|
|
|
|
|
compatible call (e.g. 32bit application).
|
|
|
|
|
|
|
|
|
|
To resolve the build problem, use 'in_compat_syscall' if present (Linux
|
|
|
|
|
4.6 and later) to determine if the syscall needs to handle a
|
|
|
|
|
compatibility mode call.
|
|
|
|
|
|
|
|
|
|
Add autoconf check for in_compat_syscall.
|
|
|
|
|
|
|
|
|
|
Notes about in_compat_syscall:
|
|
|
|
|
|
|
|
|
|
In Linux 4.6 'in_compat_syscall' was defined for all architectures with
|
|
|
|
|
a generic return of 'is_compat_task', but allows architecture specific
|
|
|
|
|
overriding implementations (x86 and sparc).
|
|
|
|
|
|
|
|
|
|
At 4.6 (and later), the function 'is_compat_task' is defined only for
|
|
|
|
|
the following architectures to return:
|
|
|
|
|
|
|
|
|
|
Arch Returns
|
|
|
|
|
======= ==============================
|
|
|
|
|
arm64 test_thread_flag(TIF_32BIT);
|
|
|
|
|
mips test_thread_flag(TIF_32BIT_ADDR)
|
|
|
|
|
parisc test_ti_thread_flag(task_thread_info(t), TIF_32BIT)
|
|
|
|
|
powerpc is_32bit_task()
|
|
|
|
|
s390 test_thread_flag(TIF_31BIT)
|
|
|
|
|
sparc test_thread_flag(TIF_32BIT)
|
|
|
|
|
|
|
|
|
|
If the Linux kernel is not built with compat mode, is_compat_task and
|
|
|
|
|
in_compat_syscall is set to always return 0
|
|
|
|
|
|
|
|
|
|
Linux commit that introduced in_compat_syscall:
|
|
|
|
|
compat: add in_compat_syscall to ask whether we're in a compat syscall
|
|
|
|
|
(5180e3e24fd3e8e7)
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14499
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 78ef922612bef5f5fd6904896e84b9d2ea802404)
|
|
|
|
|
|
|
|
|
|
Change-Id: I4eca62f19ae58fd830915feff5098cec2825f099
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14511
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 4ad1057ab8fd206c9fa8d5e3bdde4f1a8417afdb
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jan 29 11:32:36 2021 -0700
|
|
|
|
|
|
|
|
|
|
Linux: Refactor test for 32bit compat
|
|
|
|
|
|
|
|
|
|
Refactor the preprocessor checks for determining the method to test for
|
|
|
|
|
32bit compatibility (64bit kernel performing work for a 32bit task) into
|
|
|
|
|
a common inline function, 'afs_in_compat_syscall' that is defined in
|
|
|
|
|
LINUX/osi_machdep.h. Update osi_ioctl.c and afs_syscall.c to use
|
|
|
|
|
afs_in_compat_syscall.
|
|
|
|
|
|
|
|
|
|
Add include afs/sysincludes into osi_machdep.h to ensure linux/compat.h
|
|
|
|
|
is pulled for the functions called in afs_in_compat_syscall.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14500
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 32cc6b0796495e596262d84c428172a511f757c4)
|
|
|
|
|
|
|
|
|
|
Change-Id: I746e5777737d49381c4a74627b79d2a61cbd4f8e
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14510
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit aaa7043a154d35838e65bc28473355c452339bcc
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jan 28 16:59:47 2021 -0600
|
|
|
|
|
|
|
|
|
|
LINUX: Fix includes for fatal_signal_pending test
|
|
|
|
|
|
|
|
|
|
Commit 8b6ae289 (LINUX: Avoid lookup ENOENT on fatal signals) added a
|
|
|
|
|
configure test for fatal_signal_pending(). However, this check fails
|
|
|
|
|
incorrectly ever since Linux 4.11, because fatal_signal_pending() was moved
|
|
|
|
|
from linux/sched.h to linux/sched/signal.h in Linux commit 2a1f062a
|
|
|
|
|
(sched/headers: Move signal wakeup [...]). Fix this by including
|
|
|
|
|
linux/sched/signal.h if we have it during the configure test.
|
|
|
|
|
|
|
|
|
|
A false negative on this configure test doesn't break the build, but
|
|
|
|
|
it disables one of our safeguards preventing incorrect negative
|
|
|
|
|
dentries at runtime. The function fatal_signal_pending() hasn't
|
|
|
|
|
changed in quite some time (except for what header it lives in); it
|
|
|
|
|
was introduced in Linux 2.6.25 via Linux commit f776d12d (Add
|
|
|
|
|
fatal_signal_pending). So to try to avoid this mistake again in the
|
|
|
|
|
future, make it so a missing fatal_signal_pending() breaks the build
|
|
|
|
|
if we're on Linux 2.6.25+.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14508
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 0c1465e4f3310daa54f1e799f76237604222666d)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1334c060f8ab5733461ebf7c191dffa7be830021
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14509
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 25d6d88dec67b3ab2a04a1f94baf04291fdb63d6
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Sep 19 12:18:08 2019 -0500
|
|
|
|
|
|
|
|
|
|
rx: Avoid new server calls for big-seq DATA pkts
|
|
|
|
|
|
|
|
|
|
We currently never open our receive window to more than 32 packets. If
|
|
|
|
|
we received a DATA packet for an unrecognized call with a seq of 33 or
|
|
|
|
|
more, the packet is almost certainly from a previously-running call
|
|
|
|
|
that we were restarted during.
|
|
|
|
|
|
|
|
|
|
As described in commit 7b204946 (rx: Avoid lastReceiveTime update for
|
|
|
|
|
invalid ACKs) and commit "rx: Avoid new server calls for non-DATA
|
|
|
|
|
packets", clients can get confused when we respond to calls in these
|
|
|
|
|
situations, so drop the packets instead.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13876
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a36832e2d891caab8644a3b4641c7c94fab4105f)
|
|
|
|
|
|
|
|
|
|
Change-Id: I72f903b81a205bb3e64862da03f9c1c76cc37b75
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14507
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5bbbbe37ac7ffece710f55c471a34e5fc89543a8
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Thu Aug 8 18:18:22 2019 -0400
|
|
|
|
|
|
|
|
|
|
rx: Avoid new server calls for non-DATA packets
|
|
|
|
|
|
|
|
|
|
Normally, a client starts a new Rx call by sending DATA packets for
|
|
|
|
|
that call to a server, and rxi_ReceiveServerCall on the server creates
|
|
|
|
|
a new call struct for that call (since we don't recognize it as an
|
|
|
|
|
existing call).
|
|
|
|
|
|
|
|
|
|
Under certain circumstances, it's possible for a server to see a
|
|
|
|
|
non-DATA packet as the first packet for a call, and currently
|
|
|
|
|
rxi_ReceiveServerCall will create a new server call for any packet
|
|
|
|
|
type. The call cannot actually proceed until the server receives data
|
|
|
|
|
from the client (and goes through the challenge/response auth
|
|
|
|
|
handshake, if needed), but usually this is harmless, since the
|
|
|
|
|
existence of any packets for a particular call channel indicate that
|
|
|
|
|
the client is trying to run such a call. The server will respond to
|
|
|
|
|
the client with ACKs to indicate that it is missing the needed DATA
|
|
|
|
|
packet(s), and the client will send them and the call can proceed.
|
|
|
|
|
|
|
|
|
|
However, if a call is in the middle of running when the server is
|
|
|
|
|
restarted, the client may be sending ACKs for a pre-existing call that
|
|
|
|
|
the server doesn't know about. In this case, the server generates ACKs
|
|
|
|
|
that indicate the server has not received any DATA packets, which may
|
|
|
|
|
appear to violate the protocol, depending on the prior state of the
|
|
|
|
|
call (e.g. the server appears to try to move the window backwards).
|
|
|
|
|
|
|
|
|
|
Clients should be able to detect this and kill the call, but many do
|
|
|
|
|
not. For many OpenAFS releases before commit 7b204946 (rx: Avoid
|
|
|
|
|
lastReceiveTime update for invalid ACKs), the client will get confused
|
|
|
|
|
in this situation and will keep the call open forever, never making
|
|
|
|
|
progress.
|
|
|
|
|
|
|
|
|
|
There isn't any benefit to creating a new server call in these
|
|
|
|
|
situations, so just ignore non-DATA packets for unrecognized calls, to
|
|
|
|
|
avoid stalled calls from such clients. Those clients will not get a
|
|
|
|
|
response from the server, and so the call will eventually die from the
|
|
|
|
|
normal Rx call timeout.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13758
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 3f9a08db86f951df3f6f69f1143f17dd7b43b150)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iaf8ee360f8aa634b5a7728866e41de267389e1f3
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14506
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit d5743ef92a92fe298d68ae4095bf4d4515971f7f
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Aug 27 22:58:23 2019 -0500
|
|
|
|
|
|
|
|
|
|
rx: Avoid lastReceiveTime update for invalid ACKs
|
|
|
|
|
|
|
|
|
|
Currently, we ignore ACK packets in a few cases:
|
|
|
|
|
|
|
|
|
|
- If the ACK appears to move the window backwards (if firstPacket is
|
|
|
|
|
smaller than call->tfirst).
|
|
|
|
|
|
|
|
|
|
- If the ACK appears to have been received out of order (if
|
|
|
|
|
previousPacket is smaller than call->tprev).
|
|
|
|
|
|
|
|
|
|
- If the ACK packet appears truncated.
|
|
|
|
|
|
|
|
|
|
In all of these cases, we ignore the ACK packet completely in our ACK
|
|
|
|
|
processing code (rxi_ReceiveAckPacket), but we still process the
|
|
|
|
|
packet at higher levels (rxi_ReceivePacket). Notably, this means we
|
|
|
|
|
update call->lastReceiveTime after rxi_ReceiveAckPacket returns, even
|
|
|
|
|
for ACK packets we haven't really looked at.
|
|
|
|
|
|
|
|
|
|
Normally this does not cause any noticeable problems, because such
|
|
|
|
|
packets should either never be encountered, or only consist of a small
|
|
|
|
|
number of packets that are mixed in with valid packets.
|
|
|
|
|
|
|
|
|
|
However, if our peer is a server, and it is restarted in the middle of
|
|
|
|
|
a call, our peer may exclusively send us packets that fall into the
|
|
|
|
|
above categories. (This does not happen if our peer is a client,
|
|
|
|
|
because clients just ignore packets for calls they do not recognize.)
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
|
|
Consider a call where a client is sending data to a server, and the
|
|
|
|
|
server restarts after the client has sent a DATA packet with sequence
|
|
|
|
|
number 1000. The server may then start responding to the client with ACKs
|
|
|
|
|
with firstPacket set to 1, since the restarted server has no knowledge
|
|
|
|
|
of the call's state.
|
|
|
|
|
|
|
|
|
|
In this case, a firstPacket of 1 is well below where our window was,
|
|
|
|
|
so all of the ACKs from the server are ignored. But we keep updating
|
|
|
|
|
call->lastReceiveTime for all of these packets, and so the call stays
|
|
|
|
|
alive forever until an idle-dead or hard-dead timeout activates (if
|
|
|
|
|
any are set).
|
|
|
|
|
|
|
|
|
|
As another example, consider the case where a client is sending data
|
|
|
|
|
to a server, and the server receives a full window of packets (say, 16
|
|
|
|
|
packets), has not yet passed any data to the application yet, and the
|
|
|
|
|
server restarts. The restarted server then starts responding to the
|
|
|
|
|
client with ACKs with firstPacket set to 1, and previousPacket set to
|
|
|
|
|
0. We also ignore all of the ACKs from the server in this case,
|
|
|
|
|
because even though firstPacket looks sane, it looks like
|
|
|
|
|
previousPacket has gone backwards. We still update
|
|
|
|
|
call->lastReceiveTime for each ignored ACK we get, keeping the call
|
|
|
|
|
alive.
|
|
|
|
|
|
|
|
|
|
Before commit 4e71409f (Rx: Reject out of order ACK packets) was
|
|
|
|
|
introduced in 1.6.0, neither of these issues could occur. That commit
|
|
|
|
|
introduced the issue specifically if previousPacket goes backwards;
|
|
|
|
|
that is, if the server restarts before firstPacket moves forwards.
|
|
|
|
|
|
|
|
|
|
Commit 8d359e6d (rx: Remove duplicate out of order ACK check) in 1.8.0
|
|
|
|
|
introduced the issue when 'firstPacket' goes backwards, since
|
|
|
|
|
previously the FIRSTACKOFFSET-based check caused us to ignore those
|
|
|
|
|
packets without updating call->lastReceiveTime. That is, if the server
|
|
|
|
|
restarts after firstPacket moves forwards.
|
|
|
|
|
|
|
|
|
|
In this commit, we still ignore packets in the above cases, but we
|
|
|
|
|
also avoid updating lastReceiveTime when we update such packets, to
|
|
|
|
|
make sure that we do not keep a call alive solely from receiving these
|
|
|
|
|
invalid packets.
|
|
|
|
|
|
|
|
|
|
Alternatively, we could change our logic to immediately abort calls
|
|
|
|
|
where firstPacket moves backwards (since this violates the Rx
|
|
|
|
|
protocol), or to not ignore some packets where previousPacket goes
|
|
|
|
|
backwards (since these calls may be recoverable). And we could also
|
|
|
|
|
skip updating lastReceiveTime for invalid packets of other types. But
|
|
|
|
|
for now, this commit just avoids updating lastReceiveTime for invalid
|
|
|
|
|
ACK packets, in order to just try to restore our behavior before
|
|
|
|
|
1.6.0, while still retaining the benefits of ignoring out-of-order
|
|
|
|
|
ACKs. Further changes in this area can potentially be handled
|
|
|
|
|
separately by future commits.
|
|
|
|
|
|
|
|
|
|
Also increment the spuriousPacketsRead counter for packets that we
|
|
|
|
|
ignore in this way (which we used to do for some packets before commit
|
|
|
|
|
8d359e6d), so we are not entirely silent about ignoring them.
|
|
|
|
|
|
|
|
|
|
Written in collaboration with mvitale@sinenomine.net.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13875
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 7b204946010673506e0f74991f59a0865292199c)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8e0299bdeedb005fe49a2d1c4a00a21301fbbb04
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14505
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 49975e8b07c340cb675445015f41474dc39cd535
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Wed Aug 28 17:12:53 2019 -0500
|
|
|
|
|
|
|
|
|
|
rx: Introduce ack_is_valid
|
|
|
|
|
|
|
|
|
|
Take some of our existing logic for ignoring invalid ACK packets and
|
|
|
|
|
split it out into a separate function, ack_is_valid. This just makes
|
|
|
|
|
it easier to add more complex logic in here and write longer comments
|
|
|
|
|
explaining the decisions.
|
|
|
|
|
|
|
|
|
|
Note that the bug mentioned regarding the previousPacket field was
|
|
|
|
|
introduced in IBM AFS 3.5, and was fixed in OpenAFS in commit bbf92017
|
|
|
|
|
(rx: rxi_ReceiveDataPacket do not set rprev on drop), included in
|
|
|
|
|
OpenAFS 1.6.23.
|
|
|
|
|
|
|
|
|
|
This commit incurs no functional change; it is just code
|
|
|
|
|
reorganization.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13874
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f6490629e1239c412002f316804c656c9be61400)
|
|
|
|
|
|
|
|
|
|
Change-Id: I5d0ee9b7fc56659e445705a01d5d90141eb8cfe2
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14504
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c32ad5017d48640ea7f6430f844324b3d7fd90b5
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Nov 2 13:52:25 2020 -0600
|
|
|
|
|
|
|
|
|
|
rx: For AFS_RXERRQ_ENV, retry sendmsg on error
|
|
|
|
|
|
|
|
|
|
When AFS_RXERRQ_ENV is defined, we currently end up doing something
|
|
|
|
|
like this for our sendmsg abstractions:
|
|
|
|
|
|
|
|
|
|
if (sendmsg(...) < 0) {
|
|
|
|
|
while (rxi_HandleSocketError(sock))
|
|
|
|
|
;
|
|
|
|
|
return error;
|
|
|
|
|
}
|
|
|
|
|
return success;
|
|
|
|
|
|
|
|
|
|
This means that when sendmsg() returns an error, we process the socket
|
|
|
|
|
error queue before returning an error.
|
|
|
|
|
|
|
|
|
|
The problem with this is that when we receive an ICMP error on our
|
|
|
|
|
socket, it creates a pending socket error that is returned for any
|
|
|
|
|
operation on the socket. So, if we receive an ICMP error after trying
|
|
|
|
|
to contact any peer, sendmsg() could return an error when trying to
|
|
|
|
|
send for any other peer. Even though there is no issue preventing us
|
|
|
|
|
from sending the packet, we'll fail to actually send the packet
|
|
|
|
|
because sendmsg() returned an error. This effectively causes an extra
|
|
|
|
|
outgoing packet drop, possibly delaying the related RPC.
|
|
|
|
|
|
|
|
|
|
To avoid this, change Rx to retry the sendmsg call when it returns an
|
|
|
|
|
error, since the error may be due to an unrelated ICMP error.
|
|
|
|
|
|
|
|
|
|
To avoid needing to implement this retry loop in multiple places, move
|
|
|
|
|
around our sendmsg code for AFS_RXERRQ_ENV, so that the higher-level
|
|
|
|
|
function rxi_NetSend performs the retry and checks for socket errors
|
|
|
|
|
(instead of the lower-level rxi_Sendmsg or osi_NetSend). Also change
|
|
|
|
|
our functions to process socket errors to be more consistent between
|
|
|
|
|
kernel and userspace: now we always have rxi_HandleSocketErrors, which
|
|
|
|
|
runs a loop around the platform-specific osi_HandleSocketError.
|
|
|
|
|
|
|
|
|
|
With this commit, osi_HandleSocketError is now required to be
|
|
|
|
|
implemented when AFS_RXERRQ_ENV is defined. We hadn't been
|
|
|
|
|
implementing this for UKERNEL, so just turn off AFS_RXERRQ_ENV for
|
|
|
|
|
UKERNEL.
|
|
|
|
|
|
|
|
|
|
Thanks to mbarbosa@sinenomine.net for discovering and providing
|
|
|
|
|
information about the relevant issue.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14424
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 5c9234694543f206174d30e21886286d419fd8df)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1b21ba4d2b98abae240cb683d6061462db028431
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14503
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit a6173b39a874d7cce3a826d7b4dce58ee6a48983
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Nov 2 13:16:41 2020 -0600
|
|
|
|
|
|
|
|
|
|
rx: Save errno in pthread rxi_Sendmsg
|
|
|
|
|
|
|
|
|
|
Currently, our pthread version of rxi_Sendmsg uses 'errno' in some
|
|
|
|
|
logic if sendmsg fails, but we do so after calling functions that
|
|
|
|
|
might alter errno (e.g. fflush).
|
|
|
|
|
|
|
|
|
|
To make sure we get the correct errno value, save the value of errno
|
|
|
|
|
right after sendmsg returns an error. Reorganize this function a bit
|
|
|
|
|
to help make the logic easier to follow.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14423
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit eff7fa4b2eb9a3001dc18dca157ccbd5f19f89b6)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie761bf8fbf930718d933fdc2d0ad6961b2660607
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14502
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5b6ea9e9bd37d17b1cf29bb8ef377091ffccae69
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jan 9 12:38:45 2020 -0600
|
|
|
|
|
|
|
|
|
|
aklog: Make dummy write AIX-specific
|
|
|
|
|
|
|
|
|
|
This weird write() call exists to work around some old AIX-specific
|
|
|
|
|
bug. The ifdef looks like it is intended to restrict this to pre-5
|
|
|
|
|
AIX, but it also turns this on for all non-AIX platforms.
|
|
|
|
|
|
|
|
|
|
Make this area AIX-specific, to avoid this weird write on other
|
|
|
|
|
platforms that have nothing to do with the relevant workaround.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14022
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 6ee2d6de7d87c93c849f3afbe4326906e4c10852)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iaa84f1c1df57f9b0749c2577e496fbf8740e48c1
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14483
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7d7b3f06bb72aa2969b164ff71d61d723628f52c
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Aug 28 17:26:41 2019 +0530
|
|
|
|
|
|
|
|
|
|
aklog: avoid infinite lifetime tokens by default
|
|
|
|
|
|
|
|
|
|
Currently we get tokens for infinite lifetime using aklog impersonate
|
|
|
|
|
feature. Based on inputs from Ben, this was done for server to server
|
|
|
|
|
tickets to be valid forever. However on 1.8.x we have other
|
|
|
|
|
mechanisms that were usable for server-to-server authentication with
|
|
|
|
|
strong enctypes, so we do not need to provide user level akimpersonate
|
|
|
|
|
to generate tokens for infinite lifetime. For this we have added new
|
|
|
|
|
option -token-lifetime <hrs>, this can take values from 0 to 720
|
|
|
|
|
hours. If 0 is specified it means tokens will have infinite lifetime.
|
|
|
|
|
By default 10 hours will be token lifetime for akimpersonate tokens.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13828
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 1de602aaada15df1008140784092c2a76a2613a1)
|
|
|
|
|
|
|
|
|
|
Change-Id: I032431ab1b8b174ac8d80322b688dc2a7285b8fa
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14482
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 97400f8a8c1b5756f67cf5434a65faa9a5d3d22b
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Aug 28 17:04:31 2019 +0530
|
|
|
|
|
|
|
|
|
|
aklog: use any enctype in get_credv5
|
|
|
|
|
|
|
|
|
|
We currently always pass DES as the requested enctype to
|
|
|
|
|
get_credv5_akimpersonate, but this means we will fail to use our
|
|
|
|
|
service princ if we're using another enctype (say, AES) with rxkad-k5.
|
|
|
|
|
To allow this to work with any enctype, just don't pass any requested
|
|
|
|
|
enctypes, and just use the enctype inside the 'entry' returned to us
|
|
|
|
|
from krb5_kt_get_entry.
|
|
|
|
|
|
|
|
|
|
Remove all of the logic associated with the now-unused
|
|
|
|
|
"allowed_enctypes" argument. Also remove the logic handling the case
|
|
|
|
|
where "service_principal" is NULL (since no callers pass a NULL
|
|
|
|
|
service_principal), to make it easier to take out the allowed_enctypes
|
|
|
|
|
related code.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13827
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 276bd5c7f8a2ec7673d2ad084566203eb2055938)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia4b2cab3b2cd81214683dc00d7092a302d5af1bd
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14481
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 93f21573642f01e906f6711bae13006cc708f0d3
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Aug 28 16:43:35 2019 +0530
|
|
|
|
|
|
|
|
|
|
aklog: retry getting tokens for KRB5_KT_NOTFOUND error
|
|
|
|
|
|
|
|
|
|
If we're creating tokens with -keytab and our AFS service principal is
|
|
|
|
|
afs@<cellname>, we'll first try creating tokens with
|
|
|
|
|
afs/<cellname>@<cellname> and krb5_kt_get_entry will fail with
|
|
|
|
|
KRB5_KT_NOTFOUND. Since we do not retry for KRB5_KT_NOTFOUND error, we
|
|
|
|
|
will not get tokens. So in order to get tokens for principal
|
|
|
|
|
afs@<cellname> we should retry for KRB5_KT_NOTFOUND error. Thanks to
|
|
|
|
|
jpjanosi@us.ibm.com for finding this issue and suggesting a fix.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13826
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 7a13bce2513baf5a3a61db94f3d88232241cea5b)
|
|
|
|
|
|
|
|
|
|
Change-Id: I4f4dfb4c1372aef88a938d1b96d012a3f6bb4218
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14480
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 26c1720b2c18cdda1807424d96547342248aa64c
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Aug 28 16:25:49 2019 +0530
|
|
|
|
|
|
|
|
|
|
aklog: Use HAVE_ENCODE_KRB5_ENC_TKT_PART for aklog impersonate
|
|
|
|
|
|
|
|
|
|
In get_credv5_akimpersonate we use HAVE_ENCODE_KRB5_ENC_TKT which is not
|
|
|
|
|
defined, due to this we always return -1 from this routine for non
|
|
|
|
|
Heimdal case. We have a another define i.e
|
|
|
|
|
HAVE_ENCODE_KRB5_ENC_TKT_PART which is defined if
|
|
|
|
|
encode_krb5_enc_tkt_part function is present. In current code
|
|
|
|
|
encode_krb5_enc_tkt_part is called from krb5_encrypt_tkt_part and
|
|
|
|
|
krb5_encrypt_tkt_part is called from get_credv5_akimpersonate for non
|
|
|
|
|
Heimdal case. So we should change HAVE_ENCODE_KRB5_ENC_TKT to
|
|
|
|
|
HAVE_ENCODE_KRB5_ENC_TKT_PART.
|
|
|
|
|
Also while we're here, add a declaration for the internal function
|
|
|
|
|
encode_krb5_ticket, so we can build this newly-enabled code without
|
|
|
|
|
warnings.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13825
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
(cherry picked from commit 6559297610de0f71c9050f3582d4d146e0cc1f3c)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia89cdbf23160c71e5b65b8220e1c1f73f1055064
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14479
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit e262f3a22d209b147d56e302634f95ffc37b007b
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Sat Aug 10 02:54:38 2019 +0530
|
|
|
|
|
|
|
|
|
|
aklog: Free client/server princs in get_credv5
|
|
|
|
|
|
|
|
|
|
Inside get_credv5, client_principal is static so the first time
|
|
|
|
|
get_credv5 runs we'll allocate memory for it, and on subsequent calls
|
|
|
|
|
we'll reuse the same value.
|
|
|
|
|
|
|
|
|
|
However, if we call get_credv5_akimpersonate, we'll free
|
|
|
|
|
client_principal and never change what client_principal points to. If we
|
|
|
|
|
need to call get_credv5 again (because we need to retry getting creds),
|
|
|
|
|
we'll reuse the old value for client_principal, but since it points to
|
|
|
|
|
free memory we'll segfault or cause other problems.
|
|
|
|
|
|
|
|
|
|
To avoid this, change get_credv5 so we allocate the client and server
|
|
|
|
|
principals on each invocation of get_credv5 and free them before
|
|
|
|
|
returning from get_credv5. Since we free the client and server
|
|
|
|
|
principals inside get_credv5, remove freeing the client and server
|
|
|
|
|
principals inside get_credv5_akimpersonate.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13761
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit ab8b28540ef17d67db02d5dbcb7585443c164e45)
|
|
|
|
|
|
|
|
|
|
Change-Id: I818202660be4522bd49bf207c59d202ed8adf88d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14478
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 8e98d9c1cad3afef5508dcc16cc04946be43d9b8
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Sat Aug 10 02:41:01 2019 +0530
|
|
|
|
|
|
|
|
|
|
aklog: free kbr5_creds before returning from rxkad_get_token
|
|
|
|
|
|
|
|
|
|
rxkad_get_ticket allocates 'v5cred' which should be freed when we
|
|
|
|
|
return from rxkad_get_token.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13760
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 130a92214cc0b9a8f4ea24a3dcd3ed04575e3c4e)
|
|
|
|
|
|
|
|
|
|
Change-Id: I02720f37c71ee56b4bd3d79d5f3e06c3ee647c9b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14477
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 563f5b2915a4a43b2642dba8287b3d6d36d5b3c8
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Sat Jan 9 12:47:09 2021 -0600
|
|
|
|
|
|
|
|
|
|
WINNT: Restore missing '#ifdef PC'
|
|
|
|
|
|
|
|
|
|
Commit 339167ef (Remove dead code) meant to remove the '#ifdef notdef'
|
|
|
|
|
block in here, but we accidentally also removed the subsequent '#ifdef
|
|
|
|
|
PC'.
|
|
|
|
|
|
|
|
|
|
This file may not be very important, since WINNT still builds with
|
|
|
|
|
this mistake, but an unbalanced #ifdef is potentially super confusing,
|
|
|
|
|
so fix it.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14487
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 2971dcb3b4da04fff3f4bd9c3d3e3f0ab7a94cae)
|
|
|
|
|
|
|
|
|
|
Change-Id: I273ad30d38d7a41e7ec662994d91e084c24194bb
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14490
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 734c7650597b461848829f0706b6a5be29e9fbb9
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Wed Jul 10 15:14:28 2019 -0500
|
|
|
|
|
|
|
|
|
|
Remove dead code
|
|
|
|
|
|
|
|
|
|
There is a perhaps-surprisingly large amount of code disabled behind
|
|
|
|
|
directives like '#if 0', '#ifdef notdef', and '#ifdef notyet'. At
|
|
|
|
|
best, this code is clutter, and at worst some of it is
|
|
|
|
|
confusing/outdated, and/or confusingly nested inside other
|
|
|
|
|
preprocessor conditionals. Sometimes this disabled code shows up when
|
|
|
|
|
grepping the tree, and causes a nuisance when refactoring related
|
|
|
|
|
areas of code.
|
|
|
|
|
|
|
|
|
|
Get rid of all of it. If anyone ever wants this code back, it can
|
|
|
|
|
always be restored by reverting portions of this commit.
|
|
|
|
|
|
|
|
|
|
Also delete some comments that clearly refer to the disabled code, and
|
|
|
|
|
in some cases, adjust the adjacent comments to make sense accordingly.
|
|
|
|
|
|
|
|
|
|
This commit doesn't touch any files in src/external/.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13683
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 339167ef1fda899655969f4572ff95271dfdb7cf)
|
|
|
|
|
|
|
|
|
|
Change-Id: I440b01de0fdb0ef2602557bf3fa35dcdf9a22cdc
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14476
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7e42148ee75ff523cd232658fd3f46945f5920ce
|
|
|
|
|
Merge: 5004f88 06b800f
|
|
|
|
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Date: Thu Jan 14 14:24:38 2021 -0800
|
|
|
|
|
|
|
|
|
|
Merge branch 'openafs-stable-1_8_7-branch' into openafs-stable-1_8_7
|
|
|
|
|
|
|
|
|
|
Record the history of the 1.8.7 emergency patch release.
|
|
|
|
|
Resolve the nominal conflict in configure.ac due to 1.8.7 bumping
|
|
|
|
|
the version and openafs-stable-1_8_x removing the LINUX_PKGREL variable.
|
|
|
|
|
|
|
|
|
|
Change-Id: Ifa719bcec3948b2634841fba90e835f9db088dd6
|
|
|
|
|
|
|
|
|
|
commit 06b800f6f1022fa4b86eb9023b75028f2e2cfeab
|
|
|
|
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Date: Thu Jan 14 13:08:41 2021 -0800
|
|
|
|
|
|
|
|
|
|
Make OpenAFS 1.8.7
|
|
|
|
|
|
|
|
|
|
Update version strings for the 1.8.7 emergency patch release.
|
|
|
|
|
|
|
|
|
|
Change-Id: I665bedad864b1c2cbbe55978d6b06e917ed26faa
|
|
|
|
|
|
|
|
|
|
commit f3b5c62660a48f693897d2faa1cecfd1c10307de
|
|
|
|
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Date: Thu Jan 14 13:06:18 2021 -0800
|
|
|
|
|
|
|
|
|
|
Update NEWS for 1.8.7
|
|
|
|
|
|
|
|
|
|
Add the release notes for the 1.8.7 emergency patch release.
|
|
|
|
|
|
|
|
|
|
Change-Id: I813f11e4e72c12cb927f66472b099febbf3d899f
|
|
|
|
|
|
|
|
|
|
commit 81a3600bfdcc122d43c75720e83317dcc2a9e6a1
|
|
|
|
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Date: Thu Jan 14 10:20:59 2021 -0800
|
|
|
|
|
|
|
|
|
|
Remove overflow check from update_nextCid
|
|
|
|
|
|
|
|
|
|
The rx_nextCid global has been an unsigned type since
|
|
|
|
|
http://gerrit.openafs.org/11106 (which was actually merged before
|
|
|
|
|
the refactoring of overflow check to avoid signed integer overflow)
|
|
|
|
|
and thus there is no need to avoid signed overflow. The per-connection
|
|
|
|
|
cid has been unsigned since the IBM import.
|
|
|
|
|
|
|
|
|
|
The natural unsigned behavior on overflow of wrapping is the desired
|
|
|
|
|
behvaior here, so just remove the extra logic and always increment.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14496
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 43ef1f2a5d80aa1c3f5b4831ada8e776ac0c7d13)
|
|
|
|
|
|
|
|
|
|
Change-Id: I64fabe5229039f7af040902ed2e6f03dba7bc14d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14497
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
(cherry picked from commit 5004f888e32e8274fcd8a28a7bff6aa3a79f41c8)
|
|
|
|
|
|
|
|
|
|
commit 6f898c4c711d0aff7ea452670164802b5e423c18
|
|
|
|
|
Author: Jeffrey Altman <jaltman@auristor.com>
|
|
|
|
|
Date: Thu Jan 14 09:57:13 2021 -0500
|
|
|
|
|
|
|
|
|
|
rx: update_nextCid overflow handling is broken
|
|
|
|
|
|
|
|
|
|
The overflow handling in update_nextCid() produces a rx_nextCid
|
|
|
|
|
value of 0x80000001 which itself is out of the valid range. When
|
|
|
|
|
used to construct the first call of a new connection the connection
|
|
|
|
|
id for the call becomes 0x80000002, and all subsequent connections
|
|
|
|
|
also trigger the overflow handling and thus also receive connection
|
|
|
|
|
id 0x80000002.
|
|
|
|
|
|
|
|
|
|
If the same connection id is used for multiple connections from
|
|
|
|
|
the same endpoint the accepting rx peer will be very confused.
|
|
|
|
|
|
|
|
|
|
When authenticated connections are used, the CHALLENGE/RESPONSE
|
|
|
|
|
will fail because of a mismatch in the connection's callNumber
|
|
|
|
|
array.
|
|
|
|
|
|
|
|
|
|
If an initiator makes only a single connection to a given rx peer,
|
|
|
|
|
that connection would succeed, but once multiple connections are
|
|
|
|
|
initiated all communication from a broken initiator to any rx peer
|
|
|
|
|
will fail.
|
|
|
|
|
|
|
|
|
|
The incorrect overflow calculation was introduced by
|
|
|
|
|
39b165cdda941181845022c183fea1c7af7e4356 ("Move epoch and cid
|
|
|
|
|
generation into the rx core").
|
|
|
|
|
|
|
|
|
|
This change corrects the overflow value to become
|
|
|
|
|
|
|
|
|
|
1 << RX_CIDSHIFT
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14492
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 2c0a3901cbfcb231b7b67eb0899a3133516f33c8)
|
|
|
|
|
|
|
|
|
|
Change-Id: I74d70706ddf99022bed639891cb610fba9ef863d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14494
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
(cherry picked from commit f5ed8c2fac4c94914099881250f5f2e893f3f9f7)
|
|
|
|
|
|
|
|
|
|
commit 54c56dfa423bac14db117f5ec641ebe0eda705e3
|
|
|
|
|
Author: Jeffrey Altman <jaltman@auristor.com>
|
|
|
|
|
Date: Thu Jan 14 09:41:39 2021 -0500
|
|
|
|
|
|
|
|
|
|
rx: rx_InitHost do not overwrite RAND_bytes rx_nextCid
|
|
|
|
|
|
|
|
|
|
39b165cdda941181845022c183fea1c7af7e4356 ("Move epoch and cid
|
|
|
|
|
generation into the rx core") introduced the use of RAND_bytes()
|
|
|
|
|
to generate the initial 'rx_nextCid' but failed to remove the
|
|
|
|
|
|
|
|
|
|
rx_nextCid = ((tv.tv_sec ^ tv.tv_usec) << RX_CIDSHIFT;
|
|
|
|
|
|
|
|
|
|
assignment inherited from IBM/Transarc.
|
|
|
|
|
|
|
|
|
|
At Thu, 14 Jan 2021 08:25:36 GMT the IBM inherited calculation
|
|
|
|
|
overflows the value CID range. This triggers broken overflow
|
|
|
|
|
logic in update_nextCid().
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14491
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a3bc7ff1501d51ceb3b39d9caed62c530a804473)
|
|
|
|
|
|
|
|
|
|
Change-Id: If5f7d4ba1cacc6978c83fd512653fbaa0c1559d8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14493
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
(cherry picked from commit a41fe24be574f35ca852fc3ea9750e370cdb71d0)
|
|
|
|
|
|
|
|
|
|
commit 5004f888e32e8274fcd8a28a7bff6aa3a79f41c8
|
|
|
|
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Date: Thu Jan 14 10:20:59 2021 -0800
|
|
|
|
|
|
|
|
|
|
Remove overflow check from update_nextCid
|
|
|
|
|
|
|
|
|
|
The rx_nextCid global has been an unsigned type since
|
|
|
|
|
http://gerrit.openafs.org/11106 (which was actually merged before
|
|
|
|
|
the refactoring of overflow check to avoid signed integer overflow)
|
|
|
|
|
and thus there is no need to avoid signed overflow. The per-connection
|
|
|
|
|
cid has been unsigned since the IBM import.
|
|
|
|
|
|
|
|
|
|
The natural unsigned behavior on overflow of wrapping is the desired
|
|
|
|
|
behvaior here, so just remove the extra logic and always increment.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14496
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 43ef1f2a5d80aa1c3f5b4831ada8e776ac0c7d13)
|
|
|
|
|
|
|
|
|
|
Change-Id: I64fabe5229039f7af040902ed2e6f03dba7bc14d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14497
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
|
|
|
|
|
commit f5ed8c2fac4c94914099881250f5f2e893f3f9f7
|
|
|
|
|
Author: Jeffrey Altman <jaltman@auristor.com>
|
|
|
|
|
Date: Thu Jan 14 09:57:13 2021 -0500
|
|
|
|
|
|
|
|
|
|
rx: update_nextCid overflow handling is broken
|
|
|
|
|
|
|
|
|
|
The overflow handling in update_nextCid() produces a rx_nextCid
|
|
|
|
|
value of 0x80000001 which itself is out of the valid range. When
|
|
|
|
|
used to construct the first call of a new connection the connection
|
|
|
|
|
id for the call becomes 0x80000002, and all subsequent connections
|
|
|
|
|
also trigger the overflow handling and thus also receive connection
|
|
|
|
|
id 0x80000002.
|
|
|
|
|
|
|
|
|
|
If the same connection id is used for multiple connections from
|
|
|
|
|
the same endpoint the accepting rx peer will be very confused.
|
|
|
|
|
|
|
|
|
|
When authenticated connections are used, the CHALLENGE/RESPONSE
|
|
|
|
|
will fail because of a mismatch in the connection's callNumber
|
|
|
|
|
array.
|
|
|
|
|
|
|
|
|
|
If an initiator makes only a single connection to a given rx peer,
|
|
|
|
|
that connection would succeed, but once multiple connections are
|
|
|
|
|
initiated all communication from a broken initiator to any rx peer
|
|
|
|
|
will fail.
|
|
|
|
|
|
|
|
|
|
The incorrect overflow calculation was introduced by
|
|
|
|
|
39b165cdda941181845022c183fea1c7af7e4356 ("Move epoch and cid
|
|
|
|
|
generation into the rx core").
|
|
|
|
|
|
|
|
|
|
This change corrects the overflow value to become
|
|
|
|
|
|
|
|
|
|
1 << RX_CIDSHIFT
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14492
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 2c0a3901cbfcb231b7b67eb0899a3133516f33c8)
|
|
|
|
|
|
|
|
|
|
Change-Id: I74d70706ddf99022bed639891cb610fba9ef863d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14494
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
|
|
|
|
|
commit a41fe24be574f35ca852fc3ea9750e370cdb71d0
|
|
|
|
|
Author: Jeffrey Altman <jaltman@auristor.com>
|
|
|
|
|
Date: Thu Jan 14 09:41:39 2021 -0500
|
|
|
|
|
|
|
|
|
|
rx: rx_InitHost do not overwrite RAND_bytes rx_nextCid
|
|
|
|
|
|
|
|
|
|
39b165cdda941181845022c183fea1c7af7e4356 ("Move epoch and cid
|
|
|
|
|
generation into the rx core") introduced the use of RAND_bytes()
|
|
|
|
|
to generate the initial 'rx_nextCid' but failed to remove the
|
|
|
|
|
|
|
|
|
|
rx_nextCid = ((tv.tv_sec ^ tv.tv_usec) << RX_CIDSHIFT;
|
|
|
|
|
|
|
|
|
|
assignment inherited from IBM/Transarc.
|
|
|
|
|
|
|
|
|
|
At Thu, 14 Jan 2021 08:25:36 GMT the IBM inherited calculation
|
|
|
|
|
overflows the value CID range. This triggers broken overflow
|
|
|
|
|
logic in update_nextCid().
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14491
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a3bc7ff1501d51ceb3b39d9caed62c530a804473)
|
|
|
|
|
|
|
|
|
|
Change-Id: If5f7d4ba1cacc6978c83fd512653fbaa0c1559d8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14493
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
|
|
|
|
|
commit b65b33da4e65e2c981ce264ef4fa4e3e4c94b732
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Mon Aug 17 15:44:55 2020 -0400
|
|
|
|
|
|
|
|
|
|
vldb_check: Check for volume lock inconsistencies
|
|
|
|
|
|
|
|
|
|
Verify the a lock timestamp is set if, and only if, a lock volume
|
|
|
|
|
operation flag is also set.
|
|
|
|
|
|
|
|
|
|
When running vldb_check with the -fix option, fix the inconsistent
|
|
|
|
|
entries by setting the lock timestamp to the current time if a lock flag
|
|
|
|
|
is set, or by setting the VLOP_DELETE flag if the lock timestamp is set
|
|
|
|
|
but no lock flags are set. (The VLOP_DELETE flag is the flag set by the
|
|
|
|
|
'vos lock command, and is shown in vos output as "delete/misc".)
|
|
|
|
|
|
|
|
|
|
Volume lock fields can be put into an inconsistent state, at least, by
|
|
|
|
|
interupted vos rename operations, due to bugs in vos rename. When the
|
|
|
|
|
volume lock timestamp and lock flags are in this inconsistent state, the
|
|
|
|
|
volume is locked, but that is not indicated by 'vos listvldb'. The
|
|
|
|
|
volume can be unlocked by issuing 'vos unlock'.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14307
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 4c33820525af510a8a937289005e39d5b6683b19)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia894139145d92948b2af43bd115792556131cd5a
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14450
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 37187ba29454cba5a79eebff6251d6ff145907cf
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon May 18 12:09:38 2020 -0500
|
|
|
|
|
|
|
|
|
|
auth: Close fd on SetExtendedCellInfo write error
|
|
|
|
|
|
|
|
|
|
Currently, and since OpenAFS 1.0, if write() fails here, we leak the
|
|
|
|
|
file descriptor. A write() failure should be very unlikely, but close
|
|
|
|
|
the fd to make sure we avoid the leak.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14213
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit c81579dc7b0c0ac6bc34f63384d705a4445c2bbd)
|
|
|
|
|
|
|
|
|
|
Change-Id: I4dd96cca2fd9c01390fb508ab12d507ab1a56c8b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14461
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit b201d2a3a97830d34ea5b76c9c2d5d3adc1a54a6
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jul 26 15:48:00 2018 -0500
|
|
|
|
|
|
|
|
|
|
Remove DUX/OSF code
|
|
|
|
|
|
|
|
|
|
Remove code for DUX/OSF platforms. DUX code was removed from the
|
|
|
|
|
libafs client in commit 392dcf67 ("Complete removal of DUX client
|
|
|
|
|
code") and the alpha_dux* param files were removed in dc4d9d64 ("afs:
|
|
|
|
|
Remove AFS_BOZONLOCK_ENV"). This code has always been disabled since
|
|
|
|
|
those commits, so remove any code referencing AFS_DUX*_ENV,
|
|
|
|
|
AFS_OSF_ENV, and related symbols.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13260
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 6534b10a4180ec10bceebbc11405718e7969fa21)
|
|
|
|
|
|
|
|
|
|
Change-Id: I632636fe6c5111b60c5b586c346ecc10ccfa8f3c
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14452
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c55607d732a65f8acb1dfc6bf93aee0f4409cecf
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Oct 26 12:35:32 2020 -0500
|
|
|
|
|
|
|
|
|
|
LINUX: Return errors in our d_revalidate
|
|
|
|
|
|
|
|
|
|
In our d_revalidate callback (afs_linux_dentry_revalidate), we
|
|
|
|
|
currently 'goto bad_dentry' when we encounter any error. This can
|
|
|
|
|
happen if we can't allocate memory or some other internal errors, or
|
|
|
|
|
if the relevant afs_lookup call fails just due to plain network
|
|
|
|
|
errors.
|
|
|
|
|
|
|
|
|
|
For any of these cases, we'll treat the dentry as if it's no longer
|
|
|
|
|
valid, so we'll return '0' and call d_invalidate() on the dentry.
|
|
|
|
|
However, the behavior of d_invalidate changed, as mentioned in commit
|
|
|
|
|
afbc199f1 (LINUX: Avoid d_invalidate() during
|
|
|
|
|
afs_ShakeLooseVCaches()). After a certain point in the Linux kernel,
|
|
|
|
|
d_invalidate() will also effectively d_drop() the given dentry,
|
|
|
|
|
unhashing it. This can cause getcwd() calls to fail with ENOENT for
|
|
|
|
|
those directories (as mentioned in afbc199f1), and can cause
|
|
|
|
|
bind-mount calls to fail similarly during a small window.
|
|
|
|
|
|
|
|
|
|
To avoid all of this, when we encounter an error that prevents us from
|
|
|
|
|
checking if the dentry is valid or not, we need to return an error,
|
|
|
|
|
instead of saying 'yes' or 'no'. So, change
|
|
|
|
|
afs_linux_dentry_revalidate to jump to the 'done' label when we
|
|
|
|
|
encounter such errors, and avoid calling d_drop/d_invalidate in such
|
|
|
|
|
cases. This also lets us remove the 'lookup_good' variable and
|
|
|
|
|
consolidate some of the related logic.
|
|
|
|
|
|
|
|
|
|
Important note: in older Linux kernels, d_revalidate cannot return
|
|
|
|
|
errors; callers just interpreted its return value as either 'valid'
|
|
|
|
|
(non-zero) or 'not valid' (zero). The treatment of negative values as
|
|
|
|
|
errors was introduced in Linux commit
|
|
|
|
|
bcdc5e019d9f525a9f181a7de642d3a9c27c7610, which was included in
|
|
|
|
|
2.6.19. This is very old, but technically still above our stated
|
|
|
|
|
requirements for the Linux kernel, so try to handle this case, by
|
|
|
|
|
jumping to 'bad_dentry' still for those old kernels. Just do this with
|
|
|
|
|
a version check, since no configure check can detect this (no function
|
|
|
|
|
signatures changed), and the only Linux versions that are a concern
|
|
|
|
|
are quite old.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14417
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 78e5e1b0e54b31bb08b7578e86a6a2a95770d94c)
|
|
|
|
|
|
|
|
|
|
Change-Id: I9f9e2cd3a10cc8fa30a770cabd6ae9757f412ce5
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14451
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit dc5e7825fb166ecdb32fc7b63b4a5316037de652
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Apr 20 14:51:08 2020 -0400
|
|
|
|
|
|
|
|
|
|
vos: avoid 'half-locked' volume after interrupted 'vos rename'
|
|
|
|
|
|
|
|
|
|
Reported symptoms:
|
|
|
|
|
|
|
|
|
|
If a 'vos rename' is interrupted after it has locked the volume and
|
|
|
|
|
replaced the VLDB entry, but before it has unlocked the volume, the
|
|
|
|
|
volume will remain locked. However, the locked volume will NOT be
|
|
|
|
|
listed as locked in any vos commands that display locked status (see
|
|
|
|
|
below for details).
|
|
|
|
|
|
|
|
|
|
Background:
|
|
|
|
|
|
|
|
|
|
Most vos write operations lock the VLDB volume entry before proceeding,
|
|
|
|
|
then release the volume lock when finished. This is accomplished via
|
|
|
|
|
VL_SetLock and VL_ReleaseLock, respectively.
|
|
|
|
|
|
|
|
|
|
VL_SetLock always sets these members in the VLDB volume entry:
|
|
|
|
|
- flags is modified to set the required VLOP_* code bit as specified
|
|
|
|
|
- LockAFSid is set to 0 (never implemented)
|
|
|
|
|
- LockTimestamp is set to the current time
|
|
|
|
|
|
|
|
|
|
VL_ReleaseLock always sets them as follows:
|
|
|
|
|
- flags is cleared of any VLOP_* code bit
|
|
|
|
|
- LockAFSid is set to 0 (never implemented)
|
|
|
|
|
- LockTimestamp is set to 0
|
|
|
|
|
|
|
|
|
|
VL_ReplaceEntry(N) may also optionally clear each of these members:
|
|
|
|
|
- flags operation bits may be explicitly cleared via LOCKREL_OPCODE
|
|
|
|
|
- LockAFSid may be explicitly cleared via LOCKREL_AFSID
|
|
|
|
|
- LockTimestamp may be explicitly cleared via LOCKREL_TIMESTAMP
|
|
|
|
|
|
|
|
|
|
When all 3 options are specified, VL_ReplaceEntry also does the
|
|
|
|
|
functional equivalent of a VL_ReleaseLock. Most vos operations use this
|
|
|
|
|
method. However, when no lock release options are specified on
|
|
|
|
|
VL_ReplaceEntry(N), the VLDB entry is simply replaced with the supplied
|
|
|
|
|
entry. This includes whatever flags values are specified in the
|
|
|
|
|
supplied entry; therefore, this amounts to an additional, implicit way
|
|
|
|
|
to set or modify the flags.
|
|
|
|
|
|
|
|
|
|
Root cause:
|
|
|
|
|
|
|
|
|
|
'vos rename' (UV_RenameVolume) is the only vos operation that does all
|
|
|
|
|
of the following things:
|
|
|
|
|
- accepts a replacement volume entry that was obtained before VL_SetLock
|
|
|
|
|
(and thus does NOT have any lock flags set)
|
|
|
|
|
- issues VL_SetLock (which sets the lock flag in the VLDB)
|
|
|
|
|
- issues VL_ReplaceEntry(N) with the original unlocked entry, and with
|
|
|
|
|
no lock release options (thus with explicit intent to leave the lock
|
|
|
|
|
flag unchanged, but inadvertently doing an implicit clear of the lock
|
|
|
|
|
flag in the VLDB)
|
|
|
|
|
- (performs some additional volserver work)
|
|
|
|
|
- issues VL_ReleaseLock to release the volume lock
|
|
|
|
|
|
|
|
|
|
Therefore, if 'vos rename' is cancelled or killed before reaching the
|
|
|
|
|
final VL_ReleaseLock step, the VLDB entry is left with the lock flags
|
|
|
|
|
cleared but the LockTimestamp still set. As we will see below, this
|
|
|
|
|
'half-locked' state produces confusing results from other vos commands.
|
|
|
|
|
|
|
|
|
|
Detection of locked state:
|
|
|
|
|
|
|
|
|
|
The 'vos lock' command (and all other vos commands that issue
|
|
|
|
|
VL_SetLock) use the lock timestamp to determine if a volume is locked.
|
|
|
|
|
|
|
|
|
|
However, several other vos commands ('vos listvldb <vol>', 'vos examine
|
|
|
|
|
<vol>', 'vos listvldb -locked') use the VLDB entry's lock flags (not the
|
|
|
|
|
lock timestamp) to determine if the volume is locked. Therefore, if the
|
|
|
|
|
lock flags have been cleared but the lock timestamp is still set, these
|
|
|
|
|
commands fail to detect that the volume is still locked. Yet an
|
|
|
|
|
administrator's 'vos lock <volume>' will still fail with:
|
|
|
|
|
|
|
|
|
|
Could not lock VLDB entry for volume <volume>
|
|
|
|
|
VLDB: vldb entry is already locked
|
|
|
|
|
|
|
|
|
|
This is the external manifestation of the 'half-locked' state.
|
|
|
|
|
|
|
|
|
|
Workaround and fix:
|
|
|
|
|
|
|
|
|
|
This scenario has a simple workaround: 'vos unlock <volume>'. However,
|
|
|
|
|
to avoid this confusing outcome in the first place, modify the 'vos
|
|
|
|
|
rename' logic so that the lock flags are no longer inadvertently
|
|
|
|
|
cleared. Now, if the 'vos rename' is interrupted before the volume is
|
|
|
|
|
unlocked, it will still appear locked in normal vos command output.
|
|
|
|
|
|
|
|
|
|
Change-Id: Iefc6ef54ea4b0e95e3ae8e8a43d3ded0f15af0fa
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14157
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14449
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit a518b0c439b40886dcb2337919d49b3009a00b4d
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Thu Nov 5 13:50:59 2020 -0700
|
|
|
|
|
|
|
|
|
|
vos: Cleanup function definitions
|
|
|
|
|
|
|
|
|
|
The functions defined within vos.c are not referenced outside of vos.c
|
|
|
|
|
but are not declared as static.
|
|
|
|
|
|
|
|
|
|
Convert the functions within vos.c to static declarations.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14009
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 56aa396d8359276d778d41aa509041c8c75b4e96)
|
|
|
|
|
|
|
|
|
|
Change-Id: Idca045431959bb3e4b31d12ef754a883d4118a89
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14448
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ab30c00f6ab663e0907830e76e76b44710712a07
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Thu Nov 5 13:49:54 2020 -0700
|
|
|
|
|
|
|
|
|
|
vos: Remove dead code
|
|
|
|
|
|
|
|
|
|
Clean out dead code from vos.c
|
|
|
|
|
|
|
|
|
|
GetVolumeType - not referenced anywhere
|
|
|
|
|
CompareVLDBEntry - commented out since 1st git commit
|
|
|
|
|
osi_audit - Comment indicates this might have been needed at one point.
|
|
|
|
|
Builds without it. Does not look like the vos executable
|
|
|
|
|
is pulling in any of the audit code.
|
|
|
|
|
RestoreVolume - remove stale comment about typo previous to openafs 1.0
|
|
|
|
|
RemoveSite - remove commented out partition check
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14008
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a3be2c74a95489f63837840af8ec42049ce021bf)
|
|
|
|
|
|
|
|
|
|
Change-Id: I71a78d2a46b8d64cdde9db05a0079e9db954d191
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14447
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 00095ea2eff4d8570af78044b88c2b2877ce4e2a
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Tue Nov 10 09:17:16 2020 -0700
|
|
|
|
|
|
|
|
|
|
vos: Cleanup indentation whitespace
|
|
|
|
|
|
|
|
|
|
Fix the indentation whitespace in vos.c, and remove double blank
|
|
|
|
|
lines. No functional change.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14007
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit c17c157641d83226fee5bc20f588f14bb132bb68)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iecde7505a3f59c4b6e59d4644b7a1e56127c272d
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14446
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ebbeb69286ae408b59878074d06bc350001ad669
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Fri Dec 27 11:53:05 2019 -0500
|
|
|
|
|
|
|
|
|
|
vsprocs: Remove dead code
|
|
|
|
|
|
|
|
|
|
Remove the dead code in UV_VolumeMove() commented out with the macro
|
|
|
|
|
ENABLE_BUGFIX_1165.
|
|
|
|
|
|
|
|
|
|
Remove two commented out lines of code in UV_ConvertRO().
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14004
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 6779e30d372b2cd5e7995da23ed5e2971124b79c)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ibeddebdf24ca50341bba3031c6f8548cab245b8a
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14445
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 32742e3171e32970ee86449ef41d04df388a37f4
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Tue Oct 6 10:18:11 2020 -0400
|
|
|
|
|
|
|
|
|
|
bozo: defer audit open until log dir is created and current
|
|
|
|
|
|
|
|
|
|
On a new OpenAFS install where the log directory has not yet been
|
|
|
|
|
created. 'bosserver -auditlog /usr/afs/logs/<auditlog>' (absolute path)
|
|
|
|
|
fails with ENOENT because the log directory doesn't exist yet.
|
|
|
|
|
|
|
|
|
|
Furthermore, 'bosserver -auditlog <auditlog>' (relative path) succeeds,
|
|
|
|
|
but the audit file is created in the current working directory when
|
|
|
|
|
bosserver was started, not in the expected log directory (Transarc
|
|
|
|
|
/usr/afs/logs).
|
|
|
|
|
|
|
|
|
|
Both problems have been present since bosserver audit log support was
|
|
|
|
|
introduced by commit 16d67791dce45e5d4ee9b854c796492ffcde2113
|
|
|
|
|
'auditlogs-for-everyone-20050702'.
|
|
|
|
|
|
|
|
|
|
Reorder the bosserver initialization steps to ensure that the log
|
|
|
|
|
directory has been created and is the current working directory, before
|
|
|
|
|
creating and opening the audit log.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14381
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f372ec041a83288a5d096360f0ad8589e4db666a)
|
|
|
|
|
|
|
|
|
|
Change-Id: I14a0a4a2a23c8e9b3b658d52511872ecaa4010af
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14444
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 2473cfb5b98a0226c79e25649cb5cc52b9aea09b
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Sat Oct 17 20:51:51 2020 -0500
|
|
|
|
|
|
|
|
|
|
bozo: Properly detect presence of -auditlog
|
|
|
|
|
|
|
|
|
|
cmd_OptionAsString returns non-zero if the given option _isn't_ given
|
|
|
|
|
(CMD_MISSING), so we need to call osi_audit_file only when
|
|
|
|
|
cmd_OptionAsString returns 0. Since commit
|
|
|
|
|
f6cdf71 (bozo: Use libcmd for command line options), this causes
|
|
|
|
|
bosserver to complain on startup if no -auditlog was given:
|
|
|
|
|
|
|
|
|
|
$ bosserver
|
|
|
|
|
Warning: auditlog (null) not writable, ignored.
|
|
|
|
|
|
|
|
|
|
To fix this, skip calling osi_audit_file if -auditlog was not given.
|
|
|
|
|
|
|
|
|
|
While we're changing this anyway, change our processing of our
|
|
|
|
|
audit-related options to more closely match what other daemons do,
|
|
|
|
|
like ptserver or viced, so it's easier to see if we're doing the right
|
|
|
|
|
thing. That is, just call cmd_OptionAsString() without a conditional,
|
|
|
|
|
and just test if auditFileName is non-NULL later on, after options
|
|
|
|
|
processing.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14402
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 87041d676c93dfe35a085b9b5aaa73e74c08bc90)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic05e5453c28b4c408300ea35439a519adc282486
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14443
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 633712a321f4cf51ffc6f97d2f9fabbb59b32a09
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Aug 21 12:53:30 2020 -0600
|
|
|
|
|
|
|
|
|
|
bozo: Use libcmd for command line options
|
|
|
|
|
|
|
|
|
|
Update bosserver to use libcmd for command line parsing.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13845
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit f6cdf7165b4e66772ee06314658b7c209928d611)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8fdf27d099f81c08a37db728846bd7596a8cf62e
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14442
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit de0ec465625f18668325dfbe29337650ed98b560
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Fri Oct 28 18:12:19 2016 -0400
|
|
|
|
|
|
|
|
|
|
afs: prevent double release of global lock afs_xvcb
|
|
|
|
|
|
|
|
|
|
afs_GetServer calls ReleaseWriteLock(&afs_xvcb) twice within a few
|
|
|
|
|
lines. The second one is spurious.
|
|
|
|
|
|
|
|
|
|
Commits b18653de7ae90491c2e75f4a98410581655d776c 'xserver lock order
|
|
|
|
|
violation' and f2bf60ed4f1323cd6f74f2f01114f7e4f714db53 'xvcb lock order
|
|
|
|
|
violation' were written by the same author at the same time and
|
|
|
|
|
apparently were victims of a bad merge.
|
|
|
|
|
|
|
|
|
|
Discovered during a lock audit project as a panic during afsd startup:
|
|
|
|
|
|
|
|
|
|
assertion failed: (&afs_xvcb)->excl_locked == WRITE_LOCK, file:
|
|
|
|
|
/home/mvitale/src/sna-openafs/src/afs/afs_server.c, line: 2089
|
|
|
|
|
|
|
|
|
|
afs_GetServer is called frequently by many threads and so this bug could
|
|
|
|
|
easily have released another thread's write lock on afs_xvcb.
|
|
|
|
|
|
|
|
|
|
Remove the spurious second release.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14411
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit e8702e6a615a160cdbe464f76bd6f100667720d2)
|
|
|
|
|
|
|
|
|
|
Change-Id: I3165a63e774296b97e09c374b068b012224776e1
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14441
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit b33c832facc53ff966071fd3ff0e5d6b33deb9cb
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Sep 18 19:45:10 2017 -0400
|
|
|
|
|
|
|
|
|
|
stats: incorrect clock square algorithm
|
|
|
|
|
|
|
|
|
|
Since the original IBM code import, OpenAFS has an algorithm for
|
|
|
|
|
squaring clock values, implemented identically in three different
|
|
|
|
|
places. This algorithm does not account correctly for microsecs
|
|
|
|
|
overflow into seconds, resulting in incorrect "sum-of-squares" values
|
|
|
|
|
for queue and execution time in several OpenAFS performance utilities.
|
|
|
|
|
|
|
|
|
|
Specifically, this code:
|
|
|
|
|
|
|
|
|
|
t1.tv_usec += (2 * t2.tv_sec * t2.tv_usec) % 1000000 \
|
|
|
|
|
+ (t2.tv_usec / 1000)*(t2.tv_usec / 1000) \
|
|
|
|
|
+ 2 * (t2.tv_usec / 1000) * (t2.tv_usec % 1000) / 1000 \
|
|
|
|
|
+ (((t2.tv_usec % 1000) > 707) ? 1 : 0); \
|
|
|
|
|
|
|
|
|
|
Can allow for the tv_usec field to be increased by a theoretical max
|
|
|
|
|
of around:
|
|
|
|
|
|
|
|
|
|
t1.tv_usec += 999998 \
|
|
|
|
|
+ 999*999 \
|
|
|
|
|
+ 2 * 999 * 999 / 1000 \
|
|
|
|
|
+ 1; \
|
|
|
|
|
|
|
|
|
|
Or:
|
|
|
|
|
|
|
|
|
|
t1.tv_usec += 1999996; \
|
|
|
|
|
|
|
|
|
|
If t1.tv_usec is already 999999, after this calculation its value
|
|
|
|
|
could be as high as 2999995. So just checking once if t1.tv_usec is
|
|
|
|
|
over 1000000 is not sufficient, since the resulting value (1999995) is
|
|
|
|
|
still over 1000000.
|
|
|
|
|
|
|
|
|
|
Correct all implementations by repeatedly checking if tv_usec is over
|
|
|
|
|
1000000 after the above calculation:
|
|
|
|
|
|
|
|
|
|
macro affected utility
|
|
|
|
|
===================== ============================
|
|
|
|
|
afs_stats_SquareAddTo xstat_cm_test
|
|
|
|
|
fs_stats_SquareAddTo xstat_fs_test
|
|
|
|
|
clock_AddSq rxstat_get_process and _peer
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14376
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit e1e5df918fee00d4d9152c31c24cc1e7f23b71a6)
|
|
|
|
|
|
|
|
|
|
Change-Id: I4055ed61311ed7d6ac435b8660d5b7c55f467699
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14440
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 489308de9f62a3f881cd5f89d648c168a488c4d7
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Sep 28 16:35:38 2020 -0400
|
|
|
|
|
|
|
|
|
|
rxstats: correctly report vlserver VL_* RPC stats
|
|
|
|
|
|
|
|
|
|
Since the original IBM code import, rxstat_get_process and
|
|
|
|
|
rxstat_get_peer have reported vlserver VL_* RPC stats as for the
|
|
|
|
|
"volserver interface".
|
|
|
|
|
|
|
|
|
|
Correct this to read "vlserver interface".
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14375
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit e985d43d99d93172b5608a3c73fd3201d3b3a212)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ifbbe4df8ede22b287ab7c67d20e9ccd951367765
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14439
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ffc5b608ab3e99d654561b1a3f4b3a873a6af1c0
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Sep 28 15:40:34 2020 -0400
|
|
|
|
|
|
|
|
|
|
rxstats: correctly distinguish client and server stats
|
|
|
|
|
|
|
|
|
|
Commit d3eaa39da3693bba708fa2fa951568009e929550 'rx: Make the rx_call
|
|
|
|
|
structure private' inadvertently caused all rxstats (aka rpcstats) to be
|
|
|
|
|
recorded as client stats by hardcoding the value for isServer to 1.
|
|
|
|
|
|
|
|
|
|
Therefore, when peer or process rxstats are enabled for a OpenAFS
|
|
|
|
|
component, the rxstat_get_process and rxstat_get_peer utilities will
|
|
|
|
|
erroneously report both client and server stats as "accessed as a client".
|
|
|
|
|
|
|
|
|
|
This is particularly problematic for ubik VOTE_* and DISK_* RPC stats,
|
|
|
|
|
for which a given ubik server may be both client and server over time.
|
|
|
|
|
In this case, both client and server stats are conflated into the same
|
|
|
|
|
"accessed as a client" counters.
|
|
|
|
|
|
|
|
|
|
Instead, properly pass the value of isServer from
|
|
|
|
|
rx_RecordCallStatistics through to rxi_IncrementTimeAndCount.
|
|
|
|
|
|
|
|
|
|
Note to maintainers:
|
|
|
|
|
This bug is only in master and all 1.8.x releases; no 1.6.x releases are
|
|
|
|
|
affected.
|
|
|
|
|
|
|
|
|
|
Note:
|
|
|
|
|
Confusingly, isServer=1 indicates client stats and isServer=0 indicates
|
|
|
|
|
server stats. However, this is a quirk of the original implementation
|
|
|
|
|
and wire format of the RXSTATS_* RPCs and cannot be changed. isServer
|
|
|
|
|
is actually shorthand for "remote is server"; thus all RPC client stubs
|
|
|
|
|
record their rxstats with isServer == 1, and all RPC server stubs record
|
|
|
|
|
their rxstats with isServer == 0.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14374
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 18c345a9f8ee9b2ff73f23dae68757b19d3283f5)
|
|
|
|
|
|
|
|
|
|
Change-Id: I6d41d015803967363f3702f5dda7083ccbf7508a
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14438
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5d863b4f6e817b1cc2615265c7747e17a2037ae6
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Oct 26 12:19:19 2020 -0500
|
|
|
|
|
|
|
|
|
|
afs: Log pid with disk cache read errors
|
|
|
|
|
|
|
|
|
|
Log the current pid (and procname) when we complain about an error
|
|
|
|
|
when reading from CacheItems in afs_UFSGetDSlot. These errors can
|
|
|
|
|
result in confusing situations, so it can be helpful to know at least
|
|
|
|
|
what process saw the error.
|
|
|
|
|
|
|
|
|
|
Our logic for logging this information is getting a bit large, so also
|
|
|
|
|
move this to a new function, LogCacheError.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14416
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 1caeeea43c038011306dd1c391680c24fc318e3d)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia159eeea47191f71fc5892cbc54af79b55bf4828
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14437
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c7c8f75ebf812f1943aa9efd76dde26be99c96b1
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Nov 12 15:06:09 2018 -0600
|
|
|
|
|
|
|
|
|
|
vlserver: Return VL_DBBAD on unhash failure
|
|
|
|
|
|
|
|
|
|
If we try to delete a vlentry, and the vlentry cannot be found on one
|
|
|
|
|
of its hash chains, we cannot unhash the vlentry properly and the
|
|
|
|
|
operation fails with VL_NOENT. This results in the following error
|
|
|
|
|
messages to the user:
|
|
|
|
|
|
|
|
|
|
$ vos delentry 123456
|
|
|
|
|
Could not delete entry for volume 123456
|
|
|
|
|
You must specify a RW volume name or ID (the entire VLDB entry will be deleted)
|
|
|
|
|
VLDB: no such entry
|
|
|
|
|
Deleted 0 VLDB entries
|
|
|
|
|
|
|
|
|
|
This is confusing, because VL_NOENT can also occur if the user
|
|
|
|
|
specifies a volume that does actually not exist. This situation is
|
|
|
|
|
indicative of database corruption, usually because of a ubik
|
|
|
|
|
transaction that was only half-applied, or because of other ubik bugs
|
|
|
|
|
in the past.
|
|
|
|
|
|
|
|
|
|
The situation can only really be fixed by repairing the database, so
|
|
|
|
|
return VL_DBBAD in this case instead, to more clearly indicate that
|
|
|
|
|
something is wrong with the database, and not a problem with the
|
|
|
|
|
arguments the caller provided.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13384
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit fd6add0aca03a5a17f7109c785b6027a76f13cdf)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ib1cf72b7f0d6c65e37c13f00d6f6049a3049b644
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14436
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 751aa775da1c76a495cf1b0754185cb4cdc23fbe
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Nov 12 14:41:44 2018 -0600
|
|
|
|
|
|
|
|
|
|
vlserver: Add VL_DBBAD error code
|
|
|
|
|
|
|
|
|
|
The VL_ error table currently doesn't have an error code to indicate
|
|
|
|
|
that an operation cannot succeed because the database is corrupted.
|
|
|
|
|
There are a few error codes for specific cases of errors that are
|
|
|
|
|
probably the result of corruption (like VL_IDALREADYHASHED, or
|
|
|
|
|
VL_EMPTY), but these are only for specific cases and indicate rather
|
|
|
|
|
low-level internal problems.
|
|
|
|
|
|
|
|
|
|
There are some instances where the real problem preventing an
|
|
|
|
|
operation from succeeding is that the database is just corrupt or
|
|
|
|
|
inconsistent in some way, and the administrator must repair the
|
|
|
|
|
database before it can succeed. And we currently don't have any way of
|
|
|
|
|
indicating that situation via an error code.
|
|
|
|
|
|
|
|
|
|
So, introduce the VL_DBBAD code, to indicate this situation. Error
|
|
|
|
|
codes already exist in other tables for similar situations, such as
|
|
|
|
|
PRDBBAD, and KADATABASEINCONSISTENT.
|
|
|
|
|
|
|
|
|
|
This commit does not use the new error code anywhere; we just
|
|
|
|
|
introduce it into the VL_ error table, so comerr-using applications
|
|
|
|
|
will be able to interpret it.
|
|
|
|
|
|
|
|
|
|
Note that the VL_DBBAD error code has been recognized by the AFS
|
|
|
|
|
Assigned Numbers Registry as recorded in the ticket history of
|
|
|
|
|
<https://rt.central.org/rt/Ticket/Display.html?id=134817>
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13383
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 878d27c845157bb64c32bbd6c3cacce17c681d70)
|
|
|
|
|
|
|
|
|
|
Change-Id: I93b4916890ec9e4f6f5453ecf28c8a8ce04af7ea
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14435
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 27a2cdadd221d4a870d5ce9b936bb103c605cafb
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Nov 12 15:01:18 2018 -0600
|
|
|
|
|
|
|
|
|
|
vlserver: Warn when we cannot unhash deleted entry
|
|
|
|
|
|
|
|
|
|
If we are trying to delete an entry from the vldb, we fail with
|
|
|
|
|
VL_NOENT if we cannot find the given entry on one of its hash chains.
|
|
|
|
|
This is indicative of corruption in the vldb (since we have an entry
|
|
|
|
|
not on a hash chain), but we don't really indicate this clearly. There
|
|
|
|
|
are no log messages, and the user running 'vos' only sees an error
|
|
|
|
|
like this:
|
|
|
|
|
|
|
|
|
|
$ vos delentry 123456
|
|
|
|
|
Could not delete entry for volume 123456
|
|
|
|
|
You must specify a RW volume name or ID (the entire VLDB entry will be deleted)
|
|
|
|
|
VLDB: no such entry
|
|
|
|
|
Deleted 0 VLDB entries
|
|
|
|
|
|
|
|
|
|
Which is the exact same error message if the user tries to delete a
|
|
|
|
|
volume that does not actually exist.
|
|
|
|
|
|
|
|
|
|
We currently do not have an error code that clearly says that the
|
|
|
|
|
database appears corrupted and needs to be fixed, but we can at least
|
|
|
|
|
log an error in VLLog for this case, to give the administrator a
|
|
|
|
|
chance at fixing the situation. So, log a message in this situation.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13382
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 3e3fce24da31a31ca9a3f4ad356c4e4eaf0ad897)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia76c5d7a19c3d21a89fc502e14922672afd8a84f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14434
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 757b90ef33f7d5f00c4b1990c2300f6502a3b74a
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Thu Sep 3 23:57:34 2020 +0000
|
|
|
|
|
|
|
|
|
|
volser: take RO volume offline during convertROtoRW
|
|
|
|
|
|
|
|
|
|
The vos convertROtoRW command converts a RO volume into a RW volume.
|
|
|
|
|
Unfortunately, the RO volume is not checked out from the fileserver
|
|
|
|
|
during this process. As a result, accesses to the volume being converted
|
|
|
|
|
can leave volume objects in an inconsistent state.
|
|
|
|
|
|
|
|
|
|
Moreover, consider the following scenario:
|
|
|
|
|
|
|
|
|
|
1. Create a volume on host_b and add replicas on host_a and host_b.
|
|
|
|
|
|
|
|
|
|
$ vos create host_b a vol_1
|
|
|
|
|
$ vos addsite host_b a vol_1
|
|
|
|
|
$ vos addiste host_a a vol_1
|
|
|
|
|
|
|
|
|
|
2. Mount the volume:
|
|
|
|
|
|
|
|
|
|
$ fs mkmount /afs/.mycell/vol_1 vol_1
|
|
|
|
|
$ vos release vol_1
|
|
|
|
|
$ vos release root.cell
|
|
|
|
|
|
|
|
|
|
3. Shutdown dafs on host_b:
|
|
|
|
|
|
|
|
|
|
$ bos shutdown host_b dafs
|
|
|
|
|
|
|
|
|
|
4. Remove RO reference to host_b from the vldb:
|
|
|
|
|
|
|
|
|
|
$ vos remsite host_b a vol_1
|
|
|
|
|
|
|
|
|
|
5. Attach the RO copy by touching it:
|
|
|
|
|
|
|
|
|
|
$ fs flushall
|
|
|
|
|
$ ls /afs/mycell/vol_1
|
|
|
|
|
|
|
|
|
|
6. Convert RO copy to RW:
|
|
|
|
|
|
|
|
|
|
$ vos convertROtoRW host_a a vol_1
|
|
|
|
|
|
|
|
|
|
Notice that FSYNC_com_VolDone fails silently (FSYNC_BAD_STATE), leaving
|
|
|
|
|
the volume object for the RO copy set as VOL_STATE_ATTACHED (on success,
|
|
|
|
|
this volume should be set as VOL_STATE_DELETED).
|
|
|
|
|
|
|
|
|
|
7. Add replica on host_a:
|
|
|
|
|
|
|
|
|
|
$ vos addsite host_a a vol_1
|
|
|
|
|
|
|
|
|
|
8. Wait until the "inUse" flag of the RO entry is cleared (or force this
|
|
|
|
|
to happen by attaching multiple volumes).
|
|
|
|
|
|
|
|
|
|
9. Release the volume:
|
|
|
|
|
|
|
|
|
|
$ vos release vol_1
|
|
|
|
|
|
|
|
|
|
Failed to start transaction on volume 536870922
|
|
|
|
|
Volume not attached, does not exist, or not on line
|
|
|
|
|
Error in vos release command.
|
|
|
|
|
Volume not attached, does not exist, or not on line
|
|
|
|
|
|
|
|
|
|
Notice that this happens because we cannot mark an attached volume as
|
|
|
|
|
destroyed (FSYNC_com_VolDone).
|
|
|
|
|
|
|
|
|
|
To avoid the problem mentioned above and to prevent accesses to the
|
|
|
|
|
volume being converted, take the RO volume offline before converting it
|
|
|
|
|
to RW.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14340
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 45a69b61133ae8ca8e49a002ddc1895386796d51)
|
|
|
|
|
|
|
|
|
|
Change-Id: I94e08d09d5044f3c0cac7c700f26ec6e7b111d6f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14433
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 199d485ee862c21c43008e1fd4b226517d20068c
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Thu Sep 3 20:11:34 2020 +0000
|
|
|
|
|
|
|
|
|
|
volser: Close dirp on error in ConvertROtoRW
|
|
|
|
|
|
|
|
|
|
Currently, if SAFSVolConvertROtoRWvolume cannot create a new transaction
|
|
|
|
|
for the volume to be converted, it returns without closing the directory
|
|
|
|
|
stream opened by it. To prevent this leak, go through a new 'goto done'
|
|
|
|
|
destructor if NewTrans fails.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14342
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f18b58f8227df2ab420d69eb5937a99f747c7692)
|
|
|
|
|
|
|
|
|
|
Change-Id: I81b5f7a330548eaecba1acfdc7231d2a953a365b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14432
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit cc6b15564eaf94bcb41f930f396f1c1e4804fa18
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Thu Apr 16 16:29:09 2020 -0400
|
|
|
|
|
|
|
|
|
|
vlserver: fix missing read-only entries from ListAttributesN2
|
|
|
|
|
|
|
|
|
|
The ListAttributesN2() RPC can fail to list read-only entries under
|
|
|
|
|
certain circumstances. This RPC is used by the `vos listvldb` command to
|
|
|
|
|
retrieve vldb entries (unless the -name option is given). The `vos
|
|
|
|
|
listvldb` command fails to list volume entries when run with the
|
|
|
|
|
'-server' option for volumes that have read-only replicas, but have not
|
|
|
|
|
been released.
|
|
|
|
|
|
|
|
|
|
Consider the following example volume:
|
|
|
|
|
|
|
|
|
|
$ vos create fs1.example.com a test
|
|
|
|
|
$ vos addsite fs1.example.com a test
|
|
|
|
|
$ vos addsite fs2.example.com a test
|
|
|
|
|
$ vos listvldb
|
|
|
|
|
...
|
|
|
|
|
test
|
|
|
|
|
RWrite: 536870921
|
|
|
|
|
number of sites -> 3
|
|
|
|
|
server fs1.example.com partition /vicepa RW Site
|
|
|
|
|
server fs1.example.com partition /vicepa RO Site -- Not released
|
|
|
|
|
server fs2.example.com partition /vicepa RO Site -- Not released
|
|
|
|
|
|
|
|
|
|
`vos listvldb` fails to find the volume when the search is limited to
|
|
|
|
|
server 'fs2':
|
|
|
|
|
|
|
|
|
|
$ vos listvldb -server fs2.example.com
|
|
|
|
|
VLDB entries for server fs2.example.com
|
|
|
|
|
Total entries: 0
|
|
|
|
|
|
|
|
|
|
Instead of the expected results:
|
|
|
|
|
|
|
|
|
|
$ vos listvldb -server fs2.example.com
|
|
|
|
|
test
|
|
|
|
|
RWrite: 536870921
|
|
|
|
|
number of sites -> 3
|
|
|
|
|
server fs1.example.com partition /vicepa RW Site
|
|
|
|
|
server fs1.example.com partition /vicepa RO Site -- Not released
|
|
|
|
|
server fs2.example.com partition /vicepa RO Site -- Not released
|
|
|
|
|
|
|
|
|
|
This situation makes it difficult to remove old server addresses from
|
|
|
|
|
the vldb. In this situation, 'vos remaddrs' and 'vos changeaddr
|
|
|
|
|
-remove' commands will complain the server addresses are still in use by
|
|
|
|
|
volume entries, however running 'vos listvldb -server' will not show
|
|
|
|
|
which volumes entries are in use.
|
|
|
|
|
|
|
|
|
|
The entries are not listed for unreleased volumes because the
|
|
|
|
|
ListAttributesN2() RPC is currently checking the volume VLF_ROEXISTS
|
|
|
|
|
flag, instead of the server site flags (serverFlags) to determine when
|
|
|
|
|
the entry is a read-only site. The volume VLF_ROEXISTS flag is set when
|
|
|
|
|
a volume is released.
|
|
|
|
|
|
|
|
|
|
To fix this, make ListAttributesN2 check for the VLSF_ROVOL site flag,
|
|
|
|
|
instead of the VLF_ROEXISTS entry flag.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14154
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 904f5bd398db248c11b30ef7e360ce5141dcd1f3)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iea4bbbc9fb0c42ac5e109ee94688436fdcc42a67
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14427
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit b7ddd1262117332871e7cd537aa6065b78a41bb2
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jun 18 21:16:09 2020 -0500
|
|
|
|
|
|
|
|
|
|
LINUX: Close cacheFp if no ->readpage in fastpath
|
|
|
|
|
|
|
|
|
|
In afs_linux_readpage_fastpath, if we discover that our disk cache fs
|
|
|
|
|
has no ->readpage function, we'll 'goto out', but we never close our
|
|
|
|
|
cacheFp. To make sure we close it, add a filp_close() call to the
|
|
|
|
|
'goto out' cleanup code.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14252
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit f9d20c631d7280ce00125a1208331931a6e3f31c)
|
|
|
|
|
|
|
|
|
|
Change-Id: If409c50e5515cd80f77171a90fd96e2d3fb575a8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14421
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 610e50b70c666f72a6d8b02e1759ac1dece10dd3
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Fri Aug 28 11:24:10 2020 -0400
|
|
|
|
|
|
|
|
|
|
bozo: Log each dir and file with bad access rights
|
|
|
|
|
|
|
|
|
|
The bosserver directory and file access check stops after finding one
|
|
|
|
|
directory or file with incorrect permissions or owner. A log message is
|
|
|
|
|
written for this first one found, but more than one directory or file
|
|
|
|
|
may have incorrect access rights.
|
|
|
|
|
|
|
|
|
|
Instead check all of them so the bosserver logs a warning message for
|
|
|
|
|
each incorrect director or file permission found. This should make it
|
|
|
|
|
easier to fix all of the file permission problems at once.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14330
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 47d809d4434f6724d0b6fbe2dcb54749486eeddb)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ieffac018628e1b3a1ad930b72312f596ee452b43
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14420
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 712ef18ac1902fabc540883827b1925769e0a050
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Fri Aug 28 11:23:00 2020 -0400
|
|
|
|
|
|
|
|
|
|
bozo: Add KeyFileExt and rxkad.keytab to access rights check
|
|
|
|
|
|
|
|
|
|
When the KeyFileExt and rxkad.keytab were added to OpenAFS, they were
|
|
|
|
|
not added to the bosserver's access rights check. Add these files to the
|
|
|
|
|
bosserver access checks, with the same access rights needed for the
|
|
|
|
|
original KeyFile.
|
|
|
|
|
|
|
|
|
|
Also, add the full path for KeyFileExt to the dirpath package (not just
|
|
|
|
|
the filename), which was not done when the KeyFileExt was introduced.
|
|
|
|
|
This is needed to perform the access checks.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14329
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a6b14ea90259fbc4ead62f5f4288e435801db81e)
|
|
|
|
|
|
|
|
|
|
Change-Id: I94d9027f9455ee8a8f307864ffa49debaf579e71
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14419
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 62beb979b4e43c361db54fbf3084f876fd2c11da
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Jul 16 16:53:34 2018 -0500
|
|
|
|
|
|
|
|
|
|
afs: Skip bulkstat if stat cache looks full
|
|
|
|
|
|
|
|
|
|
Currently, afs_lookup() will try to prefetch dir entries for normal
|
|
|
|
|
dirs via bulkstat whenever multiple pids are reading that dir.
|
|
|
|
|
However, if we already have a lot of vcaches, ShakeLooseVCaches may be
|
|
|
|
|
struggling to limit the vcaches we already have. Entering
|
|
|
|
|
afs_DoBulkStat can make this worse, since we grab afs_xvcache
|
|
|
|
|
repeatedly, we may kick out other vcaches, and we'll possibly create
|
|
|
|
|
30 new vcaches that may not even be used before they're evicted.
|
|
|
|
|
|
|
|
|
|
To try to avoid this, skip running afs_DoBulkStat if it looks like the
|
|
|
|
|
stat cache is really full.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13256
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 9ff45e73cf3d91d12f09e108e1267e37ae842c87)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1b84ab3bb918252e8db5e4379730a517181bc9d8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14400
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 28794011085d35b293d5e829adadb372b2a2b3fd
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Jul 16 16:44:14 2018 -0500
|
|
|
|
|
|
|
|
|
|
afs: Log warning when we detect too many vcaches
|
|
|
|
|
|
|
|
|
|
Currently, afs_ShakeLooseVCaches has a kind of warning that is logged
|
|
|
|
|
when we fail to free up any vcaches. This information can be useful to
|
|
|
|
|
know, since it may be a sign that users are trying to access way more
|
|
|
|
|
files than our configured vcache limit, hindering performance as we
|
|
|
|
|
constantly try to evict and re-create vcaches for files.
|
|
|
|
|
|
|
|
|
|
However, the current warning is not clear at all to non-expert users,
|
|
|
|
|
and it can only occur for non-dynamic vcaches (which is uncommon these
|
|
|
|
|
days).
|
|
|
|
|
|
|
|
|
|
To improve this, try to make a general determination if it looks like
|
|
|
|
|
the stat cache is "stressed", and log a message if so after
|
|
|
|
|
afs_ShakeLooseVCaches runs (for all platforms, regardless of dynamic
|
|
|
|
|
vcaches). Also try to make the message a little more user-friendly,
|
|
|
|
|
and only log it (at most) once per 4 hours.
|
|
|
|
|
|
|
|
|
|
Determining whether the stat cache looks stressed or not is difficult
|
|
|
|
|
and arguably subjective (especially for dynamic vcaches). This commit
|
|
|
|
|
draws a few arbitrary lines in the sand to make the decision, so at
|
|
|
|
|
least something will be logged in the cases where users are constantly
|
|
|
|
|
accessing way more files than our configured vcache limit.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13255
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 0532f917f29bdb44f4933f9c8a6c05c7fecc6bbb)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic7260f276e00f3e34541207955df841d4ed27844
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14399
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 47ab46e1e9fe56b5bf8147eab0b652e74078cbe7
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Jul 16 16:08:13 2018 -0500
|
|
|
|
|
|
|
|
|
|
afs: Split out bulkstat conditions into a function
|
|
|
|
|
|
|
|
|
|
Our current if() statement for determining whether we should run
|
|
|
|
|
afs_DoBulkStat to prefetch dir entries is a bit large, and grows over
|
|
|
|
|
time. Split this logic out into a separate function to make it easier
|
|
|
|
|
to maintain, and add some comments to help explain each condition.
|
|
|
|
|
|
|
|
|
|
This commit should have no visible effects; it's just code
|
|
|
|
|
reorganization.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13254
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 19cd454f11997d286bc415e9bc9318a31f73e2c6)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ida322c518d11787fd794df7534135fbc2dec2935
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14398
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 738eb3e4976947657f877ec107d517d63a66a907
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Sun Jul 8 15:00:02 2018 -0500
|
|
|
|
|
|
|
|
|
|
afs: Bound afs_DoBulkStat dir scan
|
|
|
|
|
|
|
|
|
|
Currently, afs_DoBulkStat will scan the entire directory blob, looking
|
|
|
|
|
for entries to stat. If all or almost all entries are already stat'd,
|
|
|
|
|
we'll scan through the entire directory, doing nontrivial work on
|
|
|
|
|
each entry (we grab afs_xvcache, at least). All of this work is pretty
|
|
|
|
|
pointless, since the entries are already cached and so we won't do
|
|
|
|
|
anything. If many processes are trying to acquire afs_xvcache, this
|
|
|
|
|
can contribute to performance issues.
|
|
|
|
|
|
|
|
|
|
To avoid this, provide a constant bound on the number of entries we'll
|
|
|
|
|
search through: nentries * 4. The current arbitrary limits cap
|
|
|
|
|
nentries at 30, so this means we're capping the afs_DoBulkStat search
|
|
|
|
|
to 120 entries.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13253
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit ba8b92401b8cb2f5a5306313c2702cb36cba083c)
|
|
|
|
|
|
|
|
|
|
Change-Id: Icf82f88328621cb5a9e0ad52f873b8a7d74b1f3a
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14397
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit fbba8e4cbf00f32181b5075e8d7a876cccd2a046
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jul 13 17:40:36 2017 -0500
|
|
|
|
|
|
|
|
|
|
afs: Avoid needless W-locks for afs_FindVCache
|
|
|
|
|
|
|
|
|
|
The callers of afs_FindVCache must hold at least a read lock on
|
|
|
|
|
afs_xvcache; some hold a shared or write lock (and set IS_SLOCK or
|
|
|
|
|
IS_WLOCK in the given flags). Two callers (afs_EvalFakeStat_int and
|
|
|
|
|
afs_DoBulkStat) currently hold a write lock, but neither of them need
|
|
|
|
|
to.
|
|
|
|
|
|
|
|
|
|
In the optimal case, where afs_FindVCache finds the given vcache, this
|
|
|
|
|
means that we unnecessarily hold a write lock on afs_xvcache. This can
|
|
|
|
|
impact performance, since afs_xvcache can be a very frequently
|
|
|
|
|
accessed lock (a simple operation like afs_PutVCache briefly holds a
|
|
|
|
|
read lock, for example).
|
|
|
|
|
|
|
|
|
|
To avoid this, have afs_DoBulkStat hold a shared lock on afs_xvcache,
|
|
|
|
|
upgrading to a write lock when needed. afs_EvalFakeStat_int doesn't
|
|
|
|
|
ever need a write lock at all, so just convert it to a read lock.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12656
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 6c808e05adb0609e02cd61e3c6c4c09eb93c1630)
|
|
|
|
|
|
|
|
|
|
Change-Id: Id517d1098b4c3a02db646b2a74535f77cb684ec3
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14396
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5c476b91fd2259e9c34070be8ba201dd471ad974
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Jul 13 17:40:21 2017 -0500
|
|
|
|
|
|
|
|
|
|
afs: Change VerifyVCache2 calls to VerifyVCache
|
|
|
|
|
|
|
|
|
|
afs_VerifyVCache is a macro that (on most platforms) effectively
|
|
|
|
|
expands to:
|
|
|
|
|
|
|
|
|
|
if ((avc->f.states & CStatd)) {
|
|
|
|
|
return 0;
|
|
|
|
|
} else {
|
|
|
|
|
return afs_VerifyVCache2(...);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Some callers call afs_VerifyVCache2 directly, since they already check
|
|
|
|
|
for CStatd for other reasons. A few callers currently call
|
|
|
|
|
afs_VerifyVCache2, but without guaranteeing that CStatd is not set.
|
|
|
|
|
Specifically, in afs_getattr and afs_linux_VerifyVCache, CStatd could
|
|
|
|
|
be set while afs_CreateReq drops GLOCK. And in afs_linux_readdir,
|
|
|
|
|
CStatd could be cleared at multiple different points before the
|
|
|
|
|
VerifyVCache call.
|
|
|
|
|
|
|
|
|
|
This can result in afs_VerifyVCache2 acquiring a write-lock on the
|
|
|
|
|
vcache, even when CStatd is already set, which is an unnecessary
|
|
|
|
|
performance hit.
|
|
|
|
|
|
|
|
|
|
To avoid this, change these call sites to use afs_VerifyVCache instead
|
|
|
|
|
of calling afs_VerifyVCache2 directly, which skips the write lock when
|
|
|
|
|
CStatd is already set.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12655
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a05d5b7503e466e18f5157006c1de2a2f7d019f7)
|
|
|
|
|
|
|
|
|
|
Change-Id: I05bdcb7f10930ed465c24a8d7e51077a027b1a4b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14395
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 150ee65f286409e37fcf94807dbeaf4b79ab0769
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Sun Apr 26 17:26:02 2020 -0500
|
|
|
|
|
|
|
|
|
|
rx: Use _IsLast to check for last call in queue
|
|
|
|
|
|
|
|
|
|
Ever since commits 170dbb3c (rx: Use opr queues) and d9fc4890 (rx: Fix
|
|
|
|
|
test for end of call queue for LWP), rx_GetCall checks if the current
|
|
|
|
|
call is the last one on rx_incomingCallQueue by doing this:
|
|
|
|
|
|
|
|
|
|
opr_queue_IsEnd(&rx_incomingCallQueue, cursor)
|
|
|
|
|
|
|
|
|
|
But opr_queue_IsEnd checks if the given pointer is the _end_ of the
|
|
|
|
|
last; that is, if it's the end-of-list sentinel, not an item on the
|
|
|
|
|
actual list. Testing for the last item in a list is what
|
|
|
|
|
opr_queue_IsLast is for. This is the same convention that the old Rx
|
|
|
|
|
queues used, but 170dbb3c just accidentally replaced queue_IsLast with
|
|
|
|
|
opr_queue_IsEnd (instead of opr_queue_IsLast), and d9fc4890 copied the
|
|
|
|
|
mistake.
|
|
|
|
|
|
|
|
|
|
So because this is inside an opr_queue_Scan loop, opr_queue_IsEnd will
|
|
|
|
|
never be true, so we'll never enter this block of code (unless we are
|
|
|
|
|
the "fcfs" thread). This means that an incoming Rx call can get stuck
|
|
|
|
|
in the incoming call queue, if all of the following are true:
|
|
|
|
|
|
|
|
|
|
- The incoming call consists of more than 1 packet of incoming data.
|
|
|
|
|
|
|
|
|
|
- The incoming call "waits" when it comes in (that is, there are no
|
|
|
|
|
free threads or the service is over quota).
|
|
|
|
|
|
|
|
|
|
- The "fcfs" thread doesn't scan the incoming call queue (because it
|
|
|
|
|
is idle when the call comes in, but the relevant service is over
|
|
|
|
|
quota).
|
|
|
|
|
|
|
|
|
|
To fix this, just use opr_queue_IsLast here instead of
|
|
|
|
|
opr_queue_IsEnd.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14158
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit befc72749884c6752c7789479343ba48c7d5cea1)
|
|
|
|
|
|
|
|
|
|
Change-Id: If724245414798ae7a86dfa048cf99863317aef8e
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14394
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 12aed9ef2988a69187910bada5ba7325cb6144ab
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jul 21 18:48:51 2019 -0500
|
|
|
|
|
|
|
|
|
|
rx: Avoid osi_NetSend during rx shutdown
|
|
|
|
|
|
|
|
|
|
Commit 8d939c08 (rx: avoid nat ping during shutdown) added a call
|
|
|
|
|
to shutdown_rx() inside the DARWIN shutdown sequence, before the rx
|
|
|
|
|
socket was closed. From the commit message, it sounds like this was
|
|
|
|
|
done to avoid NAT pings from calling osi_NetSend during the shutdown
|
|
|
|
|
sequence after the rx socket was closed; calling shutdown_rx() before
|
|
|
|
|
closing the socket would cause any connections we had to be destroyed
|
|
|
|
|
first, avoiding that.
|
|
|
|
|
|
|
|
|
|
The problem with this is that this means shutdown_rx() is called when
|
|
|
|
|
osi_StopNetIfPoller is called, which is much earlier than some other
|
|
|
|
|
portions of the shutdown sequence; some of which may hold references
|
|
|
|
|
to e.g. rx connections. If we try to, for instance, destroy an rx
|
|
|
|
|
connection after shutdown_rx() is called, we could panic.
|
|
|
|
|
|
|
|
|
|
An earlier version of that commit (gerrit PS1) just tried to insert a
|
|
|
|
|
check before the relevant osi_NetSend call, making us just skip the
|
|
|
|
|
osi_NetSend if the shutdown sequence had been started. So to avoid the
|
|
|
|
|
above issue, try to implement that approach instead. And instead of
|
|
|
|
|
doing it just for NAT pings, we can do it for almost all osi_NetSend
|
|
|
|
|
calls (besides those involved in the shutdown sequence itself), by
|
|
|
|
|
checking this in rxi_NetSend. Also return an error (ESHUTDOWN) if we
|
|
|
|
|
skip the osi_NetSend call, so we're not completely silent about doing
|
|
|
|
|
so.
|
|
|
|
|
|
|
|
|
|
This means we also remove the call to shutdown_rx() inside DARWIN's
|
|
|
|
|
osi_StopNetIfPoller(). This allows us to interact with Rx objects
|
|
|
|
|
during more of the shutdown process in cross-platform code.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13718
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 9866511bb0a5323853e97e3ee92524198813776e)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie62c1a68d8a8889f7a8aa3eff3973c219b45a95c
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14393
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7f59989cf84df1e2077f4fcf5649c9624e79a5d2
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sun Jul 21 18:31:53 2019 -0500
|
|
|
|
|
|
|
|
|
|
rx: Introduce rxi_NetSend
|
|
|
|
|
|
|
|
|
|
Introduce a small wrapper around osi_NetSend, called rxi_NetSend. This
|
|
|
|
|
small wrapper allows future commits to change the code around our
|
|
|
|
|
osi_NetSend calls, without needing to change every single call site,
|
|
|
|
|
or every implementation of osi_NetSend.
|
|
|
|
|
|
|
|
|
|
Change most call sites to use rxi_NetSend, instead of osi_NetSend. Do
|
|
|
|
|
not change a few callers in the platform-specific kernel shutdown
|
|
|
|
|
sequence, since those call osi_NetSend for platform-specific reasons.
|
|
|
|
|
|
|
|
|
|
This commit on its own does not change any behavior with osi_NetSend;
|
|
|
|
|
it is just code reorganization.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13717
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 2a33a80f7026df6b5e47e42319c55d8b7155675a)
|
|
|
|
|
|
|
|
|
|
Change-Id: I6af8541953a582d044fb668eb4a91720536bc8e1
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14392
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 38f613f5e15552938cb425c68b22c166e35284be
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Oct 13 20:18:59 2020 -0500
|
|
|
|
|
|
|
|
|
|
ubik: Remove unused sampleName
|
|
|
|
|
|
|
|
|
|
The RPC-L type sampleName and related constant UMAXNAMELEN are not
|
|
|
|
|
referenced by anything, and have been unused since OpenAFS 1.0. Remove
|
|
|
|
|
the unused definitions.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14386
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 83ce8d41c68a5ebcc84132d77af9024c6d285e05)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1d6c583d9c630fc9704578ba3329132e16b3a803
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14401
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit f7374a883505aa34a3db34ddd1163367c544bb0c
|
|
|
|
|
Author: Andrew Deason <adeason@dson.org>
|
|
|
|
|
Date: Sat May 2 23:54:55 2020 -0500
|
|
|
|
|
|
|
|
|
|
afs: Drop GLOCK for RXAFS_GetCapabilities
|
|
|
|
|
|
|
|
|
|
We are hitting the net here; we certainly should not be holding
|
|
|
|
|
AFS_GLOCK while waiting for the server's response.
|
|
|
|
|
|
|
|
|
|
Found via FreeBSD WITNESS.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14181
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 44b7b93b593371bfdddd0be0ae603f4f8720f78b)
|
|
|
|
|
|
|
|
|
|
Change-Id: I186e08c89136cc3109fd2519bb0d2abbb52f9ba0
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14391
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 02fb067d3fded0eee5c9326c56e66b512a75d71c
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Mon Mar 23 09:46:05 2020 -0400
|
|
|
|
|
|
|
|
|
|
build: remove unused LINUX_PKGREL from configure.ac
|
|
|
|
|
|
|
|
|
|
This change removes the unused LINUX_PKGREL definition from the
|
|
|
|
|
configure.ac file.
|
|
|
|
|
|
|
|
|
|
Commit 6a27e228bac196abada96f34ca9cd57f32e31f5c converted the setting of
|
|
|
|
|
the RPM package version and release values in the openafs.spec file from
|
|
|
|
|
autoconf to the makesrpm.pl script. That commit left LINUX_PKGREL in
|
|
|
|
|
configure.ac because it was still referenced by the Debian packaging,
|
|
|
|
|
which was still in-tree at that time.
|
|
|
|
|
|
|
|
|
|
Commit ada9dba0756450993a8e57c05ddbcae7d1891582 removed the last trace
|
|
|
|
|
of the Debian packaging, but missed the removal of the LINUX_PKGREL.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14117
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 8ae4531c5720baff9e11e4b05706eab6c82de5f9)
|
|
|
|
|
|
|
|
|
|
Conflicts:
|
|
|
|
|
configure.ac
|
|
|
|
|
|
|
|
|
|
Change-Id: I69925f89c52aef32aea5bc308140936517b1aeb0
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14363
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 2f2cbff766650e7c25eb332d5385f4a3fca8676d
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Apr 20 13:03:15 2020 -0500
|
|
|
|
|
|
|
|
|
|
ubik: Avoid unlinking garbage during recovery
|
|
|
|
|
|
|
|
|
|
In urecovery_Interact, if any of our operations fail around
|
|
|
|
|
calling DISK_GetFile, we will jump to FetchEndCall and eventually
|
|
|
|
|
unlink 'pbuffer'. But if we failed before opening our .DB0.TMP file,
|
|
|
|
|
the contents of 'pbuffer' will not be initialized yet.
|
|
|
|
|
|
|
|
|
|
During most iterations of the recovery loop, the contents of 'pbuffer'
|
|
|
|
|
will be filled in from previous loops, and it should always stay the
|
|
|
|
|
same, so it's not a big problem. But if this is the first iteration of
|
|
|
|
|
the loop, the contents of 'pbuffer' may be stack garbage.
|
|
|
|
|
|
|
|
|
|
Solve this in two ways. To make sure we don't use garbage contents in
|
|
|
|
|
'pbuffer', memset the whole thing to zeroes at the beginning of
|
|
|
|
|
urecovery_Interact(). And then to make sure we're not reusing
|
|
|
|
|
'pbuffer' contents from previous iterations of the loop, also clear
|
|
|
|
|
the first character to NUL each time we arrive at this area of the
|
|
|
|
|
recovery code. And avoid unlinking anything if pbuffer starts with a
|
|
|
|
|
NUL.
|
|
|
|
|
|
|
|
|
|
Commit 44e80643 (ubik: Avoid unlinking garbage) fixes the same issue,
|
|
|
|
|
but only fixed it in the SDISK_SendFile codepath in remote.c.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14153
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 98b5ffb52117aefac5afb47b30ce9b87eb2fdebf)
|
|
|
|
|
|
|
|
|
|
Change-Id: I5cadb88e466ddd326ef1e4138d5b1bf89fdb27dc
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14365
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 8993e35578e4ae51dd5e8941f77c18bb975e51af
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Fri Sep 18 14:03:37 2020 -0600
|
|
|
|
|
|
|
|
|
|
WINNT: Make opr_threadname_set a no-op
|
|
|
|
|
|
|
|
|
|
We don't supply an implementation for opr_threadname_set for WINNT;
|
|
|
|
|
don't pretend that we do.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13817
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f895a9b51671ffdc920fd9b4284337c5b737a0ef)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie8df82550f5420e2b024dea29aae0e39e3ee506f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14369
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 045a97dfbc8dd6a2794b74e16f47984dc5f8eccf
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Fri Sep 18 12:11:36 2020 -0600
|
|
|
|
|
|
|
|
|
|
Move afs_pthread_setname_self to opr
|
|
|
|
|
|
|
|
|
|
Move the functionality in afs_pthread_setname_self from libutil to
|
|
|
|
|
opr, in a new function opr_threadname_set. This allows us to more
|
|
|
|
|
easily use the routine in more subsystems, since most code already
|
|
|
|
|
uses opr.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13655
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 9d28f7390332c92b3d9e863c6fe70c26db28b5ad)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic6bbb615bc3494a7a114a0f4cae711b65ebec111
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14368
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 41f4bb48741065da6a69ffcb05e451e5c7dac757
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Mon Aug 31 19:56:56 2020 +0000
|
|
|
|
|
|
|
|
|
|
Revert "vos: take RO volume offline during convertROtoRW"
|
|
|
|
|
|
|
|
|
|
This reverts commit 32d35db64061e4102281c235cf693341f9de9271. While that
|
|
|
|
|
commit did fix the mentioned problem, depending on "vos" to set the
|
|
|
|
|
volume to be converted as "out of service" is not ideal. Instead, this
|
|
|
|
|
volume should be set as offline by the SAFSVolConvertROtoRWvolume RPC,
|
|
|
|
|
executed on the volume server.
|
|
|
|
|
|
|
|
|
|
The proper fix for this problem will be introduced by another commit.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14339
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 85893ac3df0c2cb48776cf1203ec200507b6ce7d)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie125d2dae1301ca5a4f8323099e6e42bc57b6d28
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14361
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 29cdc0af10cb2a0f4cb4d1b05e72d6f066a1a7a5
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Apr 15 05:33:00 2020 -0500
|
|
|
|
|
|
|
|
|
|
LINUX: Always crref after _settok_setParentPag
|
|
|
|
|
|
|
|
|
|
Commit b61eac78 (Linux: setpag() may replace credentials) changed
|
|
|
|
|
PSetTokens2 to call crref() after _settok_setParentPag(), since
|
|
|
|
|
changing the parent PAG may change our credentials structure. But that
|
|
|
|
|
commit did not update the old pioctl PSetTokens, so -setpag
|
|
|
|
|
functionality remained broken on Linux for utilities that called the
|
|
|
|
|
old pioctl ('klog' is one such utility).
|
|
|
|
|
|
|
|
|
|
To fix this, we could copy the same code from PSetTokens2 into
|
|
|
|
|
PSetTokens. But instead just move this code into _settok_setParentPag
|
|
|
|
|
itself, to avoid code duplication. This commit also refactors
|
|
|
|
|
_settok_setParentPag a little to make the platform-specific ifdefs a
|
|
|
|
|
little easier to read through.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14147
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 8002a46125e8224ba697c194edba5ad09e4cfc44)
|
|
|
|
|
|
|
|
|
|
Change-Id: I6a9d10428fe470cb38e3ca669f273dde0fa9c875
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14328
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 9553128008c7656d78759aa685a574906d352f3c
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Apr 15 05:33:00 2020 -0500
|
|
|
|
|
|
|
|
|
|
LINUX: Copy session keys to parent in SetToken
|
|
|
|
|
|
|
|
|
|
Commit 48589b5d (Linux: Restore aklog -setpag functionality for kernel
|
|
|
|
|
2.6.32+) added code to SetToken() to copy our session keyring to the
|
|
|
|
|
parent process, in order to implement -setpag functionality. But this
|
|
|
|
|
was removed from SetToken() in commit 1a6d4c16 (Linux: fix aklog
|
|
|
|
|
-setpag to work with ktc_SetTokenEx), when the same code was moved to
|
|
|
|
|
ktc_SetTokenEx().
|
|
|
|
|
|
|
|
|
|
Add this code back to SetTokens(), so -setpag functionality can work
|
|
|
|
|
again with utilities that use older functions like ktc_SetToken, like
|
|
|
|
|
'klog'.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14146
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 826bb826274e48c867b41cb948d031a423373901)
|
|
|
|
|
|
|
|
|
|
Change-Id: I1ae90d92efa27bce2ff59ff9b9dcca370eaf4730
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14327
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 01dfdf2608c5643714da61950637c1e7d1994023
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Fri Aug 21 01:54:00 2020 +0530
|
|
|
|
|
|
|
|
|
|
afs: Avoid NatPing event on all connection
|
|
|
|
|
|
|
|
|
|
Inside release_conns_user_server, connection vector is traversed and after
|
|
|
|
|
destroying a connection new eligible connection is found on which NatPing
|
|
|
|
|
event will be set. Ideally there should be only one connection on which
|
|
|
|
|
NatPing should be set but in current code while traversing all connection
|
|
|
|
|
of server a NatPing event is set on all connections to that server. In
|
|
|
|
|
cases where we have large number of connection to a server this can lead
|
|
|
|
|
to huge number of “RX_PACKET_TYPE_VERSION” packets sent to a server.
|
|
|
|
|
Since this happen during Garbage collection of user structs, to simulate
|
|
|
|
|
this issue below steps were tried
|
|
|
|
|
|
|
|
|
|
- had one script which “cd” to a volume mount and then script sleeps for
|
|
|
|
|
large time.
|
|
|
|
|
- Ran one infinite while loop where above script was called using PAG
|
|
|
|
|
based tokens (As new connection will be created for each PAG)
|
|
|
|
|
- Instrumented the code, so that we hit above code segment where NatPing
|
|
|
|
|
event is set. Mainly reduced NOTOKTIMEOUT to 60 sec.
|
|
|
|
|
|
|
|
|
|
To fix this issue set NatPing on one connection and once it is set break
|
|
|
|
|
from “for” loop traversing the server connection.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14312
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
(cherry picked from commit b968875a342ba8f11378e76560b46701f21391e8)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8c70108ab3eb73ed1d9e598381bc29b87ca42aa0
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14364
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit e4103743d91bcdba1c57c850eb07b0b03abe72d6
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Mon Jun 22 22:54:52 2020 -0500
|
|
|
|
|
|
|
|
|
|
volser: Don't NUL-pad failed pread()s in dumps
|
|
|
|
|
|
|
|
|
|
Currently, the volserver SAFSVolDump RPC and the 'voldump' utility
|
|
|
|
|
handle short reads from pread() for vnode payloads by padding the
|
|
|
|
|
missing data with NUL bytes. That is, if we request 4k of data for our
|
|
|
|
|
pread() call, and we only get back 1k of data, we'll write 1k of data
|
|
|
|
|
to the volume dump stream followed by 3k of NUL bytes, and log
|
|
|
|
|
messages like this:
|
|
|
|
|
|
|
|
|
|
1 Volser: DumpFile: Error reading inode 1234 for vnode 5678
|
|
|
|
|
1 Volser: DumpFile: Null padding file: 3072 bytes at offset 40960
|
|
|
|
|
|
|
|
|
|
This can happen if we hit EOF on the underlying file sooner than
|
|
|
|
|
expected, or if the OS just responds with fewer bytes than requested
|
|
|
|
|
for any reason.
|
|
|
|
|
|
|
|
|
|
The same code path tries to do the same NUL-padding if pread() returns
|
|
|
|
|
an error (for example, EIO), padding the entire e.g. 4k block with
|
|
|
|
|
NULs. However, in this case, the "padding" code often doesn't work as
|
|
|
|
|
intended, because we compare 'n' (set to -1) with 'howMany' (set to 4k
|
|
|
|
|
in this example), like so:
|
|
|
|
|
|
|
|
|
|
if (n < howMany)
|
|
|
|
|
|
|
|
|
|
Here, 'n' is signed (ssize_t), and 'howMany' is unsigned (size_t), and
|
|
|
|
|
so compilers will promote 'n' to the unsigned type, causing this
|
|
|
|
|
conditional to fail when n is -1. As a result, all of the relevant log
|
|
|
|
|
messages are skipped, and the data in the dumpstream gets corrupted
|
|
|
|
|
(we skip a block of data, and our 'howFar' offset goes back by 1). So
|
|
|
|
|
this can result in rare silent data corruption in volume dumps, which
|
|
|
|
|
can occur during volume releases, moves, etc.
|
|
|
|
|
|
|
|
|
|
To fix all of this, remove this bizarre NUL-padding behavior in the
|
|
|
|
|
volserver. Instead:
|
|
|
|
|
|
|
|
|
|
- For actual errors from pread(), return an error, like we do for I/O
|
|
|
|
|
errors in most other code paths.
|
|
|
|
|
|
|
|
|
|
- For short reads, just write out the amount of data we actually read,
|
|
|
|
|
and keep going.
|
|
|
|
|
|
|
|
|
|
- For premature EOF, treat it like a pread() error, but log a slightly
|
|
|
|
|
different message.
|
|
|
|
|
|
|
|
|
|
For the 'voldump' utility, the padding behavior can make sense if a
|
|
|
|
|
user is trying to recover volume data offline in a disaster recovery
|
|
|
|
|
scenario. So for voldump, add a new switch (-pad-errors) to enable the
|
|
|
|
|
padding behavior, but change the default behavior to bail out on
|
|
|
|
|
errors.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14255
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 4498bd8179e5e93a33468be3c8e7a30e569d560a)
|
|
|
|
|
|
|
|
|
|
Change-Id: Idf89d70c9d4d650dbf7b73e67c5b71b9bab7c3f4
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14367
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 9947625a1d67b4ffdc0582e9081000e34be2b46b
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Fri May 15 12:01:44 2020 -0400
|
|
|
|
|
|
|
|
|
|
vos: avoid CreateVolume when restoring over an existing volume
|
|
|
|
|
|
|
|
|
|
Currently, the UV_RestoreVolume2 function always attempts to create a
|
|
|
|
|
new volume, even when doing a incremental restore over an existing
|
|
|
|
|
volume. When the volume already exists, the volume creation operation
|
|
|
|
|
fails on the volume server with a VVOLEXISTS error. The client will then
|
|
|
|
|
attempt to obtain a transaction on the existing volume. If a transaction
|
|
|
|
|
is obtained, the incremental restore operation will proceed. If a full
|
|
|
|
|
restore is being done, the existing volume is removed and a new empty
|
|
|
|
|
volume is created.
|
|
|
|
|
|
|
|
|
|
Unfortunately, the failed volume creation is logged to by the volume
|
|
|
|
|
server, and so litters the log file with:
|
|
|
|
|
|
|
|
|
|
Volser: CreateVolume: Unable to create the volume; aborted, error code 104
|
|
|
|
|
|
|
|
|
|
To avoid polluting the volume server log with these messages, reverse
|
|
|
|
|
the logic in UV_RestoreVolume2. Assume the volume already exists and try
|
|
|
|
|
to get the transaction first when doing an incremental restore. Create a
|
|
|
|
|
new volume if the transaction cannot be obtained because the volume is
|
|
|
|
|
not present. When doing a full restore, remove the existing volume, if
|
|
|
|
|
one exists, and then create a new empty volume.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14208
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Marcio Brito Barbosa <marciobritobarbosa@gmail.com>
|
|
|
|
|
Tested-by: Marcio Brito Barbosa <marciobritobarbosa@gmail.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f5051b87a56b3a4f7fd7188cbd16a663eee8abbf)
|
|
|
|
|
|
|
|
|
|
Change-Id: I422b81e0c800ff655ac8851b2872f4d7160d79a8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14326
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 967aa95fe23f98c911b8a618132442159eda3f77
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Wed Apr 29 05:10:05 2020 +0000
|
|
|
|
|
|
|
|
|
|
rxkad: Use krb5_enctype_keysize in tkt_DecodeTicket5
|
|
|
|
|
|
|
|
|
|
Inside tkt_DecodeTicket5 (rxkad/ticket5.c) function, keysize is calculated
|
|
|
|
|
using krb5_enctype_keybits and then dividing number of bits by 8. For 3DES
|
|
|
|
|
number of keybits are 168, so keysize comes out to 21(168/8). However
|
|
|
|
|
actual keysize of 3DES key is 24. This keysize is passed to
|
|
|
|
|
_afsconf_GetRxkadKrb5Key where keysize comparison happens, since there is
|
|
|
|
|
keysize mismatch it returns AFSCONF_BADKEY.
|
|
|
|
|
|
|
|
|
|
To fix this issue get keysize from krb5_enctype_keysize function instead
|
|
|
|
|
of krb5_enctype_keybits. Thanks to John Janosik (jpjanosi@us.ibm.com)
|
|
|
|
|
for analyzing and fixing this issue.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14203
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 5d53ed0bdab6fea6d2426691bdef2b6f9cb7f2fe)
|
|
|
|
|
|
|
|
|
|
Change-Id: I16cd7a803a139802671a8045dac09e10ef4ad6cb
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14325
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 28e96b954fe17810d1ebdd9fdd4702511e870a67
|
|
|
|
|
Author: Jan Iven <iven.jan@gmail.com>
|
|
|
|
|
Date: Tue Sep 1 14:51:25 2020 +0200
|
|
|
|
|
|
|
|
|
|
ptserver: Remove duplicate ubik_SetLock in listSuperGroups
|
|
|
|
|
|
|
|
|
|
It looks like a call to ubik_SetLock(.. LOCKREAD) was left in
|
|
|
|
|
place in listSuperGroups after locking was moved to ReadPreamble
|
|
|
|
|
in commit a6d64d70 (ptserver: Refactor per-call ubik initialisation)
|
|
|
|
|
When compiled with 'supergroups', and once contacted by
|
|
|
|
|
"pts mem -expandgroups ..", ptserver will therefore abort() with
|
|
|
|
|
Ubik: Internal Error: attempted to take lock twice
|
|
|
|
|
This patch removes the superfluous ubik_SetLock.
|
|
|
|
|
|
|
|
|
|
FIXES 135147
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14338
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 696f2ec67b049639abf04905255a7d6173dbb19e)
|
|
|
|
|
|
|
|
|
|
Change-Id: I62bfe44e374b398278658b61f2ecf9a66fab18ae
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14345
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit c7a3154382376ca2e5effdfed2c447c86b9f6eed
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Wed Jul 1 21:50:09 2020 -0400
|
|
|
|
|
|
|
|
|
|
redhat: Add make to the dkms-openafs pre-requirements
|
|
|
|
|
|
|
|
|
|
If `make` is not installed before dkms-openafs, the OpenAFS kernel
|
|
|
|
|
module is not built during the dkms-openafs package installation.
|
|
|
|
|
|
|
|
|
|
The failure happens in the "checking if linux kernel module build works"
|
|
|
|
|
configure step, which invokes `make` to check the linux buildsystem.
|
|
|
|
|
configure fails when `make` is not available, and gives the unhelpful
|
|
|
|
|
suggestion (in this case) of configuring with --disable-kernel module.
|
|
|
|
|
|
|
|
|
|
Running the configure.log in the dkms build directory shows:
|
|
|
|
|
|
|
|
|
|
configure:7739: checking if linux kernel module build works
|
|
|
|
|
make -C /lib/modules/4.18.0-193.6.3.el8_2.x86_64/build M=/var/lib/dkms/openafs/...
|
|
|
|
|
./configure: line 7771: make: command not found
|
|
|
|
|
configure: failed using Makefile:
|
|
|
|
|
|
|
|
|
|
Avoid this build failure by adding `make` to the list of dkms-openafs
|
|
|
|
|
package pre-requirements.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14266
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit e61ab9353e99d3298815296abf6b02c50ebe3df0)
|
|
|
|
|
|
|
|
|
|
Change-Id: I9b2bb73acabfabc1cf8b5514c8aa66572cc96066
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14314
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ddaf6a74ff3e0aeb4c8b2b15886eaa5c90db59bf
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Aug 28 10:32:01 2020 -0600
|
|
|
|
|
|
|
|
|
|
INSTALL: document the minimum Linux kernel level
|
|
|
|
|
|
|
|
|
|
The change associated with gerrit #14300 removed support for older
|
|
|
|
|
Linux kernels (2.6.10 and earlier).
|
|
|
|
|
|
|
|
|
|
The commit 'Import of code from autoconf-archive' (d8205bbb4) introduced
|
|
|
|
|
a check for Autoconf 2.64. Autoconf 2.64 was released in 2009.
|
|
|
|
|
|
|
|
|
|
The commit 'regen.sh: Use libtoolize -i, and .gitignore generated
|
|
|
|
|
build-tools' (a7cc505d3) introduced a dependency on libtool's '-i'
|
|
|
|
|
option. Libtool supported the '-i' option with libtool 1.9b in 2004.
|
|
|
|
|
|
|
|
|
|
Update the INSTALL instructions to document a minimum Linux kernel
|
|
|
|
|
level and the minimum levels for autoconf and libtool.
|
|
|
|
|
|
|
|
|
|
Notes: RHEL4 (EOL in 2017) had a 2.6.9 kernel and RHEL5 has a 2.6.18
|
|
|
|
|
kernel. RHEL5 has libtool 1.5.22 and autoconf 2.59, RHEL6 has libtool
|
|
|
|
|
2.2.6 and autoconf 2.63, and RHEL7 has libtool 2.4.2 and autoconf 2.69.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14305
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 16bae98ec525fa013514fb46398df682d7637ae0)
|
|
|
|
|
|
|
|
|
|
Change-Id: I7aaf434928204df77851dd2d651d43b86f5b53d2
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14331
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit fee39617c350623dc659e7a21287a1791bdff5d2
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Wed Apr 1 22:59:38 2020 -0500
|
|
|
|
|
|
|
|
|
|
vos: Print "done" in non-verbose 'vos remsite'
|
|
|
|
|
|
|
|
|
|
Currently, 'vos remsite' always prints the message "Deleting the
|
|
|
|
|
replication site for volume %lu ...", and then calls VDONE if the
|
|
|
|
|
operation is successful. VDONE prints the trailing "done", but only if
|
|
|
|
|
-verbose is turned on, and so if -verbose is not specified, the output
|
|
|
|
|
of 'vos remsite' looks broken:
|
|
|
|
|
|
|
|
|
|
$ vos remsite fs1 vicepa vol.foo
|
|
|
|
|
Deleting the replication site for volume 1234 ...Removed replication site fs1 /vicepa for volume vol.foo
|
|
|
|
|
|
|
|
|
|
To fix this, unconditionally print the trailing "done", instead of
|
|
|
|
|
going through VDONE, so 'vos remsite' output now looks like this:
|
|
|
|
|
|
|
|
|
|
$ vos remsite fs1 vicepa vol.foo
|
|
|
|
|
Deleting the replication site for volume 1234 ... done
|
|
|
|
|
Removed replication site fs1 /vicepa for volume vol.foo
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14127
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit f16d40ad26df3ec871f8c73952594ad2e723c9b4)
|
|
|
|
|
|
|
|
|
|
Change-Id: I4cd7cb2156391004e57cd42437d7174a6bd70992
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14311
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ff5b64d074376992d0be02e19b4da789c20d6bab
|
|
|
|
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Date: Thu Feb 13 00:39:00 2020 -0300
|
|
|
|
|
|
|
|
|
|
vos: take RO volume offline during convertROtoRW
|
|
|
|
|
|
|
|
|
|
The vos convertROtoRW command converts a RO volume into a RW volume.
|
|
|
|
|
Unfortunately, the RO volume in question is not set as "out of service"
|
|
|
|
|
during this process. As a result, accesses to the volume being converted
|
|
|
|
|
can leave volume objects in an inconsistent state.
|
|
|
|
|
|
|
|
|
|
Consider the following scenario:
|
|
|
|
|
|
|
|
|
|
1. Create a volume on host_b and add replicas on host_a and host_b.
|
|
|
|
|
|
|
|
|
|
$ vos create host_b a vol_1
|
|
|
|
|
$ vos addsite host_b a vol_1
|
|
|
|
|
$ vos addiste host_a a vol_1
|
|
|
|
|
|
|
|
|
|
2. Mount the volume:
|
|
|
|
|
|
|
|
|
|
$ fs mkmount /afs/.mycell/vol_1 vol_1
|
|
|
|
|
$ vos release vol_1
|
|
|
|
|
$ vos release root.cell
|
|
|
|
|
|
|
|
|
|
3. Shutdown dafs on host_b:
|
|
|
|
|
|
|
|
|
|
$ bos shutdown host_b dafs
|
|
|
|
|
|
|
|
|
|
4. Remove RO reference to host_b from the vldb:
|
|
|
|
|
|
|
|
|
|
$ vos remsite host_b a vol_1
|
|
|
|
|
|
|
|
|
|
5. Attach the RO copy by touching it:
|
|
|
|
|
|
|
|
|
|
$ fs flushall
|
|
|
|
|
$ ls /afs/mycell/vol_1
|
|
|
|
|
|
|
|
|
|
6. Convert RO copy to RW:
|
|
|
|
|
|
|
|
|
|
$ vos convertROtoRW host_a a vol_1
|
|
|
|
|
|
|
|
|
|
Notice that FSYNC_com_VolDone fails silently (FSYNC_BAD_STATE), leaving
|
|
|
|
|
the volume object for the RO copy set as VOL_STATE_ATTACHED (on success,
|
|
|
|
|
this volume should be set as VOL_STATE_DELETED).
|
|
|
|
|
|
|
|
|
|
7. Add replica on host_a:
|
|
|
|
|
|
|
|
|
|
$ vos addsite host_a a vol_1
|
|
|
|
|
|
|
|
|
|
8. Wait until the "inUse" flag of the RO entry is cleared (or force this
|
|
|
|
|
to happen by attaching multiple volumes).
|
|
|
|
|
|
|
|
|
|
9. Release the volume:
|
|
|
|
|
|
|
|
|
|
$ vos release vol_1
|
|
|
|
|
|
|
|
|
|
Failed to start transaction on volume 536870922
|
|
|
|
|
Volume not attached, does not exist, or not on line
|
|
|
|
|
Error in vos release command.
|
|
|
|
|
Volume not attached, does not exist, or not on line
|
|
|
|
|
|
|
|
|
|
To fix this problem, take the RO volume offline during the vos
|
|
|
|
|
convertROtoRW operation.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14066
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 32d35db64061e4102281c235cf693341f9de9271)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie4cfab2f04a8859ddfcaece371198ac544066770
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14310
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 696d9ce83e3556bda2d3945326937c63dd3560ed
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Tue Apr 19 20:46:33 2016 -0400
|
|
|
|
|
|
|
|
|
|
ubik: positional io for db reads and writes
|
|
|
|
|
|
|
|
|
|
The ubik library was written before positional i/o was available and
|
|
|
|
|
issues an lseek system call for each database file read and write. This
|
|
|
|
|
change converts the ubik database accesses to use positional i/o on
|
|
|
|
|
platforms where pread and pwrite are available, in order to reduce
|
|
|
|
|
system call load.
|
|
|
|
|
|
|
|
|
|
The new inline uphys_pread and uphys_pwrite functions are supplied on
|
|
|
|
|
platforms which do not supply pread and pwrite. These functions fall
|
|
|
|
|
back to non-positional i/o. If these symbols are present in the database
|
|
|
|
|
server binary then the server process will continue to call lseek before
|
|
|
|
|
each read and write access of the database file.
|
|
|
|
|
|
|
|
|
|
This change does not affect the whole-file database synchronization done
|
|
|
|
|
by ubik during database recovery (via the DISK_SendFile and DISK_GetFile
|
|
|
|
|
RPCs), which still uses non-positional i/o. However, that code does not
|
|
|
|
|
share file descriptors with the phys.c code, so there is no possibility
|
|
|
|
|
of mixing positional and non-positional i/o on the same FDs.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12272
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit f62fb17b3cf1c886f8cfc2fabe9984070dd3eec4)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iccc8f749c89659f4acebd74a1115425f69610ba8
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14142
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Marcio Brito Barbosa <marciobritobarbosa@gmail.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit fffd6e07c87e36cd9a4a36858c3df0c282622195
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Wed Apr 20 18:17:16 2016 -0400
|
|
|
|
|
|
|
|
|
|
ubik: remove unnecessary lseeks in uphys_open
|
|
|
|
|
|
|
|
|
|
The ubik database file access layer has a file descriptor cache to avoid
|
|
|
|
|
reopening the database file on each file access. However, the file
|
|
|
|
|
offset is reset with lseek on each and every use of the cached file
|
|
|
|
|
descriptor, and the file offset is set twice when reading or writing
|
|
|
|
|
data records.
|
|
|
|
|
|
|
|
|
|
This change removes unnecessary and duplicate lseek system calls to
|
|
|
|
|
reduce the system call load.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12271
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 6892bfbd701899281b34ee337637d438c7d8f8c6)
|
|
|
|
|
|
|
|
|
|
Change-Id: I5ea7857796d94eb5b659d868e79b9fea2411f301
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14141
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Marcio Brito Barbosa <marciobritobarbosa@gmail.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 438bc2c4caf96485e12eda9e7591fc4bd887ebad
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Thu Nov 9 12:47:57 2017 -0600
|
|
|
|
|
|
|
|
|
|
asetkey: Add new 'delete' command variants
|
|
|
|
|
|
|
|
|
|
The current 'delete' command from asetkey only lets the user delete
|
|
|
|
|
old-style rxkad keys. Add a couple of new variants to allow specifying
|
|
|
|
|
the key type and subtype, so the user can delete specific key types
|
|
|
|
|
and enctypes if they want.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12767
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit 5120409cc998284f2fb0467c2f88030976140341)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8c762839b50f4faf5e583fb5c510bf2ff9dd2259
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14293
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 1c395cd1bcf5770f70dce36ef29f9bd7ba98acaa
|
|
|
|
|
Author: Kailas Zadbuke <kailashsz@in.ibm.com>
|
|
|
|
|
Date: Thu May 7 23:55:39 2020 -0400
|
|
|
|
|
|
|
|
|
|
salvaged: Fix "-parallel all<number>" parsing
|
|
|
|
|
|
|
|
|
|
In salavageserver -parallel option takes "all<number>" argument.
|
|
|
|
|
However the code does not parse the numeric part correctly. Due
|
|
|
|
|
to this, only single instance of salvageserver process was running
|
|
|
|
|
even if we provide the larger number with "all" argument.
|
|
|
|
|
|
|
|
|
|
With this fix, numeric part of "all" argument will be parsed
|
|
|
|
|
correctly and will start required number of salvageserver instances.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14201
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 4512d04a9b721cd9052c0e8fe026c93faf6edb9e)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8910fb514986a404b22256e8a514955a684c8a27
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14285
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 38f7e123c33c1c11eb275e0619080ee874244afd
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Tue Jun 16 15:20:20 2020 -0600
|
|
|
|
|
|
|
|
|
|
tests: Use usleep instead of nanosleep
|
|
|
|
|
|
|
|
|
|
Commit "Build tests by default" 68f406436cc21853ff854c514353e7eb607cb6cb
|
|
|
|
|
changes the build so tests are always built.
|
|
|
|
|
|
|
|
|
|
On Solaris 10 the build fails because nanosleep is in librt, which we do
|
|
|
|
|
not link against.
|
|
|
|
|
|
|
|
|
|
Replace nanosleep with usleep. This avoids introducing extra configure
|
|
|
|
|
tests just for Solaris 10.
|
|
|
|
|
|
|
|
|
|
Note that with Solaris 11 nanosleep was moved from librt to libc, the
|
|
|
|
|
standard C library.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14244
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 22a66e7b7e1d73437a8c26c2a1b45bc4ef214e77)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic24c5a149451955b5c130e7b36cec27e02688d83
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14291
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 264d6b786c2fd0aff0e4abe835e42868f936afce
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Mar 24 11:59:48 2020 -0500
|
|
|
|
|
|
|
|
|
|
tests: Wait for server start in auth/superuser-t
|
|
|
|
|
|
|
|
|
|
The auth/superuser-t test runs an Rx server and client in two child
|
|
|
|
|
processes. If the client process tries to contact the server before
|
|
|
|
|
the server has started listening on its port, some tests involving
|
|
|
|
|
RPCs can fail (notably test 39, "Can run a simple RPC").
|
|
|
|
|
|
|
|
|
|
Normally if we try to contact a server that's not there, Rx will try
|
|
|
|
|
resending its packets a few times, but on Linux with AFS_RXERRQ_ENV,
|
|
|
|
|
if the port isn't open at all, we can get an ICMP_PORT_UNREACH error,
|
|
|
|
|
which causes the relevant Rx call to die immediately with
|
|
|
|
|
RX_CALL_DEAD.
|
|
|
|
|
|
|
|
|
|
This means that if the auth/superuser-t client is only just a bit
|
|
|
|
|
faster than the server starting up, tests can fail, since the server's
|
|
|
|
|
port is not open yet.
|
|
|
|
|
|
|
|
|
|
To avoid this, we can wait until the server's port is open before
|
|
|
|
|
starting the client process. To do this, have the server process send
|
|
|
|
|
a SIGUSR1 to the parent after rx_Init() is called, and have the parent
|
|
|
|
|
process wait for the SIGUSR1 (waiting for a max of 5 seconds before
|
|
|
|
|
failing). This should guarantee that the server's port will be open by
|
|
|
|
|
the time the client starts running.
|
|
|
|
|
|
|
|
|
|
Note that before commit 086d1858 (LINUX: Include linux/time.h for
|
|
|
|
|
linux/errqueue.h), AFS_RXERRQ_ENV was mistakenly disabled on Linux
|
|
|
|
|
3.17+, so this issue was probably not possible on recent Linux before
|
|
|
|
|
that commit.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14109
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
(cherry picked from commit 66d0f91791695ac585f0511d0dadafd4e570b1bf)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia6c06ca9a05e33b3bc35238d9c0d18e7ff339438
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14290
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit eaa552d27074cd7e1c862d606916b063e6d89a27
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Dec 31 12:04:48 2019 -0600
|
|
|
|
|
|
|
|
|
|
tests: Introduce afstest_GetProgname
|
|
|
|
|
|
|
|
|
|
Currently, in tests/volser/vos-t.c we call afs_com_err as
|
|
|
|
|
"authname-t", which is clearly a mistake during some code refactoring
|
|
|
|
|
(introduced in commit 2ce3fdc5, "tests: Abstract out code to produce a
|
|
|
|
|
Ubik client").
|
|
|
|
|
|
|
|
|
|
We could just change this to "vos-t", but instead of specifying
|
|
|
|
|
constant strings everywhere, change this to figure out what the
|
|
|
|
|
current command is called, and just use that. Put this code into a new
|
|
|
|
|
function, afstest_GetProgname, and convert existing tests to use that
|
|
|
|
|
instead of hard-coding the program name given to afs_com_err.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13991
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit a21a2f8edb79d6190976e920a9a90d0878411146)
|
|
|
|
|
|
|
|
|
|
Change-Id: I3d410d6de132f8a0fffeb9cce32a912fe3bbdc20
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14289
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit fe57174d84cab19a13eea9a8f31f0ac71c8cf838
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Wed Aug 5 09:23:36 2020 -0600
|
|
|
|
|
|
|
|
|
|
butc: fix int to float conversion warning
|
|
|
|
|
|
|
|
|
|
Building with clang-10 results in 2 warnings/errors associated with
|
|
|
|
|
with trying to convert 0x7fffffff to a floating point value.
|
|
|
|
|
|
|
|
|
|
tcmain.c:240:18: error: implicit conversion from 'int' to 'float'
|
|
|
|
|
changes value from 2147483647 to 2147483648 [-Werror,
|
|
|
|
|
-Wimplicit-int-float-conversion]
|
|
|
|
|
if ((total > 0x7fffffff) || (total < 0)) /* Don't go over 2G */
|
|
|
|
|
|
|
|
|
|
and the same conversion warning on the statement on the following line:
|
|
|
|
|
total = 0x7fffffff;
|
|
|
|
|
|
|
|
|
|
Use floating point and decimal constants instead of the hex constants.
|
|
|
|
|
|
|
|
|
|
For the test, use 2147483648.0 which is cleanly represented by a float.
|
|
|
|
|
Change the comparison in the test from '>' to '>='.
|
|
|
|
|
|
|
|
|
|
If the total value exceeds 2G, just assign the max value directly to the
|
|
|
|
|
return variable.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14277
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 37b55b30c65d0ab8c8eaabfda0dbd90829e2c46a)
|
|
|
|
|
|
|
|
|
|
Change-Id: I16e0acd893049b01a2c5e4c7e71de3fa40e28d3e
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14299
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit e7902252f15acfc28453c531f6fa3b29c9c91b92
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Aug 21 10:37:51 2020 -0600
|
|
|
|
|
|
|
|
|
|
LINUX 5.9: Remove HAVE_UNLOCKED_IOCTL/COMPAT_IOCTL
|
|
|
|
|
|
|
|
|
|
Linux-5.9-rc1 commit 'fs: remove the HAVE_UNLOCKED_IOCTL and
|
|
|
|
|
HAVE_COMPAT_IOCTL defines' (4e24566a) removed the two referenced macros
|
|
|
|
|
from the kernel.
|
|
|
|
|
|
|
|
|
|
The support for unlocked_ioctl and compat_ioctl were introduced in
|
|
|
|
|
Linux 2.6.11.
|
|
|
|
|
|
|
|
|
|
Remove references to HAVE_UNLOCKED_IOCTL and HAVE_COMPAT_IOCTL using
|
|
|
|
|
the assumption that they were always defined.
|
|
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
|
|
With this change, building against kernels 2.6.10 and older will fail.
|
|
|
|
|
RHEL4 (EOL in March 2017) used a 2.6.9 kernel. RHEL5 uses a 2.6.18
|
|
|
|
|
kernel.
|
|
|
|
|
|
|
|
|
|
In linux-2.6.33-rc1 the commit messages for "staging: comedi:
|
|
|
|
|
Remove check for HAVE_UNLOCKED_IOCTL" (00a1855c) and "Staging: comedi:
|
|
|
|
|
remove check for HAVE_COMPAT_IOCTL" (5d7ae225) both state that all new
|
|
|
|
|
kernels have support for unlocked_ioctl/compat_ioctl so the checks can
|
|
|
|
|
be removed along with removing support for older kernels.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14300
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 13a49aaf0d5c43bce08135edaabb65587e1a8031)
|
|
|
|
|
|
|
|
|
|
Change-Id: I6dc5ae5b32031641f4a021a31630390a91d834fe
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14315
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 99232fa48020bde90f6b245da4374bc63399654f
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Wed Aug 5 09:19:02 2020 -0600
|
|
|
|
|
|
|
|
|
|
afs: Set AFS_VFSFSID to a numerical value
|
|
|
|
|
|
|
|
|
|
Currently when UKERNEL is defined, AFS_VFSFSID is always set to
|
|
|
|
|
AFS_MOUNT_AFS, which is a string for many platforms for UKERNEL.
|
|
|
|
|
|
|
|
|
|
Update src/afs/afs.h to insure that the define for AFS_VFSFSID is a
|
|
|
|
|
numeric value when building UKERNEL.
|
|
|
|
|
|
|
|
|
|
Clean up the preprocessor indentation in src/afs/afs.h in the area
|
|
|
|
|
around the AFS_VFSFSID defines.
|
|
|
|
|
|
|
|
|
|
Thanks to adeason@sinenomine.net for pointing out a much easier solution
|
|
|
|
|
for resolving this problem.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14279
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 446457a1240b88fd94fc34ff5715f2b7f2f3ef12)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ic0f9c2f1f4baeb9f99da19e1187f1bc9f5d7f824
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14297
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 7e2a62fb594a7713a5c694b9e0401b5e3c2648c8
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Wed Aug 5 09:18:49 2020 -0600
|
|
|
|
|
|
|
|
|
|
afs: Avoid using logical OR when setting f_fsid
|
|
|
|
|
|
|
|
|
|
Building with clang-10 produces the warning/error message
|
|
|
|
|
warning: converting the result of '<<' to a boolean always evaluates
|
|
|
|
|
to true [-Wtautological-constant-compare]
|
|
|
|
|
for the expression
|
|
|
|
|
abp->f_fsid = (AFS_VFSMAGIC << 16) || AFS_VFSFSID;
|
|
|
|
|
|
|
|
|
|
The message is because a logical OR '||' is used instead of a bitwise
|
|
|
|
|
OR '|'. The result of this expression will always set the f_fsid
|
|
|
|
|
member to a 1 and not the intended value of AFS_VFSMAGIC combined with
|
|
|
|
|
AFS_VFSFSID.
|
|
|
|
|
|
|
|
|
|
Update the expression to use a bitwise OR instead of the logical OR.
|
|
|
|
|
|
|
|
|
|
Note: This will change value stored in the f_fsid that is returned from
|
|
|
|
|
statfs.
|
|
|
|
|
|
|
|
|
|
Using a logical OR has existed since OpenAFS 1.0 for hpux/solaris and in
|
|
|
|
|
UKERNEL since OpenAFS 1.5 with the commit 'UKERNEL: add uafs_statvfs'
|
|
|
|
|
b822971a.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14292
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit c56873bf95f6325b70e63ed56ce59a3c6b2b753b)
|
|
|
|
|
|
|
|
|
|
Change-Id: I2e3fe6a84ef6ce73fff933f137d4806efefa5949
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14298
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit fc32922236122b9013ed9bdedda8c54c2e8c75d8
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Fri May 1 15:02:08 2020 -0500
|
|
|
|
|
|
|
|
|
|
vlserver: Return error when growing beyond 2 GiB
|
|
|
|
|
|
|
|
|
|
In the vlserver, when we add a new vlentry or extent block, we grow
|
|
|
|
|
the VLDB by doing something like this:
|
|
|
|
|
|
|
|
|
|
vital_header.eofPtr += sizeof(item);
|
|
|
|
|
|
|
|
|
|
Since we don't check for overflow, and all of our offset-related
|
|
|
|
|
variables are signed 32-bit integers, this can cause some odd behavior
|
|
|
|
|
if we try to grow the database to be over 2 GiB in size.
|
|
|
|
|
|
|
|
|
|
To avoid this, change the two places in vlserver code that grow the
|
|
|
|
|
database to use a new function, grow_eofPtr(), which checks for 31-bit
|
|
|
|
|
overflow. If we are about to overflow, log a message and return an
|
|
|
|
|
error.
|
|
|
|
|
|
|
|
|
|
See the following for a specific example of our "odd behavior" when we
|
|
|
|
|
overflow the 2 GiB limit in the VLDB:
|
|
|
|
|
|
|
|
|
|
With 1 extent block, we can create 14509076 vlentries successfully. On
|
|
|
|
|
the 14509077th vlentry, we'll attempt to write the entry to offset
|
|
|
|
|
2147483560 (0x7FFFFFA8). Since a vlentry is 148 bytes long, we'll
|
|
|
|
|
write all the way through offset 2147483707 (0x8000003B), which is
|
|
|
|
|
over the 31-bit limit.
|
|
|
|
|
|
|
|
|
|
In the udisk subsystem, this results in writing to page numbers
|
|
|
|
|
2097151, and -2097152 (since our ubik pages are 1k, and going over the
|
|
|
|
|
31-bit limit causes us to treat offsets as negative). These pages
|
|
|
|
|
start at physical offsets 2147482688 (0x7FFFFC40) and -2147483584
|
|
|
|
|
(-0x7FFFFFC0) in our vldb.DB0 (where offset is page*1024+64).
|
|
|
|
|
|
|
|
|
|
Modifying each of these pages involves reading in the existing page
|
|
|
|
|
first, modifying the parts we are changing, and writing it back. This
|
|
|
|
|
works just fine for 2097151, but of course fails for -2097152. The
|
|
|
|
|
latter fails in DReadBuffer when eventually our pread() fails with
|
|
|
|
|
EINVAL, and causes ubik to log the message:
|
|
|
|
|
|
|
|
|
|
Ubik: Error reading database file: errno=22
|
|
|
|
|
|
|
|
|
|
But when DReadBuffer fails, DReadBufferForWrite assumes this is due to
|
|
|
|
|
EOF, and just creates a new buffer for the given page (DNewBuffer).
|
|
|
|
|
So, the udisk_write() call ultimately succeeds.
|
|
|
|
|
|
|
|
|
|
When we go to flush the dirty data to disk when committing the
|
|
|
|
|
transaction, after we have successfully written the transaction log,
|
|
|
|
|
DFlush() fails for the -2097152 page when the pwrite() call eventually
|
|
|
|
|
fails with EINVAL, causing ubik to panic, logging the messages:
|
|
|
|
|
|
|
|
|
|
Ubik PANIC:
|
|
|
|
|
Writing Ubik DB modifications
|
|
|
|
|
|
|
|
|
|
When the vlserver gets restarted by bosserver, we then process the
|
|
|
|
|
transaction log, and perform the operations in the log before starting
|
|
|
|
|
up (ReplayLog). The log records the actual data we wrote, not split
|
|
|
|
|
into pages, and the log-replaying code writes directly to the db
|
|
|
|
|
usying uphys_write instead of udisk_write. So, because of this, the
|
|
|
|
|
write actually succeeds when replaying the log, since we just write
|
|
|
|
|
148 bytes to offset 2147483624 (0x7FFFFFE8), and no negative offsets
|
|
|
|
|
are used.
|
|
|
|
|
|
|
|
|
|
The vlserver will then be able to run, but will be unable to read that
|
|
|
|
|
newly-created vlentry, since it involves reading a ubik page beyond
|
|
|
|
|
the 31-bit boundary. That means trying to lookup that entry will fail
|
|
|
|
|
with i/o errors, and as well as any entry on the same hash chains as
|
|
|
|
|
the new entry (since the new entry will be added to the head of the
|
|
|
|
|
hash chain). Listing all entries in the database will also just show
|
|
|
|
|
an empty database, since our vital_header.eofPtr will be negative, and
|
|
|
|
|
we determine EOF by comparing our current blockindex to the value in
|
|
|
|
|
eofPtr.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14180
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
(cherry picked from commit d01398731550b8a93b293800642c3e1592099114)
|
|
|
|
|
|
|
|
|
|
Change-Id: I72302a8c472b3270e99e58a573f5cf25dd34b9c5
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14288
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 03979eaa174de0cff188af451806fb7ae10d3a62
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Tue Apr 7 13:15:31 2020 -0500
|
|
|
|
|
|
|
|
|
|
vlserver: Correctly pad nvlentry for "O" RPCs
|
|
|
|
|
|
|
|
|
|
For our old-style "O" RPCs (e.g. VL_CreateEntry, instead of
|
|
|
|
|
VL_CreateEntryN), vlserver calls vldbentry_to_vlentry to convert to
|
|
|
|
|
the internal 'struct nvlentry' format. After all of the sites have
|
|
|
|
|
been copied to the internal format, we fill the remaining sites by
|
|
|
|
|
setting the serverNumber to BADSERVERID. For nvldbentry_to_vlentry, we
|
|
|
|
|
do this for NMAXNSERVERS sites, but for vldbentry_to_vlentry, we do
|
|
|
|
|
this for OMAXNSERVERS.
|
|
|
|
|
|
|
|
|
|
The thing is, both functions are filling in entries for a 'struct
|
|
|
|
|
nvlentry', which has NMAXNSERVERS 'serverNumber' entries. So for
|
|
|
|
|
vldbentry_to_vlentry, we are skipping setting the last few sites
|
|
|
|
|
(specifically, NMAXNSERVERS-OMAXNSERVERS = 13-8 = 5).
|
|
|
|
|
|
|
|
|
|
This can easily cause our O-style RPCs to write out entries to disk
|
|
|
|
|
that have uninitialized sites at the end of the array. For example, an
|
|
|
|
|
entry with one site should have server numbers that look like this:
|
|
|
|
|
|
|
|
|
|
serverNumber = {1, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}
|
|
|
|
|
|
|
|
|
|
That is, one real serverid (a '1' here), followed by twelve
|
|
|
|
|
BADSERVERIDs.
|
|
|
|
|
|
|
|
|
|
But for a VL_CreateEntry call, the 'struct nvlentry' is zeroed out
|
|
|
|
|
before vldbentry_to_vlentry is called, and so the server numbers in
|
|
|
|
|
the written entry look like this:
|
|
|
|
|
|
|
|
|
|
serverNumber = {1, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0}
|
|
|
|
|
|
|
|
|
|
That is, one real serverid (a '1' here), followed by seven
|
|
|
|
|
BADSERVERIDs, followed by five '0's.
|
|
|
|
|
|
|
|
|
|
Most of the time, this is not noticeable, since our code that reads in
|
|
|
|
|
entries from disk stops processing sites when we encounter the first
|
|
|
|
|
BADSERVERID site (see vlentry_to_nvldbentry). However, if the entry
|
|
|
|
|
has 8 sites, then none of the entries will contain BADSERVERID, and so
|
|
|
|
|
we will actually process the trailing 5 bogus sites. This would appear
|
|
|
|
|
as 5 extra volume sites for a volume, most likely all for the same
|
|
|
|
|
server.
|
|
|
|
|
|
|
|
|
|
For VL_CreateEntry, the vlentry struct is always zeroed before we use
|
|
|
|
|
it, so the trailing sites will always be filled with 0. For
|
|
|
|
|
VL_ReplaceEntry, the trailing sites will be unchanged from whatever
|
|
|
|
|
was read in from the existing disk entry.
|
|
|
|
|
|
|
|
|
|
To fix this, just change the relevant loop to go through NMAXNSERVERS
|
|
|
|
|
entries, so we actually go to the end of the serverNumber (et al)
|
|
|
|
|
array.
|
|
|
|
|
|
|
|
|
|
This may appear similar to commit ddf7d2a7 (vlserver: initialize
|
|
|
|
|
nvlentry elements after read). However, that commit fixed a case
|
|
|
|
|
involving the old vldb database format (which hopefully is not being
|
|
|
|
|
used). This commit fixes a case where we are using the new vldb
|
|
|
|
|
database format, but with the old RPCs, which may still be used by old
|
|
|
|
|
tools.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14139
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 7e41ee0bd50d39a356f0435ff370a0a7be40306f)
|
|
|
|
|
|
|
|
|
|
Change-Id: I68ecc41e7268efd0424e6c129aa914cd04115b59
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14287
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 986ee1fd422d1608553af5a6a02bd60349b864ac
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jun 19 08:01:14 2020 -0600
|
|
|
|
|
|
|
|
|
|
afs: Avoid panics on failed return from afs_CFileOpen
|
|
|
|
|
|
|
|
|
|
afs_CFileOpen is a macro that invokes the open "method" of the
|
|
|
|
|
afs_cacheOps structure, and for disk caches the osi_UFSOpen function is
|
|
|
|
|
used.
|
|
|
|
|
|
|
|
|
|
Currently osi_UFSOpen will panic if there is an error encountered while
|
|
|
|
|
opening a file.
|
|
|
|
|
|
|
|
|
|
Prepare to handle osi_UFSOpen function returning a NULL instead of
|
|
|
|
|
issuing a panic (future commit).
|
|
|
|
|
|
|
|
|
|
Update callers of afs_CFileOpen to test for an error and to return an
|
|
|
|
|
error instead of issuing a panic.
|
|
|
|
|
|
|
|
|
|
While this commit eliminates some panics, it does not address some of the
|
|
|
|
|
more complex cases associated with errors from afs_CFileOpen.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14241
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit d2d27f975df13c3833898611dacff940a5ba3e2a)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia30711748b3cffd56eb3120961aa1747dfae0f23
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14286
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit a00fe9fd4253b2436ae649b05b329d0d52c8b6f6
|
|
|
|
|
Author: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Date: Thu Mar 5 07:21:55 2020 +0000
|
|
|
|
|
|
|
|
|
|
LINUX: Initialize CellLRU during osi_Init
|
|
|
|
|
|
|
|
|
|
When OpenAFS kernel module gets loaded, it will create certain entries
|
|
|
|
|
in "proc" filesystem. One of those entries is "CellServDB", in case
|
|
|
|
|
we read "/proc/fs/openafs/CellServDB" without starting "afsd" it will
|
|
|
|
|
result in crash with NULL pointer deref. The reason for crash is
|
|
|
|
|
CellLRU has not been initialized yet (since "afsd" is not started)
|
|
|
|
|
i.e afs_CellInit is not yet called, because of this "next" and "prev"
|
|
|
|
|
pointers will be NULL. Inside "c_start()" we do not check for NULL
|
|
|
|
|
pointer while traversing CellLRU and this causes crash.
|
|
|
|
|
|
|
|
|
|
To avoid this initialize CellLRU during module intialization.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14093
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 8d90a9d27b0ef28ddcdd3eb041c8a9d019b84b50)
|
|
|
|
|
|
|
|
|
|
Change-Id: I9ed97d3751943331c9d9bc9dfc73acc24231187b
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14284
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 6824d45c2ab83e52350c3f366e4cb6f1eb263088
|
|
|
|
|
Author: Kailas Zadbuke <kailashsz@in.ibm.com>
|
|
|
|
|
Date: Wed Jun 3 15:44:08 2020 +0530
|
|
|
|
|
|
|
|
|
|
util: Handle serverLogMutex lock across forks
|
|
|
|
|
|
|
|
|
|
If a process forks when another thread has serverLogMutex locked, the
|
|
|
|
|
child process inherits the locked serverLogMutex. This causes a deadlock
|
|
|
|
|
when code in the child process tries to lock serverLogMutex, since we
|
|
|
|
|
can never unlock serverLogMutex because the locking thread no longer
|
|
|
|
|
exists. This can happen in the salvageserver, since the salvageserver
|
|
|
|
|
locks serverLogMutex in different threads, and forks to handle salvage
|
|
|
|
|
jobs.
|
|
|
|
|
|
|
|
|
|
To avoid this deadlock, we register handlers using pthread_atfork()
|
|
|
|
|
so that the serverLogMutex will be held during the fork. The fork will
|
|
|
|
|
be blocked until the worker thread releases the serverLogMutex. Hence the
|
|
|
|
|
serverLogMutex will be held until the fork is complete and it will be
|
|
|
|
|
released in the parent and child threads.
|
|
|
|
|
|
|
|
|
|
Thanks to Yadavendra Yadav(yadayada@in.ibm.com) for working with me
|
|
|
|
|
on this issue.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14239
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
(cherry picked from commit e44d6441c8786fdaaa1fad1b1ae77704c12f7d60)
|
|
|
|
|
|
|
|
|
|
Change-Id: I09c04c0bd99b10433857ccdaeb4ee6a4cd50f768
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14283
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 179a418ea5063785a23e4faf35134f063a6f3e1c
|
|
|
|
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Date: Fri Mar 13 13:00:35 2020 -0500
|
|
|
|
|
|
|
|
|
|
LINUX: Properly revert creds in osi_UFSTruncate
|
|
|
|
|
|
|
|
|
|
Commit cd3221d3 (Linux: use override_creds when available) caused us
|
|
|
|
|
to force the current process's creds to the creds of afsd during
|
|
|
|
|
osi_file.c file ops, to avoid access errors in some cases.
|
|
|
|
|
|
|
|
|
|
However, in osi_UFSTruncate, one code path was missed to revert our
|
|
|
|
|
creds back to the original user's creds: when the afs_osi_Stat call
|
|
|
|
|
fails or deems the truncate unnecessary. In this case, the calling
|
|
|
|
|
process keeps the creds for afsd after osi_UFSTruncate returns,
|
|
|
|
|
causing our subsequent access-checking code to think that the current
|
|
|
|
|
process is in the same context as afsd (typically uid 0 without a
|
|
|
|
|
pag).
|
|
|
|
|
|
|
|
|
|
This can cause the calling process to appear to transiently have the
|
|
|
|
|
same access as non-pag uid 0; typically this will be unauthenticated
|
|
|
|
|
access, but could be authenticated if uid 0 has tokens.
|
|
|
|
|
|
|
|
|
|
To fix this, modify the early return in osi_UFSTruncate to go through
|
|
|
|
|
a 'goto done' destructor instead, and make sure we revert our creds in
|
|
|
|
|
that destructor.
|
|
|
|
|
|
|
|
|
|
Thanks to cwills@sinenomine.net for finding and helping reproduce the
|
|
|
|
|
issue.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14098
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
(cherry picked from commit 57b4f4f9be1e25d5609301c10f717aff32aef676)
|
|
|
|
|
|
|
|
|
|
Change-Id: I714eb2dea9645ffe555f26b5d69707a7afbe8d81
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14099
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ee578e92d9f810d93659a9805d0c12084fe2bb95
|
|
|
|
|
Author: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Date: Thu May 2 16:02:47 2019 -0400
|
|
|
|
|
|
|
|
|
|
Linux: use override_creds when available
|
|
|
|
|
|
|
|
|
|
Linux may perform some access control checks at the time of an I/O
|
|
|
|
|
operation, rather than relying solely on checks done when the file is
|
|
|
|
|
opened. In some cases (e.g. AppArmor), these checks are done based on
|
|
|
|
|
the current tasks's creds at the time of the I/O operation, not those
|
|
|
|
|
used when the file was open.
|
|
|
|
|
|
|
|
|
|
Because of this, we must use override_creds() / revert_creds() to make
|
|
|
|
|
sure we are using privileged credentials when performing I/O operations
|
|
|
|
|
on cache files. Otherwise, cache I/O operations done in the context of
|
|
|
|
|
a task with a restrictive AppArmor profile will fail.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13751
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit cd3221d3532a28111ad22d4090ec913cbbff40da)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8955ff6150462fecba9a10a8f99bce9ee8163435
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14082
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Jeffrey Hutzelman <jhutz@cmu.edu>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit facff58b840a47853592510617ba7a1da2e3eaa9
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jul 3 10:35:06 2020 -0600
|
|
|
|
|
|
|
|
|
|
LINUX 5.8: use lru_cache_add
|
|
|
|
|
|
|
|
|
|
With Linux-5.8-rc1 commit 'mm: fold and remove lru_cache_add_anon() and
|
|
|
|
|
lru_cache_add_file()' (6058eaec), the lru_cache_add_file function is
|
|
|
|
|
removed since it was functionally equivalent to lru_cache_add.
|
|
|
|
|
|
|
|
|
|
Replace lru_cache_add_file with lru_cache_add.
|
|
|
|
|
|
|
|
|
|
Introduce a new autoconf test to determine if lru_cache_add is present
|
|
|
|
|
|
|
|
|
|
For reference, the Linux changes associated with the lru caches:
|
|
|
|
|
|
|
|
|
|
__pagevec_lru_add introduced before v2.6.12-rc2
|
|
|
|
|
|
|
|
|
|
lru_cache_add_file introduced in v2.6.28-rc1
|
|
|
|
|
__pagevec_lru_add_file replaces __pagevec_lru_add in v2.6.28-rc1
|
|
|
|
|
vmscan: split LRU lists into anon & file sets (4f98a2fee)
|
|
|
|
|
|
|
|
|
|
__pagevec_lru_add removed in v5.7 with a note to use lru_cache_add_file
|
|
|
|
|
mm/swap.c: not necessary to export __pagevec_lru_add() (bde07cfc6)
|
|
|
|
|
|
|
|
|
|
lru_cache_add_file removed in v5.8
|
|
|
|
|
mm: fold and remove lru_cache_add_anon() and lru_cache_add_file()
|
|
|
|
|
(6058eaec)
|
|
|
|
|
lru_cache_add exported
|
|
|
|
|
mm: fold and remove lru_cache_add_anon() and lru_cache_add_file()
|
|
|
|
|
(6058eaec)
|
|
|
|
|
|
|
|
|
|
Openafs will use:
|
|
|
|
|
lru_cache_add on 5.8 kernels
|
|
|
|
|
lru_cache_add_file from 2.6.28 through 5.7 kernels
|
|
|
|
|
__pagevec_lru_add/__pagevec_lru_add_file on pre 2.6.28 kernels
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14249
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Yadavendra Yadav <yadayada@in.ibm.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 7d85ce221d6ccc19cf76ce7680c74311e4ed2632)
|
|
|
|
|
|
|
|
|
|
Change-Id: Iba6ef4441687dbf60d227a708e2a032c2c0dc79f
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14269
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 335f37be13d2ff954e4aeea617ee66502170805e
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jul 3 10:34:42 2020 -0600
|
|
|
|
|
|
|
|
|
|
LINUX 5.8: do not set name field in backing_dev_info
|
|
|
|
|
|
|
|
|
|
Linux-5.8-rc1 commit 'bdi: remove the name field in struct
|
|
|
|
|
backing_dev_info' (1cd925d5838)
|
|
|
|
|
|
|
|
|
|
Do not set the name field in the backing_dev_info structure if it is
|
|
|
|
|
not available. Uses an existing config test
|
|
|
|
|
'STRUCT_BACKING_DEV_INFO_HAS_NAME'
|
|
|
|
|
|
|
|
|
|
Note the name field in the backing_dev_info structure was added in
|
|
|
|
|
Linux-2.6.32
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14248
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit d8ec294534fcdee77a2ccd297b4b167dc4d5573d)
|
|
|
|
|
|
|
|
|
|
Change-Id: I3d9e18092db998a4c4f26bd63ee3b75383a53d4c
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14268
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit d7fc5bf9bf031089d80703c48daf30d5b15a80ca
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri Jul 3 10:33:51 2020 -0600
|
|
|
|
|
|
|
|
|
|
LINUX 5.8: Replace kernel_setsockopt with new funcs
|
|
|
|
|
|
|
|
|
|
Linux 5.8-rc1 commit 'net: remove kernel_setsockopt' (5a892ff2facb)
|
|
|
|
|
retires the kernel_setsockopt function. In prior kernel commits new
|
|
|
|
|
functions (ip_sock_set_*) were added to replace the specific functions
|
|
|
|
|
performed by kernel_setsockopt.
|
|
|
|
|
|
|
|
|
|
Define new config test 'HAVE_IP_SOCK_SET' if the 'ip_sock_set' functions
|
|
|
|
|
are available. The config define 'HAVE_KERNEL_SETSOCKOPT' is no longer
|
|
|
|
|
set in Linux 5.8.
|
|
|
|
|
|
|
|
|
|
Create wrapper functions that replace the kernel_setsockopt calls with
|
|
|
|
|
calls to the appropriate Linux kernel function(s) (depending on what
|
|
|
|
|
functions the kernel supports).
|
|
|
|
|
|
|
|
|
|
Remove the unused 'kernel_getsockopt' function (used for building with
|
|
|
|
|
pre 2.6.19 kernels).
|
|
|
|
|
|
|
|
|
|
For reference
|
|
|
|
|
Linux 2.6.19 introduced kernel_setsockopt
|
|
|
|
|
Linux 5.8 removed kernel_setsockopt and replaced the functionality
|
|
|
|
|
with a set of new functions (ip_sock_set_*)
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14247
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit c48072b9800759ef1682b91ff1e962f6904a2594)
|
|
|
|
|
|
|
|
|
|
Change-Id: I2724fad06b1882149d2066d13eced55eff5ee695
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14267
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 0f67e733e82a9001f3f9253c5e1880be845d537b
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Thu Apr 2 13:27:50 2020 -0600
|
|
|
|
|
|
|
|
|
|
LINUX: Include linux/time.h for linux/errqueue.h
|
|
|
|
|
|
|
|
|
|
The configuration test for errqueue.h fails with an undefined structure
|
|
|
|
|
error on a Linux 3.17 (or higher) system. This prevents setting
|
|
|
|
|
HAVE_LINUX_ERRQUEUE_H, which is used to define AFS_RXERRQ_ENV.
|
|
|
|
|
|
|
|
|
|
Linux commit f24b9be5957b38bb420b838115040dc2031b7d0c (net-timestamp:
|
|
|
|
|
extend SCM_TIMESTAMPING ancillary data struct) - which was picked up in
|
|
|
|
|
linux 3.17 added a structure that uses the timespec structure. After
|
|
|
|
|
this commit, we need to include linux/time.h to pull in the definition
|
|
|
|
|
of the timespec struct.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/13950
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Tested-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 086d185872da5f19447cf5ec7846e7ce5104563f)
|
|
|
|
|
|
|
|
|
|
Change-Id: I67d01b11c5ea95b8b87832fc833f8fc850ade684
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14130
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 5a14bd0abe83b580f0cc7a200ae963399ab7de5f
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Tue May 26 12:11:28 2020 -0600
|
|
|
|
|
|
|
|
|
|
vol: Fix format-truncation warning with gcc-10.1
|
|
|
|
|
|
|
|
|
|
Building with gcc-10.1 produces a warning (error if --enable-checking)
|
|
|
|
|
in vol-salvage.c
|
|
|
|
|
|
|
|
|
|
error: ‘%s’ directive output may be truncated writing up to 755 bytes
|
|
|
|
|
into a region of size 255 [-Werror=format-truncation=]
|
|
|
|
|
809 | snprintf(inodeListPath, 255, "%s" OS_DIRSEP "salvage.inodes.%s.%d", tdir, name,
|
|
|
|
|
|
|
|
|
|
Use strdup/asprintf to allocate the buffer dynamically instead of using
|
|
|
|
|
a buffer with a hardcoded size.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14207
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit d73680c5f70ee5aeb634a9ec88bf1097743d0f76)
|
|
|
|
|
|
|
|
|
|
Change-Id: I8d3bf244a70f723f585738905deea7ddfb1bb862
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14232
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit d5fc5283e91ea94a67df8364a5b8bf8970ffe934
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Mon Oct 9 22:16:09 2017 -0400
|
|
|
|
|
|
|
|
|
|
afsmonitor: remove unused LWP_WaitProcess
|
|
|
|
|
|
|
|
|
|
Remove the unimplemented once-only flag and the unused LWP_WaitProcess
|
|
|
|
|
call.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/12745
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 7c27365ea24aed5787f6fc03f30f6085c78ece51)
|
|
|
|
|
|
|
|
|
|
Change-Id: I3b61f9fb4f45564304b0e35878d3535a10e31d02
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14226
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit a2eec64374d6b754b29c509b554573cb6e53eb46
|
|
|
|
|
Author: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Date: Fri May 22 12:16:48 2020 -0600
|
|
|
|
|
|
|
|
|
|
Avoid duplicate definitions of globals
|
|
|
|
|
|
|
|
|
|
GCC 10 changed a default flag from -fcommon to -fno-common. See
|
|
|
|
|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678 for some background.
|
|
|
|
|
|
|
|
|
|
The change in gcc 10 results in build link-time errors. For example:
|
|
|
|
|
../../src/xstat/.libs/liboafs_xstat_cm.a(xstat_cm.o):(.bss+0x2050):
|
|
|
|
|
multiple definition of `numCollections';
|
|
|
|
|
|
|
|
|
|
Ensure that only one definition for global data objects exist and change
|
|
|
|
|
references to use "extern" as needed.
|
|
|
|
|
|
|
|
|
|
To ensure that future changes do not introduce duplicated global
|
|
|
|
|
definitions, add the -fno-common flag to XCFLAGS when using the
|
|
|
|
|
configure --enable-checking setting.
|
|
|
|
|
|
|
|
|
|
[cwills@sinenomine.net: Note for 1.8.x: renamed terminationEvent
|
|
|
|
|
to cm_terminationEvent/fs_terminationEvent instead of deleting it.]
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14106
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 0e2072ae386d4111bef161eb955964b649c31386)
|
|
|
|
|
|
|
|
|
|
Change-Id: I54ca61d372cf763e4a28c0b0829ea361219f6203
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14217
|
|
|
|
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
|
|
|
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit 278592ef2d766c77de821b9da80359f24fec5b62
|
|
|
|
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|
|
|
|
Date: Mon Jan 27 12:26:41 2020 -0500
|
|
|
|
|
|
|
|
|
|
uss: more gcc9 truncation warning appeasement
|
|
|
|
|
|
|
|
|
|
uss_procs_PickADir needs a larger buffer to avoid a truncation warning.
|
|
|
|
|
While here, replace some magic numbers with existing symbols.
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14049
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit 6c54bc9e121b923ec5fdd60ee510171987e55017)
|
|
|
|
|
|
|
|
|
|
Change-Id: I5cb76a8a9b2a9b342a1ddae2f41ecab82f762326
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14140
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|
|
|
|
|
|
|
|
|
commit ff07fa706e00f6dde13c58588d2f75e7fc26ecf5
|
|
|
|
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|
|
|
|
Date: Fri Jan 10 09:06:38 2020 -0500
|
|
|
|
|
|
|
|
|
|
tests: do not resolve addresses in vos/vl test
|
|
|
|
|
|
|
|
|
|
The vos-t test adds a set of 10.* test addresses to a test vlserver and
|
|
|
|
|
runs vos to read them back. When the test is run in an environment
|
|
|
|
|
where hosts have been assigned in the 10.* internal network, vos will resolve
|
|
|
|
|
the addresses to hostnames and the test fails. Pass the -noresolve
|
|
|
|
|
option to vos for this test when checking for the expected list of
|
|
|
|
|
addresses.
|
|
|
|
|
|
|
|
|
|
Example test output before this commit:
|
|
|
|
|
|
|
|
|
|
./vos-t
|
|
|
|
|
...
|
|
|
|
|
# seen: 10.0.0.0
|
|
|
|
|
10.0.0.1
|
|
|
|
|
myhost.example.com
|
|
|
|
|
10.0.0.3
|
|
|
|
|
...
|
|
|
|
|
not ok 5 - vos output matches
|
|
|
|
|
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14020
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|
|
|
|
(cherry picked from commit dcf44ab5fc5c1f5e2e759ea4b6156f7e1faa4b7a)
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie2a6d97070fe47886a1ccf8c0ddf03012f805beb
|
|
|
|
|
Reviewed-on: https://gerrit.openafs.org/14105
|
|
|
|
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|
|
|
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|