forked from pool/openafs
a7c8d16e59
Hello, this package should replace the package openafs18. The reason for this request is that I would like to get this software into Factory, but it violaites the nameing convention. Thus, I decided to have one package "openafs" with the up-to-date version of the software. The package "openafs16" should still stay in filesystems. Once this is accepted, I will create a deletion request for filesystems/openafs18 Many thanks. OBS-URL: https://build.opensuse.org/request/show/586757 OBS-URL: https://build.opensuse.org/package/show/filesystems/openafs?expand=0&rev=1
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>
|