forked from pool/openafs
770 lines
32 KiB
Plaintext
770 lines
32 KiB
Plaintext
|
commit 774df869fc1753e94f79c6a0b617b7adb9e4060c
|
|||
|
Author: Jeffrey Altman <jaltman@auristor.com>
|
|||
|
Date: Sat Feb 10 10:47:24 2018 -0500
|
|||
|
|
|||
|
rx: Do not count RXGEN_OPCODE towards abort threshold
|
|||
|
|
|||
|
An RXGEN_OPCODE is returned for opcodes that are not implemented by the
|
|||
|
rx service. These opcodes might be deprecated opcodes that are no
|
|||
|
longer supported or more recently registered opcodes that have yet to
|
|||
|
be implemented. Clients should not be punished for issuing unsupported
|
|||
|
calls. The clients might be old and are issuing no longer supported
|
|||
|
calls or they might be newer and are issuing yet to be implemented calls
|
|||
|
as part of a feature test and fallback strategy.
|
|||
|
|
|||
|
This change ignores RXGEN_OPCODE errors when deciding how to adjust the
|
|||
|
rx_call.abortCount. When an RXGEN_OPCODE abort is sent the
|
|||
|
rx_call.abortCount and rx_call.abortError are left unchanged which
|
|||
|
preserves the state for the next failing call.
|
|||
|
|
|||
|
Note that this change intentionlly prevents the incrementing of the
|
|||
|
abortCount for client connections as they never send delay aborts.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12906
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit f82d1c7d5aeae148305e867c1f79c6ea2f9e0a2a)
|
|||
|
|
|||
|
Change-Id: I7a4216bea3a355c31a390c5b4753b4ab0c25661c
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12914
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit cabecc719195047ea321bd62e95d52503d15686e
|
|||
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Date: Tue Dec 26 17:42:39 2017 -0600
|
|||
|
|
|||
|
Make OpenAFS 1.8.0pre5
|
|||
|
|
|||
|
Update version strings for the fifth 1.8.0 prerelease.
|
|||
|
|
|||
|
Change-Id: I118da0fc55013ccfb2b5cd586cefb1b0c27f10d9
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12910
|
|||
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 5f0714312b211c4a6d6157df6f1f3d9e26dcc03f
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Fri Feb 9 17:59:19 2018 -0500
|
|||
|
|
|||
|
Update NEWS for 1.8.0pre5
|
|||
|
|
|||
|
Change-Id: I09e509694c5f7ad59e279b89bd9e144aca2ec4e7
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12904
|
|||
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 50fcd6763d4387950390b732d2a131c230d44c99
|
|||
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|||
|
Date: Wed Jun 21 16:24:05 2017 -0400
|
|||
|
|
|||
|
ubik: check if epoch is sane before db relabel
|
|||
|
|
|||
|
The sync-site relabels its database at the end of the first write
|
|||
|
transaction. The new label will be equal to the time at which the
|
|||
|
sync-site in question first received its coordinator mandate. This time
|
|||
|
is stored by a global called ubik_epochTime. In order to make sure that
|
|||
|
the new database label is sane, only relabel the database if
|
|||
|
ubik_epochTime is within a specific range.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12640
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Andrew Deason <adeason@dson.org>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
(cherry picked from commit f5c289d00aaf7c5525b477da5b89f6675456c211)
|
|||
|
|
|||
|
Change-Id: I78ebd2b8aeae01ef5e3b826ad6f1de5a5c1db79e
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12886
|
|||
|
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 2b3df9b2f48dcbf3690e093000879b0f06c7e176
|
|||
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Date: Sat Dec 9 11:37:59 2017 -0600
|
|||
|
|
|||
|
Replace <rpc/types.h> with <rx/xdr.h>
|
|||
|
|
|||
|
Our in-tree xdr.h appears to have started life as a concatenation of
|
|||
|
rpc/types.h and rpc/xdr.h, and should include all the needed functionality.
|
|||
|
Indeed, commit 7293ddf325b149cae60d3abe7199d08f196bd2b9 even indicates
|
|||
|
that we expect to be using our in-tree XDR everywhere anyway, so the
|
|||
|
system XDR is superfluous.
|
|||
|
|
|||
|
Note that afs/sysincludes.h (not afsincludes.h!) already includes
|
|||
|
rx/xdr.h ifndef AFS_LINUX22_ENV.
|
|||
|
|
|||
|
This change should help systems running glibc 2.26 or newer, which has
|
|||
|
stopped providing the Sun RPC headers by default.
|
|||
|
|
|||
|
While here remove some duplicate includes of rpc/types.h in the
|
|||
|
AIX-specific sources.
|
|||
|
|
|||
|
The Solaris NFS translator bits cannot really be changed, since the system
|
|||
|
headers are used and have tight interdependencies.
|
|||
|
|
|||
|
Update rxgen to not emit rpc/types.h inclusion.
|
|||
|
|
|||
|
[mmeffie: squash 12801 to not emit rpc/types.h from rxgen]
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12800
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit e443a9fb67dbc29e6cc36661a4ac6e91af113f23)
|
|||
|
|
|||
|
Change-Id: I351e5c1e1223c49ca76e3d68c264ac1625abae60
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12894
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 833e2783a39367f3cebfb79f403a75752f81ab09
|
|||
|
Author: Ian Wienand <iwienand@redhat.com>
|
|||
|
Date: Fri Feb 2 10:52:26 2018 +1100
|
|||
|
|
|||
|
Add .gitreview
|
|||
|
|
|||
|
git-review [1] makes it much easier to submit changes. Add a default
|
|||
|
configuration file.
|
|||
|
|
|||
|
[1] https://docs.openstack.org/infra/git-review/usage.html
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12884
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit c7c71d2429cf685f3ffad6b2e6d102d900edc197)
|
|||
|
|
|||
|
Change-Id: I271cfeb6aea888ae40539e248a18131b0affeda8
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12901
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 780ed24d360df6772b2408017a5d555ae36217c0
|
|||
|
Author: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Date: Tue Jun 30 01:54:21 2015 -0400
|
|||
|
|
|||
|
SOLARIS: Avoid vcache locks when flushing pages for RO vnodes
|
|||
|
|
|||
|
We have multiple code paths that hold the following locks at the same
|
|||
|
time:
|
|||
|
|
|||
|
- avc->lock for a vcache
|
|||
|
- The page lock for a page in 'avc'
|
|||
|
|
|||
|
In order to avoid deadlocks, we need a consistent ordering for obtaining
|
|||
|
these two locks. The code in afs_putpage() currently obtains avc->lock
|
|||
|
before the page lock (Obtain*Lock is called before pvn_vplist_dirty).
|
|||
|
|
|||
|
The code in afs_getpages() also obtains avc->lock before the page lock,
|
|||
|
but it does so in a loop for all requested pages (via pvn_getpages()).
|
|||
|
On the second iteration of that loop, it obtains avc->lock, and the page
|
|||
|
from the first iteration of the loop is still locked. Thus, it obtains a
|
|||
|
page lock before locking avc->lock in some cases.
|
|||
|
|
|||
|
Since we have two code paths that obtain those two locks in a different
|
|||
|
order, a deadlock can occur. Fixing this properly requires changing at
|
|||
|
least one of those code paths, so the locks are taken in a consistent
|
|||
|
order. However, doing so is complex and will be done in a separate
|
|||
|
future commit.
|
|||
|
|
|||
|
For this commit, we can avoid the deadlock for RO volumes by simply
|
|||
|
avoiding taking avc->lock in afs_putpages() at all while the pages are
|
|||
|
locked. Normally, we lock avc->lock because pvn_vplist_dirty() will call
|
|||
|
afs_putapage() for each dirty page (and afs_putapage() requires
|
|||
|
avc->lock held). But for RO volumes, we will have no dirty pages
|
|||
|
(because RO volumes cannot be written to from a client), and so
|
|||
|
afs_putapage() will never be called.
|
|||
|
|
|||
|
So to avoid this deadlock issue for RO volumes, avoid taking avc->lock
|
|||
|
across the pvn_vplist_dirty() call in afs_putpage(). We now pass a dummy
|
|||
|
pageout callback function to pvn_vplist_dirty() instead, which should
|
|||
|
never be called, and which panics if it ever is.
|
|||
|
|
|||
|
We still need to hold avc->lock a few other times during afs_putpage()
|
|||
|
for other minor reasons, but none of these hold page locks at the same
|
|||
|
time, so the deadlock issue is still avoided.
|
|||
|
|
|||
|
[mmeffie: comments, and fix missing write lock, fix lock releases]
|
|||
|
[adeason: revised commit message]
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12247
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Andrew Deason <adeason@dson.org>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 5e09a694ec2c0cd20f5dee500eff6bc3dd04c097)
|
|||
|
|
|||
|
Change-Id: I5d4e4ddba12c09dc549edeee3cad7de40582ac65
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12900
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 5bb7684f07b5f346b68230c2f38edad4c46dc648
|
|||
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Date: Thu Jan 4 22:00:15 2018 -0600
|
|||
|
|
|||
|
rx: remove trailing semicolons from FBSD mutex operations
|
|||
|
|
|||
|
Since the first introduction of FreeBSD support, the macros
|
|||
|
(MUTEX_ENTER, etc.) for kernel mutex operations have included
|
|||
|
trailing semicolons, unique among all the platforms.
|
|||
|
|
|||
|
This did not cause problems until the recent work on rx event
|
|||
|
handlers, which put a MUTEX_ENTER() in the body of an 'if' clause
|
|||
|
with no brackets, and attempted to follow it with an 'else' clause.
|
|||
|
This results in the following (rather obtuse) compiler error:
|
|||
|
|
|||
|
/root/openafs/src/rx/rx.c:3666:5: error: expected expression
|
|||
|
else
|
|||
|
^
|
|||
|
|
|||
|
Which is more visible in the preprocessed source, as
|
|||
|
|
|||
|
if (condition)
|
|||
|
expression;;
|
|||
|
else
|
|||
|
other_expression;
|
|||
|
|
|||
|
is clearly invalid C.
|
|||
|
|
|||
|
To fix the FreeBSD kernel module build, remove the unneeded semicolons.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12853
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 0760feb7992e1e39f716c5f583fe7f6e85584262)
|
|||
|
|
|||
|
Change-Id: I503a5967a167e9be92721af8dc82d191f3bf18ba
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12899
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 2f07951a47a8a820c89e4e6ab1e347858acd8ab5
|
|||
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Date: Sat Dec 9 11:44:51 2017 -0600
|
|||
|
|
|||
|
libuafs: remove stale afs_nfsdisp.lo rule
|
|||
|
|
|||
|
afs_nfsdisp.lo is not used, so we do not need a build rule for it.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12802
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit decb4308d4e18ad9f6f181e3df5f737698dba7ad)
|
|||
|
|
|||
|
Change-Id: I53680df1c8648ceb43cc032cada573964622d5b4
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12898
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 4988628a2e41955951a49ea0032cabe13f9337d3
|
|||
|
Author: Christof Hanke <christof.hanke@rzg.mpg.de>
|
|||
|
Date: Mon Dec 18 16:58:39 2017 +0100
|
|||
|
|
|||
|
Avoid gcc warning
|
|||
|
|
|||
|
When using the configure option --enable-checking with gcc 7.2.1,
|
|||
|
the compilation fails with
|
|||
|
|
|||
|
vutil.c:860:20: error: ‘%s’ directive writing up to 255 bytes into \
|
|||
|
a region of size 63 [-Werror=format-overflow=]
|
|||
|
|
|||
|
This can be seen in the logs of the openSUSE Tumbleweed builder
|
|||
|
for e.g. build 2368.
|
|||
|
Avoid this warning by using snprintf which is provided by libroken
|
|||
|
for all platforms.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12813
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
(cherry picked from commit fd4eaebb60dbefc27be98015fee23a3cf5d9752d)
|
|||
|
|
|||
|
Change-Id: I3be14f6f1228fd09f036da7ff4f1505c65e49406
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12897
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 35636bd9e32015bc10e09ccbb34a71a1459cdc4b
|
|||
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|||
|
Date: Mon Aug 21 14:21:54 2017 -0400
|
|||
|
|
|||
|
ubik: avoid DISK_Begin on sites that didn't vote for sync
|
|||
|
|
|||
|
As already described on 7c708506, SDISK_Begin fails on remotes if
|
|||
|
lastYesState is not set. To fix this problem, 7c708506 does not allow
|
|||
|
write transactions until we know that lastYesState is set on at least
|
|||
|
quorum (ubik_syncSiteAdvertised == 1). In other words, if enough sites
|
|||
|
received a beacon packet informing that a sync-site was elected, write
|
|||
|
transactions will be allowed. This means that ubik_syncSiteAdvertised
|
|||
|
can be true while lastYesState is not set in a few sites.
|
|||
|
|
|||
|
Consider the following scenario in a cell with frequent write
|
|||
|
transactions:
|
|||
|
|
|||
|
Site A => Sync-site (up)
|
|||
|
Site B => Remote 1 (up)
|
|||
|
Site C => Remote 2 (down - unreachable)
|
|||
|
|
|||
|
Since A and B are up, we have quorum. After the second wave of beacons,
|
|||
|
ubik_syncSiteAdvertised will be true and write transactions will be
|
|||
|
allowed. At some point, C is not unreachable anymore. Site A sends a
|
|||
|
copy of its database to C, but C did not vote for A yet (lastYesState ==
|
|||
|
0). A new write transaction is initialized and, since lastYesState is
|
|||
|
not set on C, DISK_Begin fails on this remote site and C is marked as
|
|||
|
down. Since C is reachable, A will mark this remote site as up. The
|
|||
|
sync-site will send its database to C, but C did not vote for A yet. A
|
|||
|
new write transaction is initialized and, since lastYesState is not set
|
|||
|
on C, DISK_Begin fails on this remote site and C is marked as down. In a
|
|||
|
cell with frequent write transactions, this cycle will repeat forever.
|
|||
|
As a result, the sync-site will be constantly sending its database to C
|
|||
|
and quorum will be operating with less sites, increasing the chances
|
|||
|
of re-elections.
|
|||
|
|
|||
|
To fix this problem, do not call DISK_Begin on remotes that did not
|
|||
|
vote for the sync-site yet.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12715
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 68ec78950a6e39dc1bf15012d4b889728086d0b7)
|
|||
|
|
|||
|
Change-Id: I3764c23125f0bc675762449cd29b282ba403f871
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12896
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 51816cfd047c05921218ecb1161c9dd7986a422f
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Wed Jan 31 16:52:40 2018 -0500
|
|||
|
|
|||
|
add rfc3961.h to kernel sources
|
|||
|
|
|||
|
Export this header to the kernel sources in the libafs_tree, since it is
|
|||
|
needed for the kernel module build.
|
|||
|
|
|||
|
FIXES 134476
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12882
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 073522b3d49467af107d1143cfa015c53347e1e3)
|
|||
|
|
|||
|
Change-Id: I4e5c7883a1dd4b66b9252f4e630ca489f05e9ad3
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12890
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 07811e3b15de8926d63b423804c620bc3501745b
|
|||
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Date: Mon Jan 8 22:28:24 2018 -0600
|
|||
|
|
|||
|
Add param.h files for recent FreeBSD
|
|||
|
|
|||
|
Add files for FreeBSD 10.4, 11.1, and 12.0 (12-CURRENT), for i386 and amd64.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12863
|
|||
|
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 88dc4d93f5ef080da8f56fac453f095e6c79d4a0)
|
|||
|
|
|||
|
Change-Id: I6ddb0f03e209b0ce9c7ed1168c86a675d7802c23
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12888
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 0ba9b5559e112005a6f621ebe55f382bcc2aae0d
|
|||
|
Author: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Date: Mon Jan 8 21:27:04 2018 -0600
|
|||
|
|
|||
|
FBSD: catch up to missing sysnames
|
|||
|
|
|||
|
Add sysnames for i386 and amd64 10.4, 11.1, and 12.0 (12-CURRENT, at present).
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12862
|
|||
|
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 c390f368a5012f866c1b4ce46d6ac6af6cef2fd5)
|
|||
|
|
|||
|
Change-Id: I5183c19d446fd0c00bd26c32ca3f7f00a4d12907
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12887
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 1f10f087264cb39a8354c0baf71eb1fa13071466
|
|||
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|||
|
Date: Mon Aug 21 15:50:14 2017 -0400
|
|||
|
|
|||
|
ubik: update ubik_dbVersion during SDISK_SendFile
|
|||
|
|
|||
|
The ubik_dbVersion global represents the sync site's database version
|
|||
|
and it is mostly used by the remote sites for sanity checks. Currently,
|
|||
|
this global is updated when database changes are made on the sync site
|
|||
|
(SDISK_Commit or SDISK_SetVersion), as well as every time we vote "yes"
|
|||
|
for the sync-site in a beacon reply. Unfortunately, ubik_dbVersion is
|
|||
|
not updated when a copy of the sync site's database is received via
|
|||
|
DISK_SendFile, and it won't get updated until our next "yes" vote.
|
|||
|
During this window, the current database version will not match
|
|||
|
ubik_dbVersion. As a result, any write transaction during this time
|
|||
|
frame will fail on the remote site in question.
|
|||
|
|
|||
|
To fix this problem, do not wait for the next beacon packet to update
|
|||
|
ubik_dbVersion when the sync site's database is received; just update
|
|||
|
it when we get the new database. Since no write transactions are
|
|||
|
allowed while the db is transferring, ubik_dbVersion can be safely
|
|||
|
updated.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12716
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Andrew Deason <adeason@dson.org>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 50c1d1088d2adcbb37b6a9d23fdd63617b1267be)
|
|||
|
|
|||
|
Change-Id: Icbbe9efb9c8dab9ac69237380e824d4a523a53d3
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12885
|
|||
|
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit e9419dc895801bda6962f2ac0f5981631a0d95c7
|
|||
|
Author: Andrew Deason <adeason@sinenomine.net>
|
|||
|
Date: Thu Jan 11 21:27:28 2018 -0600
|
|||
|
|
|||
|
LINUX: Avoid locking inode in check_dentry_race
|
|||
|
|
|||
|
Currently, check_dentry_race locks the parent inode in order to ensure
|
|||
|
it is not running in parallel with d_splice_alias for the same inode.
|
|||
|
(For old Linux kernel versions; see commit b0461f2d: "LINUX:
|
|||
|
Workaround d_splice_alias/d_lookup race".)
|
|||
|
|
|||
|
However, it is possible to hit this area of code when the parent inode
|
|||
|
is already locked. When someone tries to create a file, directory, or
|
|||
|
symlink, Linux tries to lookup the dentry for the target path, to see
|
|||
|
if it already exists. While looking up the last component of the path,
|
|||
|
Linux locks the directory, and if it finds a dentry for the target
|
|||
|
name, it calls d_invalidate on it while the parent directory is
|
|||
|
locked.
|
|||
|
|
|||
|
For a dentry with a NULL inode, we'll then try to lock the parent
|
|||
|
inode in check_dentry_race. But since the inode is already locked, we
|
|||
|
will deadlock.
|
|||
|
|
|||
|
From a user's point of view, the hang can be reproduced by doing
|
|||
|
something similar to:
|
|||
|
|
|||
|
$ mkdir dir # succeeds
|
|||
|
$ rmdir dir
|
|||
|
$ ls -l dir
|
|||
|
ls: cannot access dir: No such file or directory
|
|||
|
$ mkdir dir # hangs
|
|||
|
|
|||
|
To avoid this, we can just change which lock we're using to avoid
|
|||
|
check_dentry_race/d_splice_alias from running in parallel. Instead of
|
|||
|
locking the parent inode, introduce a new global lock (called
|
|||
|
dentry_race_sem), and lock that in check_dentry_race and around our
|
|||
|
d_splice_alias call. We know that those are the only two users of this
|
|||
|
new lock, so this should avoid any such deadlocks.
|
|||
|
|
|||
|
This does potentially reduce performance, since all tasks that hit
|
|||
|
check_dentry_race or d_splice_alias will take the same global lock.
|
|||
|
However, this at least still allows us to make use of negative
|
|||
|
dentries, and this entire code path only applies to older Linux
|
|||
|
kernels. It could be possible to add a new lock into struct vcache
|
|||
|
instead, but using a global lock like this commit does is much
|
|||
|
simpler.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12868
|
|||
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit ef1d4c8d328e9b9affc9864fd084257e9fa08445)
|
|||
|
|
|||
|
Change-Id: Ia8e28519fff36baca7dc4061ceef6719a2a738d4
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12881
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit f523c92a74bace287d1139fab77a030b9598ef61
|
|||
|
Author: Caitlyn Marko <cmarko@sinenomine.net>
|
|||
|
Date: Thu Feb 9 09:16:17 2017 -0500
|
|||
|
|
|||
|
SOLARIS: save kernel module function arguments for debugging
|
|||
|
|
|||
|
Add the -Wu,-save_args compiler option when building kernel modules
|
|||
|
under Solaris 10 and 11 for the amd64 architecture.
|
|||
|
|
|||
|
Binaries generated with this option save function arguments on the stack
|
|||
|
during function entry for debugging purposes. Up to six integer
|
|||
|
arguments are saved on function entry, and are not modified during the
|
|||
|
execution of the function.
|
|||
|
|
|||
|
[mmeffie: commit message update]
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12798
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 32d0493a7e4f74f5e5efdfde5eca29ed7d1bf3ec)
|
|||
|
|
|||
|
Change-Id: I478ce65da78b86aa3c13e1c615bafd51d0f5d567
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12903
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 96ce04c78b5f745424165494c9b76d7ce227eeaa
|
|||
|
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
|
|||
|
Date: Mon Feb 5 21:16:17 2018 +0000
|
|||
|
|
|||
|
autoconf: detect ctf-tools and add ctf to libafs
|
|||
|
|
|||
|
CTF is a reduced form of debug information similar to DWARF and stab. It
|
|||
|
describes types and function prototypes. The principal objective of the
|
|||
|
format is to shrink the data size as much as possible so that it could
|
|||
|
be included in a production environment. MDB, DTrace, and other tools
|
|||
|
use CTF debug information to read and display structures correctly.
|
|||
|
|
|||
|
This commit introduces a new configure option called --with-ctf-tools.
|
|||
|
This option can be used to specify an alternative path where the tools
|
|||
|
can be found. If the path is not provided, the tools will be searched
|
|||
|
in a set of default directories (including $PATH). The CTF debugging
|
|||
|
information will only be included if the corresponding --enable-debug /
|
|||
|
--enable-debug-kernel is specified.
|
|||
|
|
|||
|
Note: at the moment, the Solaris kernel module is the only module
|
|||
|
benefited by this commit.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12680
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 88cb536f99dc58fdbeb9fa6c47c26774241a0cb6)
|
|||
|
|
|||
|
Change-Id: I174347370a83b31f68d2631c965e17d72b438cd1
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12902
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 0247eb0a8c154811f495142276029a617ae0825a
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Sat Dec 30 17:59:38 2017 -0500
|
|||
|
|
|||
|
autoconf: refactor linux-checks.m4
|
|||
|
|
|||
|
Further refactoring of the autoconf macros. Divy up the linux kernel
|
|||
|
checks into smaller files.
|
|||
|
|
|||
|
This is a non-functional change. Care has been taken preserve the
|
|||
|
ordering of the autoconf tests. Except for whitespace, the generated
|
|||
|
configure file has not been changed by this refactoring. This has been
|
|||
|
verified with a 'diff -u -w -B' comparison of the generated configure
|
|||
|
file before and after applying this commit.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12844
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 6a2b85cd4c00a08e165cb96d2cb56bf87c6324bc)
|
|||
|
|
|||
|
Change-Id: Iae325bc14fb160f27791b2f3d82198fe671badd8
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12878
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit e05b0b10b942ba3585f6d5d505a282c2de95c243
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Sat Dec 30 12:12:59 2017 -0500
|
|||
|
|
|||
|
autoconf: refactor ostype.m4
|
|||
|
|
|||
|
Further refactoring of the autoconf macros. Move more linux and solaris
|
|||
|
specific checks into their own files.
|
|||
|
|
|||
|
This is a non-functional change. Care has been taken preserve the
|
|||
|
ordering of the autoconf tests. Except for whitespace, the generated
|
|||
|
configure file has not been changed by this refactoring. This has been
|
|||
|
verified with a 'diff -u -w -B' comparison of the generated configure
|
|||
|
file before and after applying this commit.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12843
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 3c2e39bab7d927aa5f20d02a5e327927a4b2b553)
|
|||
|
|
|||
|
Change-Id: I4d91753afd90e4735ab61413e757f6852750a3de
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12877
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit e54963757320adb95b0c73bbd84fb8bf34319210
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Fri Dec 29 14:24:28 2017 -0500
|
|||
|
|
|||
|
autoconf: refactor acinclude.m4
|
|||
|
|
|||
|
The acinclude.m4 is very large and often requires to be changed for
|
|||
|
unrelated commits. Divy up the large acinclude.m4 into a number of
|
|||
|
smaller files to avoid so many contentions and to make the autoconf
|
|||
|
system easier to maintain.
|
|||
|
|
|||
|
This is a non-functional change. Care has been taken preserve the
|
|||
|
ordering of the autoconf tests. Except for whitespace, the generated
|
|||
|
configure file has not been changed by this refactoring. This has been
|
|||
|
verified with a 'diff -u -w -B' comparison of the generated configure
|
|||
|
file before and after applying this commit.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12842
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit c72622a244e561173e86ffe88ee3c9a8c823a76a)
|
|||
|
|
|||
|
Change-Id: I9504eaa2430fd35f79b55c3df96c82cc7e58fafd
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12876
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 0798b54b258f48cae8a5b1b3e107a22693d37937
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Mon Feb 8 12:12:22 2016 -0500
|
|||
|
|
|||
|
CellServDB update 14 Mar 2017
|
|||
|
|
|||
|
Update all remaining copies of CellServDB in the tree, and make the
|
|||
|
Red Hat packaging use it by default too.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12880
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 3ca1352170f87994d42578c5bc75e52c4103bc69)
|
|||
|
|
|||
|
Change-Id: I773d35745e14903dd3069a0627932153900e0ba6
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12889
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 5eb64632fd76bb7e26a90ab08c83132e7ac99e23
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Wed Jan 17 17:33:50 2018 -0500
|
|||
|
|
|||
|
redhat: fix conditional for kernel-debuginfo files directive
|
|||
|
|
|||
|
Commit 443dd5367e0cd9050ad39a6594c5be521271b4e9 added support for a
|
|||
|
separate debuginfo package for the kernel module. Unfortunately, the
|
|||
|
%files directive for the kernel module debuginfo package was incorrectly
|
|||
|
placed in the %if stanza of the build_userspace condition, so the
|
|||
|
rpmbuild fails when attempting to build just the kernel module.
|
|||
|
|
|||
|
That is, when running rpmbuild with the options:
|
|||
|
|
|||
|
rpmbuild --define "build_userspace 0" --define "build_modules 1" ...
|
|||
|
|
|||
|
rpmbuild fails with:
|
|||
|
|
|||
|
RPM build errors:
|
|||
|
Installed (but unpackaged) file(s) found:
|
|||
|
/usr/lib/debug/lib/modules/.../extra/openafs/openafs.ko.debug
|
|||
|
|
|||
|
Fix this by moving the new %files directive out of the build_userspace
|
|||
|
conditional.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12874
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit f599e1ce6354c42a9c0c8f7205ba8a03c35ea72b)
|
|||
|
|
|||
|
Change-Id: I07e25d3dd43b2cd7056cefb8f0f5c10f78347b85
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12875
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 781624f7f4290a1f44a0f48a04d780e10dd5b3e1
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Fri Jul 21 22:30:43 2017 -0400
|
|||
|
|
|||
|
redhat: avoid rpmbuild exclude directives
|
|||
|
|
|||
|
Older versions of rpmbuild do not support the files exclude directive,
|
|||
|
so fall back to the old way in which we remove the files to be excluded
|
|||
|
and list the files to be included.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12733
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit a71288a387095ccb4be83c1abae34ada80f53185)
|
|||
|
|
|||
|
Change-Id: I01c20bc21ec6143be76458c311d826023c370d51
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12873
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit 9d62e1d5c6e9e888a029a0b6080c27c0b4353ba2
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Fri Jul 21 22:16:44 2017 -0400
|
|||
|
|
|||
|
redhat: move .krb variants to the kauth-client subpackage
|
|||
|
|
|||
|
Move the deprecated klog.krb, pagsh.krb, and tokens.krb programs and man
|
|||
|
pages to the optional openafs-kauth-client subpackage.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12732
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 4d247e1ae446c512031511273d556ef1fd32dca1)
|
|||
|
|
|||
|
Change-Id: I3c6164022b07f0c3283cb54ffd26e1f9c3dd67bb
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12872
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit ea1bf1bd751d391d49bdb33e2e3f2cc79fe8ccde
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Thu Jul 20 04:13:04 2017 -0400
|
|||
|
|
|||
|
redhat: specify man pages without wildcards
|
|||
|
|
|||
|
Currently, some of the man pages are specified with the full name and
|
|||
|
some are specified with a wildcard for the filename extension. Instead,
|
|||
|
specify all the man pages without a wildcards to be more consistent and
|
|||
|
to avoid putting incorrect man pages in packages.
|
|||
|
|
|||
|
This change removes a stray copy the klog.krb5.1 man page from
|
|||
|
openafs-kauth-client subpackage and moves the AuthLog/AuthLog.dir man
|
|||
|
pages to the optional openafs-kauth-server subpackage.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12731
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit 671db4ca5a76625d9b7133510cc1cbdda8a5d9b9)
|
|||
|
|
|||
|
Change-Id: I9d10cc7aad94a2dc004526acb426a9b9badc8e3c
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12871
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
|
|||
|
commit f56ea0e095f4837a65762f5a8fbc6b5c9d58a394
|
|||
|
Author: Michael Meffie <mmeffie@sinenomine.net>
|
|||
|
Date: Fri Jul 21 18:05:48 2017 -0400
|
|||
|
|
|||
|
redhat: remove afsd.fuse man page
|
|||
|
|
|||
|
The afsd.fuse binary is not currently packaged; do not package the man
|
|||
|
page.
|
|||
|
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12730
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
|||
|
(cherry picked from commit a9810b829bdccfed4d1718b11cf4dd51f9565e00)
|
|||
|
|
|||
|
Change-Id: I7c829a492e999cc989e9341e94f56d6669722a4c
|
|||
|
Reviewed-on: https://gerrit.openafs.org/12870
|
|||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
|||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|