openafs/ChangeLog
Christof Hanke bce285df84 Accepting request 1097970 from home:hauky:branches:filesystems
- update to official openafs-1.8.10
- remove obsolete patches:
  * 7a3ad3bc.diff
  * b885159.diff
  * f6fbb85.diff 
  * 4cf7a9a.diff

OBS-URL: https://build.opensuse.org/request/show/1097970
OBS-URL: https://build.opensuse.org/package/show/filesystems/openafs?expand=0&rev=109
2023-07-11 05:38:45 +00:00

3786 lines
166 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

commit a0b7f71122285f71c3ff0d006d1f9a77b1481732
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date: Thu Jun 29 23:20:28 2023 +0200
Make OpenAFS 1.8.10
Update version strings for the 1.8.10 release, and add the
finishing touch to NEWS.
Change-Id: I5ade3bf8eb05474c5e4344e7c727545e807a0053
Reviewed-on: https://gerrit.openafs.org/15490
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit a48dc74d793a95790c34e9701bbcbe02080308bc
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date: Thu Jan 12 18:06:30 2023 +0100
Make OpenAFS 1.8.10pre1
Update version strings for the first 1.8.10 prerelease.
Change-Id: I116eb9852e7799540fea4cd439f513d571231f45
Reviewed-on: https://gerrit.openafs.org/15282
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 30e83126649e8aeeecf1c10436f6f9a315e459b6
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date: Thu May 18 16:55:11 2023 +0200
Update NEWS for 1.8.10pre1
Release notes for the first 1.8.10 prerelease.
Change-Id: Ie7ed1b65444239528edcb4861ad3e99af54c4bbb
Reviewed-on: https://gerrit.openafs.org/15440
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 abeed74bb0d0bd7a3a5dbd13b9e953a994fb78e6
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri May 5 16:47:45 2023 -0500
LINUX: Set .getattr for symlinks
On Linux, we can define a .getattr callback for files and directories,
which is called when a caller requests metadata for the file, such as
during lstat(). For regular files and directories, we set this to
afs_linux_getattr(), which updates the metadata for the file in
question if it's out of date (CStatd not set).
For symlinks, however, we don't set .getattr at all. This would seem
to allow symlink metadata to become stale if another client changes
it, but the metadata often happens to stay up to date via other means.
For example, we can see the following happen:
- Another client changes, for example, the owner of a symlink we have
cached.
- The fileserver sends us a callback break, and so we clear CStatd for
the vcache for the symlink.
- lstat() is called for the symlink, which causes
afs_linux_dentry_revalidate() to be called for the cached dentry.
Since CStatd is not set for the vcache, we verify the entry by
calling afs_lookup(), and then update the symlink's metadata via
afs_getattr() and vattr2inode().
However, if CStatd _is_ set for the symlink when lstat() is called,
afs_linux_dentry_revalidate() will not update anything, and will just
return success. So, if we manage to set CStatd for the symlink without
updating it's Linux VFS metadata, the Linux metadata won't be updated,
and we'll report the old metadata to the caller of lstat().
We can set CStatd without updating the Linux VFS info in a few
different ways. A few pioctls such as PRemoveMount or PFlushMount can
do this if they encounter an error, but the only code paths that call
these pioctls in OpenAFS (via the 'fs' utility) also lstat() the
relevant path, so this doesn't happen in practice.
A more common way that this can occur is via afs_DoBulkStat(). If
userspace triggers a bulkstat that includes the symlink in question,
the symlink would gain the CStatd flag without any interaction with
the Linux VFS.
For example, say a symlink was chown'd from 'adeason' to 'root'. On
another client with the symlink cached, running 'ls -l' on the symlink
itself would show the updated owner, because
afs_linux_dentry_revalidate() updates the metadata:
$ ls -l dir.slink
lrwxr-xr-x. 1 root root 3 May 5 14:48 dir.slink -> dir
But if we 'ls -l' the entire directory, which contains other entries,
we will bulkstat many of the entries, possibly including the symlink.
And so we may see the old metadata:
$ ls -l
total 9
[...]
lrwxr-xr-x. 1 adeason root 3 May 5 14:48 dir.slink -> dir
Triggering this behavior requires a bulkstat to be triggered before we
access the symlink itself, and so triggering this behavior depends on
the order of the entries in the directory as well as whether the other
items in the dir are cached. As such, triggering this behavior during
normal operation tends to be inconsistent and confusing.
The only lstat() info for symlinks that can change like this is the
owner, group, and modtime; mode bits cannot change, and neither can
the length/size (or the contents in general). So, stale metadata tends
to not be very noticeable.
To fix all of this, set .getattr to afs_linux_getattr() for symlinks,
just like we do for regular files and directories. This ensures that
we will update the Linux VFS metadata for the symlink when it is
requested, so we won't return stale metadata to callers.
This behavior appears to have existed for symlinks on Linux for quite
a while, possibly since our Linux 2.6 support was added. The behavoir
may have been introduced around commit b860b359d58
(initial-linux24-support-20001105) or commit 00543744955
(linux22-fix-20040405). Before those commits, we defined a .revalidate
callback for symlinks, which was called on older Linux versions before
fetching file metadata, and so probably ensured that an lstat() on a
symlink returned properly updated info.
Reviewed-on: https://gerrit.openafs.org/15423
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 2b32b130f534068251ce9fd1b621de6e480d56d7)
Change-Id: I194308e2a4783cc3205c6cfd54880421635f6b38
Reviewed-on: https://gerrit.openafs.org/15443
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@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 4394a3ee84ffaba559bbe9102c8e6d801f8d6625
Author: Andrew Deason <adeason@sinenomine.net>
Date: Wed Aug 26 13:54:00 2020 -0500
Retire AFS_MOUNT_AFS
Currently, the AFS_MOUNT_AFS #define is used to mean two completely
different things:
- The string "afs", corresponding to the first argument to mount(2) on
many platforms and some related calls inside libafs (e.g.
getnewvnode() on FBSD).
- An integer identifying the AFS filesystem (e.g. gfsadd() on AIX).
Depending on the platform and the build context (UKERNEL vs KERNEL),
AFS_MOUNT_AFS gets defined to one of those two things. This is very
confusing, and has led to mistakes in the past, such as those fixed in
commit 446457a1 (afs: Set AFS_VFSFSID to a numerical value).
To avoid such confusion, get rid of AFS_MOUNT_AFS completely, and
replace it with two new symbols:
- AFS_MOUNT_STR, the string "afs".
- AFS_FSNO, the integer given to gfsadd() et al.
When AFS_MOUNT_AFS is split this way, AFS_MOUNT_STR then is always
defined to the same value, so remove it from the param.h files for our
platforms. Instead, define it in afs.h for libafs use, and in
afsd_kernel.c (the only place outside of src/afs that uses it).
Also remove the logic for conditionally defining MOUNT_AFS from the
param.h files, moving the logic to the same locations as
AFS_MOUNT_STR.
Note that this commit removes the numeric definition for AFS_MOUNT_AFS
in param.sgi_65.h (aka AFS_FSNO). We never actually used this value,
since AFS_FSNO is not used on IRIX; instead, we tend to use the
'afs_fstype' global instead of a constant number.
Reviewed-on: https://gerrit.openafs.org/14323
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 6b96a49eb6268adf9fc7e077fe849af7802a1575)
Change-Id: Iebb35b323ceb50f9603387c46168b80ec800735d
Reviewed-on: https://gerrit.openafs.org/15422
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Tested-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit ee6944d96d7692244438cb1aa7f84a102aebff76
Author: Benjamin Kaduk <kaduk@mit.edu>
Date: Tue Aug 16 07:48:02 2022 -0700
rxevent: fix mismatched #endif
We should only assign to 'ev' once, rather than assigning a second
time to an uninitialized value.
Reported by Ben Huntsman and diagnosed by Jeffrey Altman.
Reviewed-on: https://gerrit.openafs.org/15106
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit e51ed7be3849025e9b47d1a644a4fcd99b774b30)
Change-Id: I06ac2155170d8f005afd9551c69d5ef3e60afff3
Reviewed-on: https://gerrit.openafs.org/15442
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Tested-by: Ben Huntsman <ben@huntsmans.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit e4e9122365a3ec05c01add5333b532f2c19e1732
Author: Andrew Deason <adeason@sinenomine.net>
Date: Sun Jul 18 23:05:38 2021 -0500
opr: Avoid sigwait on SIGWAITING
On AIX, calling sigwait() on a sigset containing SIGWAITING (or
SIGKILL or SIGSTOP), causes sigwait to return with an EINVAL error.
Currently, signalHandler() calls sigwait() with SIGWAITING, because
SIGWAITING is in the sigset returned by softsigSignalSet(). And so,
sigwait() returns EINVAL, and our opr_Verify in signalHandler() fails,
causing a crash.
To avoid this, remove SIGWAITING from the sigset in
softsigSignalSet(). This is AIX-specific, since the SIGWAITING signal
is AIX-specific.
Reviewed-on: https://gerrit.openafs.org/14705
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit c2db41258370159c1257ee79df10afa4a2a2d9e8)
Change-Id: I433e4842b684c5f0f453e20d2f5d455b10a792eb
Reviewed-on: https://gerrit.openafs.org/15441
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 332b5593d487c25d0091c5572519364c57cace90
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu May 4 16:52:38 2023 -0700
AIX: Free pinned_heap during shutdown to prevent kernel panic
During shutdown, the function shutdown_osisleep is called in
src/afs/afs_osi.c. The body of this function is platform-
specific, and on AIX there is a call to xmfree:
xmfree(tmp);
However, on AIX, xmfree actually takes two arguments:
int xmfree ( ptr, heap)
caddr_t ptr;
caddr_t heap;
This is called elsewhere in the OpenAFS code correctly for
kernel_heap. In src/afs/AIX/osi_sleep.c we start using the
pinned_heap, but never xmfree it. Therefore, we need to do so here
during the shutdown. Here we include a header file which defines
pinned_heap, and then supply it as an argument to xmfree. This
prevents a kernel panic during OS shutdown.
The panic might go unnoticed in many environments, as during a
reboot, the system will normally dump and restart anyway. However,
if kdb is loaded (bosboot -a -D), the system will break into the
debugger before the full shutdown procedure completes. The stack
trace shows the following:
KDB(0)> stack
pvthread+01D200 STACK:
[00023900]abend_trap+000000 ()
[000EFF24]xmfree_frontend+0000A4 (??, ??, ??)
[F1000000C064CF1C]shutdown_osisleep@AF72_5+0000BC (??)
[F1000000C064CB7C]shutdown_osi+00001C ()
[F1000000C064A51C]afs_shutdown+0003BC (0000000100000001)
[F1000000C05A8DD4]afs_unmount+000094 (F1000A01501D4C10, 0000000000000000)
[F1000000C059FCE0]vfs_unmount+0000A0 (F1000A01501D4C10, 0000000000000000,
F1000A015047B07C)
[00014D70].hkey_legacy_gate+00004C ()
[006A6AAC]vfs_unmount+00008C (??, ??, ??)
[006B4228]kunmount+000228 (??, ??, ??, ??)
[006B4944]uvmount+000204 (??, ??)
[00003954]syscall+00024C ()
[100084FC]helper_UMfunc+00027C (??, ??)
[10003D48]dounmount+0000C8 (??, ??, ??, ??)
[100044DC]umountmain+0001BC (??, ??)
[10000AD4]main+0000B4 (??, ??)
[10000168]__start+000068 ()
Reviewed-on: https://gerrit.openafs.org/15419
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 4810cca10bc32df7ba7809fc2bf095d20e2febd8)
Change-Id: I687caa6daae83fc7986e76d370b55f90f5ca53cc
Reviewed-on: https://gerrit.openafs.org/15425
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Tested-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit a2ab598bae94a9ce0c95034c1a54bcd8e12d5a87
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu May 4 10:00:43 2023 -0700
AIX: AFS_SMALLOCSIZ too small on newer OS releases
Addresses a situation where a write in AFS space can cause a kernel
panic. In src/afs/afs_osi_uio.c in the function afsio_partialcopy:
size_t space_len = sizeof(struct uio) +
sizeof(struct iovec) * AFS_MAXIOVCNT;
/* Allocate a block that can contain both the UIO and the iovec */
space = osi_AllocSmallSpace(space_len);
On newer AIX systems (since at least 6.1), space_len is larger than
AFS_SMALLOCSIZ. When osi_AllocSmallSpace is called, the following
test in src/afs/afs_osi_alloc.c causes a kernel panic:
if (size > AFS_SMALLOCSIZ)
osi_Panic("osi_AllocSmallS: size=%d\n", (int)size);
This is due to the following definition in src/config/afs_args.h:
/*
* Note that the AFS_*ALLOCSIZ values should be multiples of sizeof(void*) to
* accomodate pointer alignment.
*/
/* Used in rx.c as well as afs directory. */
/* XXX Because of rxkad_cprivate... XXX */
All the supported AIX platforms define AFS_AIX32_ENV in
src/config/param.rs_aixXX.h, where XX is the AIX version. Therefore,
all the AIX platforms end up with AFS_SMALLOCSIZ = 152 bytes instead
of 256. To resolve this, we will modify the preprocessor test to use
the second case for AIX versions greater than 6.1. This issue may be
present on earlier releases of AIX as well, but AIX 5.3 and older
test systems were not available at this time.
Also, a spelling error in the comment was fixed.
Reviewed-on: https://gerrit.openafs.org/15418
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 8a2d4faa73d0f2e03a4016d7f84c5d5437040cec)
Change-Id: I5a2fc4ad1a829f1ee30387da20ce477c84fa020f
Reviewed-on: https://gerrit.openafs.org/15424
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Tested-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit af58c5cd15ad7b93a93892247fd1c4119e806767
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu Apr 27 09:49:03 2023 -0600
Linux: Clear msghdr structure before use
The msghdr structure is used as a parameter to the Linux kernel
functions kernel_sendmsg() and kernel_recvmsg(). Some required fields
need to be set prior to calling these functions, but there are also
additional structure members that may not be used by the calling code.
Some of these fields may be initialized by the Linux kernel functions
being used, but there may be some that are left uninitialized.
To ensure that all fields in the msghdr structure are cleared, use
memset to zero the entire structure. This will eliminate the need to set
individual fields to 0 or NULL.
Reviewed-on: https://gerrit.openafs.org/15409
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 795ef90d4041f1a5a1139435cc70f96457e0f64b)
Change-Id: Id037e2e548c27b23e2746f804ddcaf7b79d905c4
Reviewed-on: https://gerrit.openafs.org/15411
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 12ce31ce1dbd86dff47a036b36ce6ad506bd7b75
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Tue Apr 25 10:37:01 2023 -0600
Linux: Do not initialize msghdr's msg_iter/msg_iov
Since the initial Linux commit (2.6.12-rc2) the Linux function
kernel_recvmsg() handles the initialization of the msghdr members
related to the iov (msghdr.msg_iter and for earlier kernels
msghdr.msg_iov and msghdr.msg_iovlen).
The code in osi_NetReceive for Linux unnecessarily initializes these
structure members prior to calling kernel_recvmsg().
Remove the unnecessary code from osi_NetReceive along with the
surrounding preprocessor check for STRUCT_MSGHDR_HAS_MSG_ITER. Since
this is the only location that uses this define, also remove the
associated autoconf test.
NOTE: This was discovered while investigating changes needed for
Linux 6.4, due to: "iov_iter: add iter_iovec() helper" (de4f5fed3f)
which renamed the Linux structure iter_iovec's member iov to __iov.
Since the openafs code that was affected by the Linux 6.4 change is
being removed as unnecessary, this commit is not Linux 6.4 specific,
but effects all versions of Linux.
Reviewed-on: https://gerrit.openafs.org/15408
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 5a7630acfd8bfd462b633475a6e195d9dbdfb451)
Change-Id: I3a803f76ab84f1e055e91cf4f2be96440f141746
Reviewed-on: https://gerrit.openafs.org/15410
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 0967702c3f71c5d61e33f905c3272d029303743e
Author: Andrew Deason <adeason@sinenomine.net>
Date: Thu Jul 15 19:59:47 2021 -0500
AIX: Fix undefined symbols
Various pieces of our code try to use symbols in our internal
libraries that are not exported in the respective .sym file. On AIX,
this causes the following build failures:
ld: 0711-317 ERROR: Undefined symbol: .ubik_CallRock
ld: 0711-317 ERROR: Undefined symbol: DISK_function_names
ld: 0711-317 ERROR: Undefined symbol: VOTE_function_names
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[4]: *** [Makefile:45: afscp] Error 8
make[4]: Leaving directory '/.../src/libadmin/test'
ld: 0711-317 ERROR: Undefined symbol: PR_function_names
ld: 0711-317 ERROR: Undefined symbol: KAA_function_names
ld: 0711-317 ERROR: Undefined symbol: KAT_function_names
ld: 0711-317 ERROR: Undefined symbol: KAM_function_names
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[4]: *** [Makefile:117: rxstat_get_peer] Error 8
make[4]: Leaving directory '/.../src/libadmin/samples'
ld: 0711-317 ERROR: Undefined symbol: .osi_audit_cmd_Options
ld: 0711-317 ERROR: Undefined symbol: .osi_audit_open
ld: 0711-317 ERROR: Undefined symbol: .afsconf_SuperIdentity
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:71: butc] Error 8
make[3]: Leaving directory '/.../src/tbutc'
ld: 0711-317 ERROR: Undefined symbol: .pr_Initialize2
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:111: pts] Error 8
make[3]: Leaving directory '/.../src/tptserver'
ld: 0711-317 ERROR: Undefined symbol: .AFSVolListPartitions
ld: 0711-317 ERROR: Undefined symbol: .AFSVolXListPartitions
ld: 0711-317 ERROR: Undefined symbol: .RXAFS_GetStatistics64
ld: 0711-317 ERROR: Undefined symbol: .AFSVolPartitionInfo64
ld: 0711-317 ERROR: Undefined symbol: .AFSVolPartitionInfo
ld: 0711-317 ERROR: Undefined symbol: .RXAFS_GetStatistics
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:65: fsprobe_test] Error 8
make[3]: Leaving directory '/.../src/fsprobe'
ld: 0711-317 ERROR: Undefined symbol: fsprobe_Results
ld: 0711-317 ERROR: Undefined symbol: gtxframe_exitValue
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:45: scout] Error 8
make[3]: Leaving directory '/.../src/scout'
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_toString
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_freeString
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:50: check_sysid] Error 8
make[3]: Leaving directory '/.../src/viced'
ld: 0711-317 ERROR: Undefined symbol: .GetLogLevel
make[3]: *** [Makefile:130: fileserver] Error 8
make[3]: Leaving directory '/.../src/viced'
ld: 0711-317 ERROR: Undefined symbol: .GetLogDest
ld: 0711-317 ERROR: Undefined symbol: .GetLogFilename
ld: 0711-317 ERROR: Undefined symbol: .CloseLog
make[3]: *** [Makefile:166: salvageserver] Error 8
make[3]: Leaving directory '/.../src/tsalvaged'
ld: 0711-317 ERROR: Undefined symbol: .rxkad_StringToLevel
ld: 0711-317 ERROR: Undefined symbol: .FilepathNormalize
ld: 0711-317 ERROR: Undefined symbol: .ConstructLocalPath
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:32: upserver] Error 8
make[3]: Leaving directory '/.../src/update'
ld: 0711-317 ERROR: Undefined symbol: xstat_fs_Results
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:77: xstat_fs_test] Error 8
make[3]: Leaving directory '/.../src/xstat'
ld: 0711-317 ERROR: Undefined symbol: .afsconf_DeleteKeyBySubType
ld: 0711-317 ERROR: Undefined symbol: .afsconf_DeleteKeyByType
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[3]: *** [Makefile:35: asetkey] Error 8
make[3]: Leaving directory '/.../src/aklog'
ld: 0711-317 ERROR: Undefined symbol: .afsconf_FindService
ld: 0711-317 ERROR: Undefined symbol: .afsconf_AddKey
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetLatestKeyByTypes
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[4]: *** [Makefile:19: authcon-t] Error 8
make[4]: Leaving directory '/.../tests/auth'
ld: 0711-317 ERROR: Undefined symbol: .afsconf_AddUser
ld: 0711-317 ERROR: Undefined symbol: .afsconf_IsSuperIdentity
ld: 0711-317 ERROR: Undefined symbol: .afsconf_AddIdentity
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetNthUser
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetNthIdentity
ld: 0711-317 ERROR: Undefined symbol: .afsconf_DeleteUser
ld: 0711-317 ERROR: Undefined symbol: .afsconf_DeleteIdentity
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[4]: *** [Makefile:25: superuser-t] Error 8
make[4]: Leaving directory '/.../tests/auth'
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetKeys
ld: 0711-317 ERROR: Undefined symbol: .rx_opaque_new
ld: 0711-317 ERROR: Undefined symbol: .rx_opaque_free
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetKeyByTypes
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetKeysByType
ld: 0711-317 ERROR: Undefined symbol: .afsconf_PutTypedKeyList
ld: 0711-317 ERROR: Undefined symbol: .afsconf_GetLatestKeysByType
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[4]: *** [Makefile:31: keys-t] Error 8
make[4]: Leaving directory '/.../tests/auth'
ld: 0711-317 ERROR: Undefined symbol: ._afsconf_Touch
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[1]: *** [Makefile:34: realms-t] Error 8
make[1]: Leaving directory '/.../tests/auth'
ld: 0711-317 ERROR: Undefined symbol: .opr_cache_get
ld: 0711-317 ERROR: Undefined symbol: .opr_cache_put
ld: 0711-317 ERROR: Undefined symbol: .opr_cache_init
ld: 0711-317 ERROR: Undefined symbol: .opr_cache_free
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[1]: *** [Makefile:16: cache-t] Error 8
make[1]: Leaving directory '/.../tests/opr'
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_isNil
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_equal
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_hash
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_fromString
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_create
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_unpack
ld: 0711-317 ERROR: Undefined symbol: .opr_uuid_pack
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[1]: *** [Makefile:37: uuid-t] Error 8
make[1]: Leaving directory '/.../tests/opr'
ld: 0711-317 ERROR: Undefined symbol: .rxevent_Init
ld: 0711-317 ERROR: Undefined symbol: .rxevent_Post
ld: 0711-317 ERROR: Undefined symbol: .rxevent_Cancel
ld: 0711-317 ERROR: Undefined symbol: .rxevent_RaiseEvents
ld: 0711-317 ERROR: Undefined symbol: .rxevent_Put
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make[1]: *** [Makefile:18: event-t] Error 8
make[1]: Leaving directory '/.../tests/rx'
To fix these, export the relevant symbols from the library's .sym
file.
Reviewed-on: https://gerrit.openafs.org/14707
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 9656a6b92b86849aa964529947bacb5aea4d83eb)
Backport notes:
The following symbols are not present in the 1.8.x branch at this time,
so removed from this backported patch:
* afsconf_GetLatestRXGKKey
* opr_cache_free
* opr_cache_get
* opr_cache_init
* opr_cache_put
* osi_audit_close
* osi_audit_cmd_Options
* osi_audit_open
* pr_Initialize2
* ubik_CallRock
The following symbol files are not present in the 1.8.x branch at this
time, so were removed from this backported patch:
* src/fsprobe/liboafs_fsprobe.la.sym
* src/gtx/liboafs_gtx.la.sym
* src/xstat/liboafs_xstat_fs.la.sym
Change-Id: Idd7059fe9e372d9131fa575412b391f03cb24bb3
Reviewed-on: https://gerrit.openafs.org/15403
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 5e282943ff00fbd5c9ba3056c25959794f8a1144
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Apr 7 14:10:58 2023 -0500
LINUX: Introduce afs_d_alias_foreach
We have a couple of places in the code that iterate over the dentry
aliases of an inode, and each of these involves a small #ifdef ladder
to handle slightly different ways of traversing the relevant list.
Split this logic into its own compatibility macro,
afs_d_alias_foreach[_reverse], to contain this ugliness in
osi_compat.h and make the callers more readable.
This commit should incur no functional change; it is just code
reorganization.
Reviewed-on: https://gerrit.openafs.org/15390
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 5aaed53f07fae0856e6da9defc408960e72364a7)
Change-Id: I107c01917512da6c1043880cb93754be37919c47
Reviewed-on: https://gerrit.openafs.org/15401
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: Stephan Wiesand <stephan.wiesand@desy.de>
commit 7f9445bbeb72bcb8257ba0e0608746e31efae40e
Author: Andrew Deason <adeason@sinenomine.net>
Date: Mon Jul 15 16:24:10 2019 -0500
afs: Fix a few ARCH/osi_vcache.c style errors
Most of the ARCH/osi_vcache.c implementations were defining functions
like:
void
osi_foo(args) {
/* impl */
}
But our prevailing style is:
void
osi_foo(args)
{
/* impl */
}
Fix them to follow our prevailing style, and fix a couple of the more
obvious errors with identation and goto label.
Reviewed-on: https://gerrit.openafs.org/13699
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit ee7019a7630d01f29fecebd89ca69ad8a37e24e2)
Change-Id: I2a34a0d8fd7b6c3721ede0c40c212c3993402235
Reviewed-on: https://gerrit.openafs.org/15400
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: Stephan Wiesand <stephan.wiesand@desy.de>
commit f6fbb85c00411bf97e9855be73baf49bd6b061d7
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Mar 29 12:11:38 2023 -0600
Linux 6.3: Use mnt_idmap for inode op functions
Through a series of Linux 6.3 commits starting with:
'f2fs: project ids aren't idmapped' (64b4cdf22f) and ending with
'fs: move mnt_idmap' (3707d84c13)
the inode operations functions were changed to take a mnt_idmap
structure instead of a user_namespace structure. These were pulled in
via the the merge commit:
'Pull vfs idmapping updates from Christian Brauner' (05e6295f7b)
The commit message for the merge contains background and overall
information for this conversion.
The above change simply changes the functions to use a different
structure (mnt_idmap instead of user_namespace). For afs, it is a
simple change to swap the structures. But for some of the Linux calls
(generic_fillattr(), setattr_prepare(), and inode_op->setattr()) we
would like to use the Linux symbol nop_mnt_idmap, but that symbol is
exported as GPL only. Instead, we will obtain its address from the
current task structure at libafs initialization (much the same way as
obtaining current user namespace for afs_ns).
Add autoconf tests to determine if inode_operations.create() uses the
mnt_idmap structure. If so set a generic configure define for
"IOP_TAKES_MNT_IDMAP".
Update afs's inode operations functions to take and use a mnt_idmap
instead of a user_namespace.
At libafs initialization, obtain the mnt_idmap from the current task
and save it as an afs global variable, afs_mnt_idmap, to be used where
needed.
Reviewed-on: https://gerrit.openafs.org/15347
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 858ee34545e57acab1e4e5813cd1b9a011538b9e)
Change-Id: If89c6f401db04826ef45de83b91240f106cca616
Reviewed-on: https://gerrit.openafs.org/15389
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 7a3ad3bc1c87e525698f7dda1e4b0fbbd913da03
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Mar 22 16:56:09 2023 -0600
Linux 6.3: Include linux/filelock.h if available
Linux 6.3 commit
'filelock: move file locking definitions to separate header file'
(5970e15dbc)
relocated file lock related declarations from 'linux/fs.h' into its own
header file, 'linux/filelock.h'.
Add autoconf tests to check for the header file 'linux/filelock.h' and
update function checks for locks_lock_file_wait() and posix_lock_file().
Update osi_compat.h to include linux/filelock.h if it is available.
Reviewed-on: https://gerrit.openafs.org/15346
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
(cherry picked from commit 6873dc925c5acc0ce7d65cf778ffee09c82a9898)
Change-Id: If131bee5b466a119f54b05388a065e6af23698cf
Reviewed-on: https://gerrit.openafs.org/15388
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 30cf5d8f934afdaa5a2a28b2e5fac8adde70808b
Author: Ben Huntsman <ben@huntsmans.net>
Date: Tue Jan 31 11:28:49 2023 -0600
AIX: Avoid including net/netisr.h on AIX 7.2 and above
On AIX 7.2 and higher, /usr/include/net/netisr.h includes a header
<sys/libsysp.h>. This is an internal kernel library header that IBM
does not ship. The include of sys/libsysp.h is new in AIX 7.2. The
only information we need from net/netisr.h are the definitions for
NETISR_MAX and NET_KPROC. Using the macro AFS_AIX72_ENV, defined in
src/config/param.rs_aix72.h and param.rs_aix73.h, we can just
provide these definitions directly and avoid the include of
net/netisr.h. As part of this update we also add the macro
AFS_AIX72_ENV to src/config/param.rs_aix72.h as it was missing there
but is required for the edit to src/rx/AIX/rx_knet.c to work. On
earlier versions of AIX, we will continue to include net/netisr.h. A
case has been opened with IBM and they acknowledge the problem and
are working on a solution. However, we still need to be able to deal
with the situation as shipped from IBM. A future AIX 7.4 will likely
be able to include net/netisr.h again.
Reviewed-on: https://gerrit.openafs.org/15312
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit ca67e8c84891200398e577d76c0125966d22b01e)
Change-Id: Icc3e241e09876a4e9ed3e779c1ba904e0762f92c
Reviewed-on: https://gerrit.openafs.org/15386
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit e83ce49c2dfff64b87a265a4250957a2e62c94d2
Author: Ben Huntsman <ben@huntsmans.net>
Date: Mon Jan 30 19:11:32 2023 -0600
comerr: Update rule for compile_et
Update the build rule for compile_et under new platform rs_aix73.
Reviewed-on: https://gerrit.openafs.org/15311
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 b713b62b3358482a818436a54975596188cb002b)
Change-Id: I726cf21a2c70305c24c3f43f2504e70a98536aa7
Reviewed-on: https://gerrit.openafs.org/15385
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 9b94108664330ac4b95a026a8be6c1e260c507fc
Author: Ben Huntsman <ben@huntsmans.net>
Date: Mon Jan 30 19:08:20 2023 -0600
configure: Add platform rs_aix73
Enable the configure script to detect and configure AIX 7.3.
Update INSTALL to reflect new platform.
Reviewed-on: https://gerrit.openafs.org/15310
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit d03723e87a16e19a34950ca84a6139095a0694f9)
Change-Id: I6727512ee343b3ee4cbb03c1e6242a69f407b987
Reviewed-on: https://gerrit.openafs.org/15384
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c962d1b91141daceb66c58b30f2acef9e22f36c0
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu Aug 25 11:58:31 2022 -0700
INSTALL: Update INSTALL to reflect AIX platforms
Update the INSTALL file to reflect the current rs_aix platforms
that we can build for.
Reviewed-on: https://gerrit.openafs.org/15142
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 4580f213b3a25dd57e6fd721f7ecc0ecad84fb07)
Change-Id: I3e0d62258e57ff6a54fae2e49a427c764e03a9ae
Reviewed-on: https://gerrit.openafs.org/15383
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit cff8ef661ba272027e44a0b21d77c3cc4e69b0ef
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu Aug 25 14:53:00 2022 -0700
AIX: Fix issue with make install on AIX 7.1 and higher
Added rules to src/export/Makefile.in for the install target
under AIX 7.1 and higher.
Reviewed-on: https://gerrit.openafs.org/15146
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit f4fc18b80e81f10b17729ef06cca6a9548d36130)
Change-Id: I0fcc1429111eaafa489adec330b5eb900022293e
Reviewed-on: https://gerrit.openafs.org/15382
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c6a391f6212860e381373f3c915885ff92a755cf
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu Aug 25 12:00:51 2022 -0700
configure: Add platform rs_aix71
Enable the configure script to detect and configure AIX 7.1.
Reviewed-on: https://gerrit.openafs.org/15143
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 1aeac365712f09ac90fe251c90b889548e25ac89)
Change-Id: I469d94701d3554e74cfdc78686a83e7333210ad4
Reviewed-on: https://gerrit.openafs.org/15381
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 3a88fb9a73b612473090c505a67d3bd4d707f4ba
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu Aug 25 14:23:51 2022 -0700
libafs: Add support for AIX 7.1, 7.2
src/libafs/MakefileProto.AIX.in contains rules for various versions of
AIX, but did not have any case for AIX 7.1 or 7.2 This causes build
failures on those platforms. Added in the missing entries for rs_aix71
and rs_aix72.
Reviewed-on: https://gerrit.openafs.org/15145
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 0c43fe64dd885aed1ec1be4a2419e6396e583ec5)
Change-Id: I68315c09eb3d6b2e30ea759d4f9bf5726a98e5d7
Reviewed-on: https://gerrit.openafs.org/15380
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b6696e67bc7a85d892531a5e7c3a0f03998ba64b
Author: Ben Huntsman <ben@huntsmans.net>
Date: Thu Aug 25 13:15:11 2022 -0700
AIX: Correctly create export64.exp on AIX 7.1+
Create the export64.exp file on AIX 7 and higher.
Reviewed-on: https://gerrit.openafs.org/15144
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit ba3e1410d5df4454dc4dc63e1404a261977b0f60)
Change-Id: I7ec71522f8e35ede3532e3b1d77623ef25510561
Reviewed-on: https://gerrit.openafs.org/15379
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 927f906f3d0cfdbe6f38608a56f9f92700806f1e
Author: Ben Huntsman <ben@huntsmans.net>
Date: Tue Aug 23 13:15:46 2022 -0700
afs: Use strlcat instead of snprintf to enable AIX build
The original code used strcpy(), etc. Some compilers have begun
to raise warnings that the use of these functions is unsafe, and
in the case of newer Linux kernels in particular, have caused the
build to fail outright. To adapt to these compilers/kernels, the
code was changed to leverage strlcpy(), snprintf(), etc. as they
are safer. AIX does not provide these functions within the
kernel. For some of the functions such as strlcpy(), etc. we
can use replacement functions from libroken within the AIX kernel
extension. However, libroken does not offer a suitable
replacement for snprintf(), and instead the same purpose can be
accomplished by using strlcpy() and multiple calls to strlcat().
Reviewed-on: https://gerrit.openafs.org/15122
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 54dbd474a5bd43cf62a226802593b062069509ce)
Change-Id: Ie59450a91fcb374b1362f0bd88a93f258597a22d
Reviewed-on: https://gerrit.openafs.org/15378
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 2826b3271aea8608fec44174d8b7e1ea7e805d99
Author: Ben Huntsman <ben@huntsmans.net>
Date: Fri Aug 19 08:34:33 2022 -0700
BUILD: Ensure that make clean actually cleans all products
After a build, running make clean leaves the following objects:
src/dir/test/dtest.o
src/libuafs/libuafs.a
src/libuafs/*.o
src/roken/*.o
Add a few rules to the various Makefiles to ensure that we clean
up those files as well.
Reviewed-on: https://gerrit.openafs.org/15119
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit ad2b880c3791046883f8c0ef15f327c85e013b5b)
Change-Id: Iaef185ec0e045ded8453f6b276e6b6b9075b3388
Reviewed-on: https://gerrit.openafs.org/15377
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 9d2bfcab35eac3dc0040be10681269daba30f866
Author: Ben Huntsman <ben@huntsmans.net>
Date: Sat Aug 13 11:40:44 2022 -0700
afs: Fix missing def for pinned_heap on AIX
Include sys/malloc.h in AIX's osi_sleep.c. This resolves a build
failure in which pinned_heap is not defined.
The commit below introduced code to resolve an issue on AIX 5.3:
5e5bfa6b9401ebc1fa5446e208cf46c15943c411
Author: Tom Keiser <tkeiser@sinenomine.net>
Date: Mon Jun 25 21:22:49 2007 +0000
aix53-avoid-wait-crash-20070625
newp = (afs_event_t *) xmalloc(sizeof(afs_event_t), 5, pinned_heap);
pinned_heap has always been defined in sys/malloc.h since at least
AIX 4.1. It is likely that the aix53-avoid-wait-crash-20070625
commit did not compile, or that sys/malloc.h was included
elsewhere at the time.
Reviewed-on: https://gerrit.openafs.org/15108
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 615681710a38bd1a92f2c476df9fdab7ac1d9bdd)
Change-Id: I3fcfc1c7e3e26e927d0a8e2a233c4c12b0781308
Reviewed-on: https://gerrit.openafs.org/15376
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit d00e6d6fb5ec4cf2520ae2c71f38091d950ec785
Author: Ben Huntsman <ben@huntsmans.net>
Date: Mon Aug 15 10:44:14 2022 -0700
AIX: Fix install of 64-bit kernel module
Remove make step in error. This was preventing the install of the
built kernel module on AIX when not using Transarc-style paths via
the make install step.
Reviewed-on: https://gerrit.openafs.org/15114
Tested-by: BuildBot <buildbot@rampaginggeek.com>
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 319d361499af933451425acaeabac9bc6548c96b)
Change-Id: I252de19363824ae23187b7b9da878137814ab09d
Reviewed-on: https://gerrit.openafs.org/15375
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 99ea3deeb5b082bdcbd14c41b6a2c11a900bccb4
Author: Ben Huntsman <ben@huntsmans.net>
Date: Mon Aug 15 10:00:07 2022 -0700
util: Add missing symbol for AIX build
Added symbol afs_exec_alt to liboafs_util.la.sym. This resolves a
build failure on AIX.
Reviewed-on: https://gerrit.openafs.org/15113
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 c0968b6c69c3f16468a7fe4a234d8421731e20e0)
Change-Id: I060b7b102c963a517d79bad41b5e4c827cbccad8
Reviewed-on: https://gerrit.openafs.org/15374
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 0d845973f05ef70991f0ee8007fb1a2dfdea3ea1
Author: Ben Huntsman <ben@huntsmans.net>
Date: Sat Aug 13 23:25:10 2022 -0700
fsint: export symbol needed by fileserver
The symbol RXAFS_OpCodeIndex is consumed by the fileserver via the various
"opcode_<RPC Name>" macros produced by rxgen. The functionality is provided
by liboafs_fsint but RXAFS_OpCodeIndex was omitted from the export symbol list.
This went undetected because we use static linking for the fileserver, and
libtool does not enforce export symbol lists while static linking, on platforms
other than AIX. Recent efforts to revive the AIX build illuminated the error,
which we resolve by adding RXAFS_OpCodeIndex to the export list.
Reviewed-on: https://gerrit.openafs.org/15112
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 91532e3142751468aa8f7bbabe7de087b77259bf)
Change-Id: Ia665937002137dca1a8ec4573b4fe8932fc90dd0
Reviewed-on: https://gerrit.openafs.org/15373
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c0cfe72f072ad27c7958b110678134adad7cebbd
Author: Ben Huntsman <ben@huntsmans.net>
Date: Sat Aug 13 11:47:07 2022 -0700
export: Ignore additional build products generated on AIX
Update .gitignore to ignore additional build products generated on AIX.
Reviewed-on: https://gerrit.openafs.org/15110
Tested-by: BuildBot <buildbot@rampaginggeek.com>
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 448d2b1184e872f977a662c3f48af04029f9a112)
Change-Id: Iff910b63174c9b046e031285dd30672b0f592c1a
Reviewed-on: https://gerrit.openafs.org/15372
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b768ba5f1fa15763177cad3ed35e1da5316e7f14
Author: Ben Huntsman <ben@huntsmans.net>
Date: Mon Aug 15 14:45:12 2022 -0700
export: Install kernel utilities with execute permissions on AIX
Make sure that cfgexport and cfgafs are installed with execute
permissions. These executables load the AIX kernel modules into
the running kernel and are called by the rc.afs script.
Reviewed-on: https://gerrit.openafs.org/15116
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 1a4da8868fd32e928def64599bb6ec9d6b455423)
Change-Id: I575d89164ef386d1cdf562b2206b502b3c2e8582
Reviewed-on: https://gerrit.openafs.org/15371
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit f3cdd139d83fc74f89d16ab6f685ec25ea40edf4
Author: Ben Huntsman <ben@huntsmans.net>
Date: Sat Aug 13 11:40:18 2022 -0700
afs: Fix missing def for timestruc_t on AIX
Include sys/time.h in AIX's osi_machdep.h. This resolves a build
issue where the struct timestruc_t was not defined.
Reviewed-on: https://gerrit.openafs.org/15107
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit b5b34278b26ca22eea988fb18d738969dd608ede)
Change-Id: Icb91b47d819f1bcc0e277a482f2a22d87dc8bc6c
Reviewed-on: https://gerrit.openafs.org/15370
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 75578909c5071d45eb2a5989917a3e4a9234aace
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Jul 16 14:02:07 2021 -0500
tsm41: Fix libs for AIX 7.2
AIX 7.2 doesn't seem to have libcsys, netinet.exp, sockets.exp, or
statcmd.exp available. To allow for our IMPORTS and LDFLAGS to change
depending on the AIX version, introduce the autoconf vars TSM_IMPORTS
and TSM_LIBS, which do not contain the missing libs on AIX 7.2, so we
can build on AIX 7.2.
Reviewed-on: https://gerrit.openafs.org/14703
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit a912db315b4f29673808a7f900eb038ebd7b89c2)
Change-Id: Ic106b893f212b33c85bded8443bcb782205f290c
Reviewed-on: https://gerrit.openafs.org/15369
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 567c987992b2e027668186e75017423e5637308b
Author: Andrew Deason <adeason@sinenomine.net>
Date: Thu Jul 15 17:53:43 2021 -0500
AIX: Add buildsystem support for AIX 7.2
Reviewed-on: https://gerrit.openafs.org/14701
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 7acd66ae39db2049c8f80f4fceb4fcd15fe8e8b8)
Change-Id: I94e74b56379fe1103d966883835b8af8a0d98f7e
Reviewed-on: https://gerrit.openafs.org/15368
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c8a92c4a7e1badfaf81517303440cd9ac7a55dd0
Author: Michael Meffie <mmeffie@sinenomine.net>
Date: Thu Mar 15 18:53:59 2018 -0400
roken: do not clobber __attribute__
The roken-common.h header defines an empty macro called __attribute__
when HAVE___ATTRIBUTE__ is not defined. This macro conditionally removes
the `format' function attributes in the roken headers at compile time.
Unfortunately, the empty __attribute__ macro will also clobber other
attribute types encountered after the roken.h header inclusion.
This is not an issue when building under gcc or clang, since the empty
attribute macro will not be defined. However Solaris Studio supports a
subset of the function attribute types, with `format' not currently
supported. This means roken will define an empty __attribute__ macro,
which prevents the use of other attribute types.
This commit does not change the roken files directly because they are
external. Instead, the processing of the roken.h.in file has been
updated to undefine the __attribute__ macro at the end of the generated
roken.h header.
Reviewed-on: https://gerrit.openafs.org/12961
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 388eaec3452ed4b18a95ee34efcbe4cf64814701)
Change-Id: Id93ec414a59a2f5866e503601b7e42bbb4f8d66a
Reviewed-on: https://gerrit.openafs.org/15367
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ben Huntsman <ben@huntsmans.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c08c7ba8fbf37018176ee87b980650dd34124678
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Fri Feb 24 13:05:29 2023 -0700
rx: Revert RXS_DestroyConnection()'s return type
Commit 'rx: Do not ignore RXS_* op errors' (635594d6c) changed the
rx_securityOps.op_DestoryConnection()'s signature to a void return.
This is a change to a public interface.
To maintain backward compatibility within openafs 1.8.x, restore
op_DestoryConnection's signature back to returning an 'int', and revert
the changes to rxkad_DestroyConnection() so it returns an int value.
Since returning an error value from this function doesn't make sense,
as noted by commit '635594d6c', always return a 0 value.
This is a 1.8.x specific commit
Change-Id: I9685ac884a10298ae8faad012717499874f25316
Reviewed-on: https://gerrit.openafs.org/15334
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 1da00dfa9446c4c881e8659ec48a5e00262828ca
Author: Andrew Deason <adeason@sinenomine.net>
Date: Mon Apr 12 18:21:23 2021 -0500
afs: Assert avc->lock is held in afs_IAS_once
Commit 3be5880d (afs: Avoid panics in afs_InvalidateAllSegments) added
an assert to check that vcache->lock is write-locked before we call
afs_InvalidateAllSegments_once from a background operation.
However, afs_InvalidateAllSegments_once should always be called with
vcache->lock write-locked; there's nothing specific about the
backgrounded call that requires this. So to make sure we catch all
cases, move this assert to afs_InvalidateAllSegments_once itself.
Also remove the conditional check for WriteLocked(&avc->lock) in here,
since clearly avc->lock must be write-locked (and actually is, since
change Ic309e4006bf47bcb38fa2b53bf103e0c645a856d "afs: write-lock
vcache->lock in afs_InactiveVCache").
Add some comments to this function while we're here, to more clearly
indicate what locks are needed.
Reviewed-on: https://gerrit.openafs.org/14592
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 72223e0958c2d7cddd968970547dd73fc3cc1351)
Change-Id: I9acf5599a8ef1e724a00cf362695fe34ca87c0bf
Reviewed-on: https://gerrit.openafs.org/15331
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@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 002c5a0c758aeb023c0fb2caa2247e8574fff1aa
Author: Andrew Deason <adeason@sinenomine.net>
Date: Mon Feb 10 15:57:43 2014 -0600
Move key-related warnings to common server code
Each server process can log a couple of different warnings about the
server keys found on disk:
- If afsconf_GetLatestKey() returns success (indicating a single-DES
key is present), we call LogDesWarning().
- If afsconf_CountKeys() returns 0 (indicating there are no keys at
all on disk), we log a warning that all authenticated access will
fail.
Currently, the code to do these checks and log the relevant warning is
duplicated across the startup code for nearly every server process. To
avoid this duplication, and to make sure the checks aren't
accidentally skipped for anyone, move these checks to
afsconf_BuildServerSecurityObjects, which every server process calls.
We must add an additional parameter to
afsconf_BuildServerSecurityObjects to handle the different logging
mechanism these servers use, but afsconf_BuildServerSecurityObjects is
declared in a public header (cellconfig.h), and is exported in a
public library (libafsauthent). So to avoid changing a public symbol,
introduce a new variant of the function, called
afsconf_BuildServerSecurityObjects_int. Declare this in a new internal
header, authcon.h.
We don't have easily-usable logging functions for upserver and butc,
so just don't log the warnings for those. For ubik servers, don't
update ubik_SetServerSecurityProcs to use the new function; the
initial call to afsconf_BuildServerSecurityObjects_int in the server's
startup code will cover logging the warning on startup.
Reviewed-on: https://gerrit.openafs.org/10831
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 2630e70550defc664efa0952589cf82ed3c51796)
Change-Id: Ib37b92cfccbf161d72d2db73eeaea6fd8b312961
Reviewed-on: https://gerrit.openafs.org/15316
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 363a3050610ec66483c71c8052ba40337fead942
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date: Thu Jan 26 19:30:04 2023 +0100
CellServDB update 09 May 2022
Update all three copies in the tree, and the rpm specfile.
Reviewed-on: https://gerrit.openafs.org/15305
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 1b92c766f1cf52b3bae3a00e08d40a2334bf9f24)
Change-Id: I26fb3ff045d41b840fc6565d1a17aca8e75fcd30
Reviewed-on: https://gerrit.openafs.org/15323
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 4a0f5562915b1058de15ec46649c09cdbddce269
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Jul 7 11:08:10 2021 -0600
Remove kdump
Remove the obsolete kdump debugging tool from the tree. Remove and
clean up the preprocessor tests associated with KDUMP, KDUMP_RX_LOCK and
KDUMP_KERNEL. Clean up the autoconf and Makefiles to remove kdump and
the associated autoconf and Makefile vars XLIBELFA and XLIBKVM.
The kdump utility has not been well maintained; for some platforms it
fails to build (e.g. Solaris 11). For Linux, the makefile does not
even try to compile the kdump source but instead creates the kdump file
via touch.
The intended functionality of kdump has been replaced by various kernel
debugging tools, such as dtrace or systemtap.
Reviewed-on: https://gerrit.openafs.org/14623
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
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 489cfb587a87ab53817ad0b4eccd65d9f7b332e2)
Change-Id: Idf9582fd65482f32e7f13af0bf734c2b970da757
Reviewed-on: https://gerrit.openafs.org/15315
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 4e4ffde5d0a17e48f82c4b67e921a8881ffc4fe5
Author: Andrew Deason <adeason@dson.org>
Date: Mon May 25 16:48:34 2020 -0500
IRIX: Remove pre-65 code
Commit d1923139 (irix kill efs and start pruning pre-65) removed all
files that defined AFS_SGI64_ENV and earlier, but didn't remove that
code that depended on those defines. In addition, there has been code
in the tree that checks for AFS_SGI53_ENV since OpenAFS 1.0, but
nothing has ever defined Irix 5.3 support in OpenAFS.
Remove all of this obsolete code. Change all references to
AFS_SGIXX_ENV to AFS_SGI_ENV, and assume AFS_SGI_ENV is defined in all
IRIX dirs. Consolidate some of the resulting ifdef logic
appropriately.
Reviewed-on: https://gerrit.openafs.org/14230
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit e0c288416df59a117cd818ada930fd1259955983)
Change-Id: Ie188b9f108bf55cfae7fcb358a1de21bad076f11
Reviewed-on: https://gerrit.openafs.org/15314
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@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 85df2442240c9384822e6658e9aad4f83c19d6e3
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Tue Mar 9 23:12:50 2021 -0500
DARWIN: correct size of fstrace ICL_TYPE_LONG and ICL_TYPE_POINTER
Commit 248da50aa56f19bdc8b2b322f5e17b3d2a363dce 'icl 64 bit platform
rationalization' introduced support for 64-bit ICL_TYPE_POINTER and
ICL_TYPE_LONG for fstrace running on DARWIN kernels. However, it
neglected to make the matching change in the fstrace utility itself,
which reads and reports these trace entries. The result is that all
fstrace records which contain 64-bit pointers or longs are misreported
as 32-bit values. Furthermore, any subsequent values in the same
fstrace record are also misreported because the offsets are now
incorrect.
Move the definition of ICL_LONG from afs_icl.c to icl.h so fstrace.c may
share the ICL_LONG logic and value.
Modify fstrace to use logic similar to the recording logic in afs_icl.c
so that the correct size and offsets are maintained while decoding the
contents of each fstrace record.
We can use the build-time value of ICL_LONG (rather than the runtime
value of afs_sizeofLong) because the difference only matters for SGI62
32-bit kernels. It is unknown whether the existing code works correctly
for SGI62 32-bit mode, but this commit should not affect that support
either way.
Reviewed-on: https://gerrit.openafs.org/14558
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit adf08b464efa8c29256dc7b261b10b60cc31119d)
Change-Id: Ie3ef988d209a984839751051d7bd9a62369b5b11
Reviewed-on: https://gerrit.openafs.org/15313
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 37d01094b929a6bb745aeb00a3f5a40fd8fe5822
Author: Ben Huntsman <ben@huntsmans.net>
Date: Wed Aug 17 17:19:55 2022 -0700
rx: Only use printf in the AIX kernel
An earlier version of the OpenAFS code used an unusual preprocessor
macro for the function osi_Msg and osi_VMsg. This causes problems
on newer Linux kernels. The macro was replaced with a function
leveraging vprintf, etc. These functions are not available in the
AIX kernel, where our only option is printf. However, AIX does
provide these functions in libc. This change ensures we only use
printf when building the AIX kernel module.
Reviewed-on: https://gerrit.openafs.org/15118
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 8b1beaffb40c93ddab50c75b37f3de5ae517a849)
Change-Id: Id06478cbc87b6965c021f26902e13bdfc2ef83d5
Reviewed-on: https://gerrit.openafs.org/15309
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 7c3c93db2977765a8b82426f0524b380f896b82f
Author: Andrew Deason <adeason@sinenomine.net>
Date: Tue Jan 14 10:51:42 2020 -0600
afs: Properly type afs_osi_suser cred arg
Currently, afs_osi_suser is declared with a void* argument, even
though its only argument is always effectively a afs_ucred_t*. This
allows us to call afs_osi_suser with any pointer type without the
compiler complaining. Currently, some callers call afs_osi_suser with
an incorrectly-typed afs_ucred_t** instead, like so:
func(afs_ucred_t **credpp)
{
afs_ucred_t **acred = *acredpp; /* incorrect assignment */
if (afs_osi_suser(acred)) {
/* ... */
}
}
The actual code in the tree hides this to some degree behind various
function calls and layers of indirection (e.g. afs_suser()), but this
is effectively what we do. This causes compiler warnings because we
are doing incorrect pointer assignments, but the end result works
because afs_osi_suser actually uses an afs_ucred_t*.
The type confusion makes it very easy to accidentally give the wrong
type to afs_osi_suser. This only really matters on SOLARIS, since that
is the only platform that actually uses its argument to
afs_osi_suser().
To fix all of this, just declare afs_osi_suser as taking an
afs_ucred_t*, and fix all of the relevant functions to handle the
right type.
Reviewed-on: https://gerrit.openafs.org/14085
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 4ce922d339777faf647f7129f5ae3f173a7870b1)
Change-Id: I1a6ce7788e86c32e554f87785f96f1d7b56d1496
Reviewed-on: https://gerrit.openafs.org/15308
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit bfb3125fc1b73ae17a346d33a1a34e51379db9c4
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Mon May 4 15:55:07 2020 -0400
Add static assert for size of osi_timeval32_t
OpenAFS code requires osi_timeval32_t to have 32-bit sizes for members
tv_sec and tv_usec - a total of 8 octets. One symptom of a
misdefinition may be incorrect operation of xstat_cm_test, which relies
on wire representations of time being 8 bytes on both the client and
server side.
In order to prevent incorrect sizes of osi_timeval32_t, add a static
assert.
Reviewed-on: https://gerrit.openafs.org/14195
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 10c5ba12ace51440c7e98add83465a7018961e6f)
Change-Id: I9584a53154ffe673d19191a0bd9f6a92d6daf140
Reviewed-on: https://gerrit.openafs.org/15304
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
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 9433217b56afe3f23b2eeeefdb8fa644c2185e4a
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Mon Jun 14 16:13:57 2021 -0600
rx: Cleanup rx.h
Fix up indentation and white space within preprocessor statements.
Remove multiple blank lines
Fix #endif comments so they match the #if
Split long #define lines
RX_PACKET_TYPES
rx_MaxUserDatasize,
RXS_OP
RXS_SetConfiguration
Note, this commit does not refactor any preprocessor statements.
Reviewed-on: https://gerrit.openafs.org/14629
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 21df433134a059de8d3b3b46bb0892b34d910364)
Change-Id: I197897f4f7e81bd2f931e3decefe447caae0c5d9
Reviewed-on: https://gerrit.openafs.org/15301
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit bfc7688475fe5d2a178072a8978cf75635a15400
Author: Andrew Deason <adeason@sinenomine.net>
Date: Wed Mar 13 18:30:43 2019 -0500
rx: Do not ignore RXS_* op errors
Several places in rx call an RXS_* security layer operation, but
ignore the error code. Though errors for these operations are rare or
impossible currently, if they ever do return an error there could be
noticeable consequences, like a connection getting an uninitialized
challenge nonce, or sending a challenge packet with uninitialized
payload.
Change these call sites to record and handle the error. Errors from
the security class normally mean aborting the entire conn, but for
many operations we need to behave differently:
- For RXS_DestroyConnection, errors don't make sense, since we're just
freeing an object. Change the op to return void, and update our
implementations of DestroyConnection to match.
- For RXS_GetStats, just clear the relevant stats structure on error
instead. This change also results in us clearing the stats structure
when there is no security class associated with the connection;
previously we just reused the same struct data as the previous conn.
- For RXS_CreateChallenge, aborting the entire conn is difficult,
because some code paths have callers that potentially lock multiple
calls on the same conn (rxi_UpdatePeerReach -> TryAttach ->
rxi_ChallengeOn -> RXS_CreateChallenge), and aborting our conn
requires locking every call on the conn. So instead we just
propagate an error up to our callers, and we abort just the call we
have.
- For RXS_GetChallenge, we cannot abort the conn when
rxi_ChallengeEvent is called directly, because the caller will have
the call locked. But when rxi_ChallengeEvent is called as an event
(when we retry sending the challenge), we can.
- For RXS_SetConfiguration, propagate the error up to our caller.
Update all rx_SetSecurityConfiguration callers to record and handle
the error; all of these are during initialization of daemons, so
have them log an error and exit.
Reviewed-on: https://gerrit.openafs.org/13522
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 635594d6cceba6de4e09be5a9e9b908f7d16697d)
Change-Id: I800516335f6ab0d01d2b29dd0ceba9213dafde59
Reviewed-on: https://gerrit.openafs.org/15300
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
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: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 48d9848c5eef99bf1d8552acc055d3b91b2fbcc0
Author: Yadavendra Yadav <yadayada@in.ibm.com>
Date: Wed Jul 7 12:32:36 2021 -0400
LINUX: defer afs_remunlink when current->fs==NULL
afs_remunlink is called to delete a file on the fileserver after it
has been silly-renamed (due to being unlinked while the file is open).
Sometimes current->fs is NULL when this happens, typically when the
process is shutting down, after current->fs has been freed and file
handles are getting released. During afs_remunlink, we need to
interact with our cache files, and so we call dentry_open, which calls
security_file_open, which calls into the configured LSM for security
checks. Certain LSMs (e.g. Crowdstrike Falcon) will panic the kernel
in this situation if current->fs is NULL.
There's no way to skip the LSM hooks, or to flag to the LSM that we're
making an in-kernel VFS call, so the only way to avoid these panics is
to do our I/O in another thread. Fortunately, we already have a way to
defer afs_remunlink calls to a background daemon (CUnlinkedDel), since
we already do this in some cases (when someone else is holding
afs_xvcache or afs_xdcache).
So, to avoid the panic in the above scenario, defer calls to
afs_remunlink to a background daemon using CUnlinkedDel when
current->fs is NULL, and we're using a disk cache.
More details on this issue is discussed at following thread:
https://lists.openafs.org/pipermail/openafs-info/2021-March/043073.html
Reviewed-on: https://gerrit.openafs.org/14691
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jonathan Billings <jsbillings@jsbillings.org>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
(cherry picked from commit 9e043e1a0cdca7624de3e27872273263c57027ed)
Change-Id: If85d992c2639e59af7578ebc295f91d4f8462b69
Reviewed-on: https://gerrit.openafs.org/15295
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 b1bbe87643462ae88f8564044d9bff2703fd5123
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Sat Mar 27 00:00:17 2021 -0400
afs: write-lock vcache->lock in afs_InactiveVCache
Since the original IBM code import, the comments for
afs_InvalidateAllSegments indicate that vcache->lock W should be held at
entry. However, even back then, only LINUX and IRIX honored this
requirement when the 'inactive' vnode operation reached
afs_InvalidateAllSegments.
Over the years, a number of commits have changed the operation and
locking for the LINUX inactive vnode op:
5293aa35617a6ad35980ce16fdf492ea960cc18a linux-iput-and-glock-changes-20010130
e8591334602e5e8dad78dc6426d3c44d564572c1 linux-osi-clear-inode-locking-fix-20010816
652f3bd9cb7a5d7833a760ba50ef7c2c67214bba linux-dynamic-inodes-20050710
e0d9e434bb778a2507c1cd6d96c1faa2071f2b2c put-inode-speedup-20050815
b21c13dc3ab751118220dc31276995050841a1ae linux-dentry-iput-20060813
Eventually, ac52e2f3c0bec9298d020de963036409165f380e
linux-dont-lock-around-inactivevcache-20061010 removed the vcache->lock
from afs_dentry_iput (the current OpenAFS handler for inactive vcaches).
The commit message states:
"iafs_InactiveVCache() [sic] calls afs_InvalidateAllSegments() which says
it should be called with the vnode locked. so the lock should
probably be moved to afs_InactiveVCache() so it can be droppped
before calling afs_remunlink()."
Unfortunately, the vcache->lock was never moved to afs_InactiveVCache.
Finally, 3be5880d1d2a0aef6600047ed43d602949cd5f4d 'afs: Avoid panics in
afs_InvalidateAllSegments' introduced a background operation
BInvalidateSegments that contains an assert for vcache->lock. This
assert has exposed the existing lack of proper locking for some paths to
afs_InvalidateAllSegments by causing a kernel panic:
d_iput -> afs_dentry_iput -> afs_InactiveVCache ->
afs_InvalidateAllSegments -> afs_BQueue(BOP_INVALIDATE_SEGMENTS..) ->
BInvalidateSegments -> osi_Assert(WriteLocked(&vcache->lock))
Prevent the panic by modifying afs_InactiveVCache to obtain vcache->lock
W before calling afs_InvalidateAllSegments, and dropping it before
calling afs_remunlink.
Thanks to Chaskiel Grundman for reporting and diagnosing the problem.
Reviewed-on: https://gerrit.openafs.org/14584
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit f02be4e3b89382317a3baa496f9cb672cdb4b32a)
Change-Id: I38dc6e5d70b1743b96d2a227d28e58d1950b5835
Reviewed-on: https://gerrit.openafs.org/15324
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
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: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 1023b96ab1ea842c883c070e6197e71826dbe8be
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Apr 20 13:06:17 2022 +0000
cmdebug: Print AFSFid fields as unsigned integers
Currently, AFSFid fields are printed as signed integers. As a result,
large numbers can be erroneously printed as negative numbers.
To fix this problem, print AFSFid fields as unsigned integers.
Reviewed-on: https://gerrit.openafs.org/14950
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 29a89c82ad422f88b0898ad07e773dc2e71be983)
Change-Id: Ieb303354f1332abb8278e62252c4842baa2132c7
Reviewed-on: https://gerrit.openafs.org/15302
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit d2429aec59fb3cc7d8a2cc94aa9e0ce8256ecb94
Author: Andrew Deason <adeason@sinenomine.net>
Date: Wed Jun 3 15:53:48 2020 -0500
vol: Introduce and use FDH_BLOCKSIZE
A couple of places in src/volser currently have some logic to get the
size and blocksize of a file. The existing logic is nontrivial due to
platform-specific quirks, and ignores afs_fstat errors.
To fix these issue and consolidate the code into one place, introduce
a new function, FDH_BLOCKSIZE, which gets the file size and blksize.
Update the places in src/volser to use the new function.
Reviewed-on: https://gerrit.openafs.org/14662
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 939787565d5be55a8a803043dbc4f27b3f11b906)
Change-Id: I32c73e87fa0b6b0b45971e06b8d8c5653f882f7b
Reviewed-on: https://gerrit.openafs.org/15303
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 1eac15a85a50b1c322dd460f5c747538c88c1a31
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Mon Jan 10 18:11:58 2022 -0700
afs.h: fix out of tree build failures
There are several compiler errors and warnings when building an out of
tree program that includes "afs/afs.h".
- Errors for unknown type names 'afs_ucred_t' and 'wait_queue_head'
.../afs/afs.h:1542:16: error: unknown type name afs_ucred_t
... | afs_set_cr_uid(afs_ucred_t *cred, uid_t uid) {
.../afs/afs.h:1605:5: error: unknown type name wait_queue_head_t
... | wait_queue_head_t cond;
- Warnings about declaring structures within missing declarations for
the structs: osi_File, dcache and afs_FetchOutput
.../afs/afs.h:1486:36: warning: struct osi_file declared inside
parameter list will not be visible outside of this definition or
declaration
... | int (*read)(void *rock, struct osi_file *tfile,
afs_uint32 offset,
- Unable to find the file for the include opr/jhash.h
The missing type name 'afs_ucred_t' is due to miss-placed declarations
for some kernel only functions.
The type name 'wait_queue_head' is a data type for Linux kernel modules.
The warnings for the missing declarations are due to either references
to the structures before they are declared, or because they are not
available in any of the other public header files.
To fix the unknown type name afs_ucred_t, relocate the function
declarations that reference 'afs_ucred_t' into the KERNEL only section
(since afs_ucred_t is a kernel specific type).
To fix the unknown type name 'wait_queue_head', relocate the afs_event
structure and the afs_evhasht variable to be within the KERNEL only
section.
To resolve the warnings associated with the structures, simply declare
the structure names before they are referenced. All references that
are resulting in the warnings are declarations for pointers.
Relocate the include for opr/jhash.h and the define for VCSIZE into the
kernel block.
Reviewed-on: https://gerrit.openafs.org/14857
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 92342b099dd5ea539efc5ad119d36a87647c0895)
Change-Id: Ib321796e473495d7d8774133c5e690b53bb26c17
Reviewed-on: https://gerrit.openafs.org/15299
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 80cb460a8b434fa7fb2dacf642d54de1c0af5314
Author: Andrew Deason <adeason@sinenomine.net>
Date: Sun Apr 5 16:29:52 2020 -0500
libafs: Serialize INSTDIRS/DESTDIRS and COMPDIRS
Our libafs build logic involves a few targets that 'cd' into a
per-kernel subdir: notably INSTDIRS and DESTDIRS (the targets to 'make
install' or 'make dest' our kernel modules) and COMPDIRS (the target
to setup/build the kernel module).
Both of these potentially 'cd' into a subdirectory (e.g. MODLOAD64),
and run some make rules. Since INSTDIRS and COMPDIRS are different
targets and don't depend on each other for many platforms, running
those rules can happen in parallel. After they 'cd' into the relevant
dir, they run a new 'make' in a subshell, and so underlying rules for
building e.g. AFS_component_version_number.c are not serialized.
So for a parallel build on, say, Solaris, we can encounter errors when
two sub-makes try to make AFS_component_version_number.c at the same
time, which looks something like this (with various lines output from
other sub-processes mixed in):
cd src && cd sys && gmake install
gmake[3]: Leaving directory '/[...]/src/libuafs'
rm -f AFS_component_version_number.c.NEW
/opt/developerstudio12.6/bin/cc [...] -D_KERNEL -DSYSV -dn -m64 -xmodel=kernel -xvector=%none -xregs=no%float -Wu,-save_args -o AFS_component_version_number.o -c AFS_component_version_number.c
mv: cannot access AFS_component_version_number.c.NEW
gmake[4]: *** [/[...]/src/config/Makefile.version:13: AFS_component_version_number.c] Error 2
gmake[4]: Leaving directory '/[...]/src/libafs/MODLOAD64'
gmake[3]: *** [Makefile:85: solaris_instdirs] Error 2
gmake[3]: *** Waiting for unfinished jobs....
To avoid this, just make INSTDIRS and DESTDIRS depend on COMPDIRS, so
we can make sure they don't run at the same time.
Reviewed-on: https://gerrit.openafs.org/14137
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 3db8c37e8ef6bea0f03ef6b8f82ed93d52937d7d)
Change-Id: Ied7875e885f51a6d3f00d65f1783df9439a18ae3
Reviewed-on: https://gerrit.openafs.org/15298
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
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 30dc7fd2acbe756d5e618a6da484f0eebaf07e07
Author: Andrew Deason <adeason@sinenomine.net>
Date: Sat Sep 22 01:58:17 2018 -0500
SOLARIS: Fix libafs $(KOBJ) parallel make race
Currently, our COMPDIRS make rule for SOLARIS libafs builds looks like
this:
${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
for t in $(KOBJ) ; do
# set some variables ; \
cd $$t ; \
$(MAKE) $@_libafs || exit $$? ; \
cd ../ ;\
done
And Makefile.common has this:
all: setup $(COMPDIRS)
Where the 'setup' rule creates the $(KOBJ) dirs and sets up some
symlinks.
For parallel builds, this means that our commands in the ${COMPDIRS}
target can be running in parallel with the 'setup' target, and so our
$(KOBJ) dirs may not exist by the time we try to 'cd $$t'.
For single-KOBJ platforms this actually largely works, since the 'cd'
will fail, but then the subsequent 'make' will run (just in the wrong
dir), but this can cause us to wastefully re-compile the same source
files (and cause some possibly confusing error messages). For
platforms with multiple KOBJs, this causes obvious problems, since we
don't cd into each KOBJ dir.
To solve this, just have the ${COMPDIRS}/etc rule depend on setup, so
we know that 'setup' has finished running. Also change our way of
'cd'ing into each KOBJ dir to actually cause the rule to fail, to make
any errors here more obvious and consistent.
Reviewed-on: https://gerrit.openafs.org/13344
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 00aa9200be86b187c903503e56b2af55639ea2b8)
Change-Id: I4b68cc8aa7b50f792152c2c00da6c6e3684755b7
Reviewed-on: https://gerrit.openafs.org/15297
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
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 69839045c269af1b7023159e78dbc59e13e6202a
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Feb 9 14:00:13 2022 -0700
autoconf: Additional library test for ncurses
Depending on how the ncurses libraries were built the external symbol
'LINES' may be replaced with the '_nc_LINES' external symbol. Because
the symbol 'LINES' may or may not be present, the autoconf test can fail
to detect the correct libraries needed for curses support.
Add an additional AC_CHECK_LIBs for the symbol _nc_LINES (within the
ncurses or tinfo libraries) when setting the $LIB_curses.
This commit was adapted from the openSuSE source packaging for openafs.
Background: when ncurses is built with --enable-reentrant, LINES is
defined as a C preprocessor macro that expands to a call to _nc_LINES
Reviewed-on: https://gerrit.openafs.org/14889
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ralf Brunckhorst <rbrunckhorst@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit c98994dd116121af75f6df6891e706957c6c953d)
Change-Id: I6eb15897f48eb93d72739965c10b5f51b21d7336
Reviewed-on: https://gerrit.openafs.org/15296
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 f7625760d515a4954596526e78b9a8c2a9e9ec13
Author: Stephan Wiesand <stephan.wiesand@desy.de>
Date: Wed Jan 18 14:18:08 2023 +0100
afs: check for non-NULL before memset in afs_LookupName
Commit 981bc005f8161ca9ee52ea281c7d73e0e4e2461a refactored PNewStatMount
and PFlushMount by moving their common logic to a new function
afs_LookupName(). In this function, the output parameters are zeroed.
However, this is done before checking that their pointers are valid.
Add additional checks before memset().
Reviewed-on: https://gerrit.openafs.org/15283
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit e2890626bc11964dd96cde0d7d8dd7fdfcf90857)
Change-Id: I213ea7e23e01e7902919919581ad1d8e596303a2
Reviewed-on: https://gerrit.openafs.org/15292
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit cba2b88851c3ae0ab1b18ea3ce77f7f5e8200b2f
Author: Jeffrey Hutzelman <jhutz@cmu.edu>
Date: Tue Mar 1 10:31:14 2022 -0500
LINUX 5.13: set .proc_lseek in proc_ops
When using the proc_ops structure, set .proc_lseek explicitly rather
than leaving it unset. This field has always been present in proc_ops,
but prior to Linux 5.13, it could be unset, causing default_llseek to be
used. Starting with commit d4455faccd6 (proc: mandate ->proc_lseek in
"struct proc_ops"), this field is now mandatory.
This fixes a problem which would cause an oops if llseek(2) is called
on /proc/fs/openafs/afs_ioctl.
Reviewed-on: https://gerrit.openafs.org/14918
Tested-by: BuildBot <buildbot@rampaginggeek.com>
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 68851b782ca2cb5e4ae7457255841f44f3bef15c)
Change-Id: Ifd3a517f595cfef7fd9dd1fdd3f3aca8fe1bc25f
Reviewed-on: https://gerrit.openafs.org/15286
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b885159cc2bc6c746aec1d54cdd8a515d1115d14
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Dec 14 13:40:48 2022 -0700
Linux: Replace lru_cache_add with folio_add_lru
The Linux 6.2 commit:
"folio-compat: remove lru_cache_add()" (6e1ca48d0)
removed the lru_cache_add() function (which was introduced in Linux 5.8)
The replacement function is folio_add_lru(), which was introduced with
the Linux 5.16 commit:
"mm/lru: Add folio_add_lru()" (0d31125d2d)
Reviewed-on: https://gerrit.openafs.org/15227
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit cfac0df9cd7152be2672c665442aac84215494d6)
Change-Id: I74535bf83cdd47c9dd60a7114ec7694ae9981c9b
Reviewed-on: https://gerrit.openafs.org/15281
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 f0fee2c7752d18ff183d60bcfba4c98c3348cd5f
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Fri Nov 18 08:41:50 2022 -0700
Linux: Check for block_dirty_folio
The build for the openafs Linux kernel module fails on RHEL9.1 with an
undefined function reference for block_dirty_folio().
RedHat 9.1 includes the Linux commit:
fs: Add aops->dirty_folio (6f31a5a261db)
which added the dirty_folio member to the address_space_operations
structure.
However RedHat 9.1 does not include the following 2 Linux commits:
fs: Convert __set_page_dirty_buffers to block_dirty_folio (e621900ad2)
which introduced block_dirty_folio() as a function that could be used to
handle the address_space_operations's dirty_folio operation.
And
fs: Remove aops ->set_page_dirty (3a3bae50af)
which removed the set_page_dirty member in the address_space_operations
structure.
The openafs commit:
Linux-5.18 replace set_page_dirty with dirty_folio (6aa129e743e88)
introduced an autoconf test that checks for the presence of aops'
dirty_folio member and assumed that the Linux function
block_dirty_folio() was also provided (since all three of the above
Linux commits were added in Linux-5.18-rc1).
Without the (e621900ad2) commit, the openafs Linux kernel module fails
to build since block_dirty_folio() is not defined by Linux.
Introduce new autoconf tests that checks for the presence of the
block_dirty_folio() function.
Change the preprocessor conditional within LINUX/osi_vnodeops.c to only
use dirty_folio if aops has dirty_folio and block_dirty_folio() is
available. When block_dirty_folio() is not available, we continue to
use the older set_page_dirty method, which remains a valid method until
its removal by the (3a3bae50af) Linux commit.
Note: Reviewing the Linux source for RedHat 9.1 shows that there is only
one location that is defining the dirty_folio member and it is providing
its own function instead of relying on block_dirty_folio.
Reviewed-on: https://gerrit.openafs.org/15199
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit e7737edb932a1c4d55a2551a44e481b40310c96d)
Change-Id: If29ad539c5530289ffa49aa1fa489f612e9f5c78
Reviewed-on: https://gerrit.openafs.org/15228
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 9d217903f0c7f6b260f166fad6dbf77c67df7c2d
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: I00a99819ac7d1d981695da3eae1bd60de1cb53ae
Reviewed-on: https://gerrit.openafs.org/15233
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 5a48ce589a24f2280b085e50718b05d08db918bd
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Fri Mar 6 15:15:38 2020 +0000
vol: fix namei_ConvertROtoRWvolume return code
Commit 8632f23d6718a3cd621791e82d1cf6ead8690978 introduced checks for
the return value of snprintf calls in namei_ops. On success, the value
returned by this function represents the number of written characters.
Unfortunately, the variable used to store this value is the same
variable that represents the status code returned by
namei_ConvertROtoRWvolume. Consequently, a successful execution of
namei_ConvertROtoRWvolume results in a status code different the 0 (and
equal to the number of written characters).
To fix this problem, set the status code in question back to 0 after a
successful execution of namei_ConvertROtoRWvolume.
Reviewed-on: https://gerrit.openafs.org/14065
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 957b06984b77cba74bd90217b723220c1844809b)
Change-Id: If82cf4d2983e7b6f8975ca4a9fa104ee5e36b917
Reviewed-on: https://gerrit.openafs.org/15232
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 3084117f10bd62acb1182cb54fc85b1d96738f70
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Fri Nov 4 08:33:39 2022 -0600
Linux: Fix functions without prototypes
The Linux kernel build has -Wstrict-prototypes enabled and flags
functions without a proper prototype. With clang-16 these warnings are
reported as errors when the kernel is configured with CONFIG_WERROR or
when openafs is configured with --enable-checking.
src/libafs/MODLOAD-6.1.0-rc3-SP/osi_alloc.c:339:32: error: a
function declaration without a prototype is deprecated in all
versions of C [-Werror,-Wstrict-prototypes]
osi_linux_verify_alloced_memory()
^
void
Update function prototypes to comply with -Wstrict-prototypes.
There are no functional changes with this commit.
Reviewed-on: https://gerrit.openafs.org/15194
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 63db2de22ef75292463ec1f0979e32afc05d0b95)
Change-Id: I2e9c09c3b88ca3597720b1d8885537600d307418
Reviewed-on: https://gerrit.openafs.org/15275
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c990b0d086632aef51585beabb42fd9ff22d1fc4
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu Dec 1 10:00:06 2022 -0700
libadmin: Fix RPCStatsStateGet 'rpc' prototype
clang-16 is flagging a incompatible-function-pointer-types warning which
results in build errors when --enable-warning is turned on.
client.c:498:13: error: incompatible function pointer types passing
'int (struct rx_connection *, afs_int32 *)'
(aka 'int (struct rx_connection *, int *)') to parameter of type
'int (*)(struct rx_connection *, afs_RPCStatsState_p)'
(aka 'int (*)(struct rx_connection *, afs_RPCStatsState_t *)')
[-Wincompatible-function-pointer-types]
(conn, RXSTATS_QueryPeerRPCStats, &state, &st)) {
^~~~~~~~~~~~~~~~~~~~~~~~~
Update the 'util_RPCStatsStateGet()' function's parameter to match the
function type for the RPC functions actually being called.
Reviewed-on: https://gerrit.openafs.org/15180
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 97f0a20e50f027fe00adb22c39b71f0ac79f1ff7)
Change-Id: Icbbbd137fa6a404090ef7af94621100bb552d502
Reviewed-on: https://gerrit.openafs.org/15274
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 973c5c585f59c0e88a2852d290abcb5e8fdf2b86
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu Dec 1 12:09:09 2022 -0700
clang-16: Fix simple unused-but-set variables
Clang-16 is flagging variables as unused-but-set-variables resulting in
build errors when --enable-warning is used.
db_verify.c:996:9: error: variable 'builtinUsers' set but not used
[-Werror,-Wunused-but-set-variable]
int builtinUsers = 0;
^
Remove the variables that are set but never actually used.
This commit fixes the simpler cases where variables are only set but
not used elsewhere.
Reviewed-on: https://gerrit.openafs.org/15178
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit afafde158ff875d2459bb81ac373cde3e45dac03)
Change-Id: I65cd27325b768ba192831401f4ac71e94071ecc7
Reviewed-on: https://gerrit.openafs.org/15273
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit f336d0aa01d208b1a7f3c1c509e2bd5d4d11f095
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Nov 2 14:47:04 2022 -0600
clang-16: Fix conditionally unused-but-set variables
clang-16 is flagging unused-but-set variables which result in build
errors when --enable-warning is turned on.
remote.c:485:15: error: variable 'pass' set but not used
[-Werror,-Wunused-but-set-variable]
afs_int32 pass;
^
These variables are actually used in specific cases depending on
build configuration (e.g. AFS_PTHREAD_ENV, etc.).
Relocate these variables so they are fully defined or referenced within
preprocessor '#if' blocks.
Reviewed-on: https://gerrit.openafs.org/15177
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 97018ace991d300a6ff75a1dcd1a69b4044f2b89)
Change-Id: Iee3a196d9c23a8725171db4a3a884a077f0e95ac
Reviewed-on: https://gerrit.openafs.org/15277
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit fb3071563922df8172bab261e8f0c3e3e779b666
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu Dec 1 09:05:58 2022 -0700
clang-16: Fix unused-but-set 'for' control vars
clang-16 is flagging unused-but-set variables which result in build
errors when --enable-warning is turned on. Several of these variables
are used within 'for(..)' loops but are not actually referenced anywhere
else.
fcrypt.c:181:16: error: variable 'i' set but not used
[-Werror,-Wunused-but-set-variable]
afs_uint32 i, j;
^
Refactor the for statements to eliminate the unused variables.
Note, this commit is a little more complex than simply removing unused
variables.
Reviewed-on: https://gerrit.openafs.org/15176
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 05eb420829f9bca155c1d5af9fe96844db974770)
Change-Id: I80506cb8ae1c4bef67225eb11e3f640e8de52d26
Reviewed-on: https://gerrit.openafs.org/15271
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b87081682dcc3035889c799d9752c6b35bdda87b
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Mon Nov 14 15:55:41 2022 -0700
crypto: Define krb5_keytype as krb5_enctype
When building with clang-16 and configured with --enable-checking, the
external source heimdal/krb5/crypto.c used in src/crypto/rfc3961 fails
with the following error:
src/external/heimdal/krb5/crypto.c:702:28
error: implicit conversion from enumeration type 'krb5_enctype' (aka
'enum ENCTYPE') to different enumeration type 'krb5_keytype' (aka
'enum krb5_keytype') [-Werror,-Wenum-conversion]
*keytype = e->keytype->type; /* XXX */
~ ~~~~~~~~~~~~^~~~
Replace the enum definition of krb5_keytype with a typedef to
krb5_enctype and create an anonymous enum mapping of KEYTYPE_ARCFOUR to
ETYPE_ARCFOUR_HMAC_MD5.
It should be noted that krb5_keytype and KEYTYPE_ARCFOUR are only used
by the external file src/external/heimdal/krb5/crypto.c
Changing the type for krb5_keytype was suggested by Andrew Deason
(adeason@sinenomine.net).
Reviewed-on: https://gerrit.openafs.org/15189
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit c9ac7cdfb6365e3fc1914de80019a10328de1f4f)
Change-Id: I15a793b35cfa920e8db1a99c5575b4f3f55be0dd
Reviewed-on: https://gerrit.openafs.org/15270
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 334debcd4c9032aa7c71bb79bce2be8acafe78e2
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Wed Nov 2 14:53:21 2022 -0600
dumptool: Remove unused 'sflag' variable
clang-16 is flagging unused-but-set variables which result in build
errors when --enable-warning is turned on.
./dumptool.c:1285:54: error: variable 'sflag' set but not used
[-Werror,-Wunused-but-set-variable]
int errflg = 0, lflag = 0, iflag = 0, Fflag = 0, sflag = 0, Rflag = 0;
Within dumptool the '-s' option of the 'ls' subcommand sets the 'sflag'
variable, but the variable itself is never used anywhere else.
Remove the variable 'sflag', and ignore the '-s' option.
The sflag variable was unused in the commit that introduced the code:
"test-suite-pull-tools-directly-in-20020114" (fcb32c07ed6d)
Reviewed-on: https://gerrit.openafs.org/15181
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 3e9d41c98ecf07519ff6d2a1413615547ace13b8)
Change-Id: I4cd4584c6374a525714d392f98fb39be5406bdbc
Reviewed-on: https://gerrit.openafs.org/15269
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 241dcae439cb1646f053391b3ee57553003cf6fa
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Fri Oct 28 17:53:15 2022 -0600
libuafs: include com_err.h in ukernel_swig.i
clang-16 is flagging an implicit-function-definition which results in a
build error when --enable-warning is turned on.
PERLUAFS/ukernel_swig_perl.c:1585:9: error: call to undeclared
function 'afs_com_err'; ISO C99 and later do not support
implicit function declarations [-Wimplicit-function-declaration]
afs_com_err("AFS::ukernel", code, "parsing line: '%s'", line);
^
Add an include for afs/com_err.h to resolve the warning.
Reviewed-on: https://gerrit.openafs.org/15179
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 4be3e5d31fa3fbe6c80ad0973430074124b157bc)
Change-Id: I62785fe6248cb4b26f680c2db044f59511a1e02e
Reviewed-on: https://gerrit.openafs.org/15268
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 0b908b7b9b39e36fc1bf98701d7e28d9a7a2f310
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Fri Nov 4 08:24:09 2022 -0600
rx: Remove event_handler rx_pthread_* counters
The event_handler() function contains several counters that are
set and incremented but are not actually used. Clang-16 is flagging
these with a 'unused-but-set-variable' warning resulting in build errors
when --enable-warnings is used.
rx_pthread.c:136:19: error: variable 'rx_pthread_n_event_expired' set
but not used [-Werror,-Wunused-but-set-variable]
unsigned long rx_pthread_n_event_expired = 0;
Several 'if' statements are used to conditionally set these variables,
but serve no other purpose. These 'if' statements can also be
eliminated.
Remove the unused rx_pthread_* counter variables as well as the
associated 'if' statements. In addition the only purpose of the
'error' variable was to conditionally increment one of the removed
variables, remove the 'error' variable.
These variables have been 'unused but set' since the original commit
from IBM.
Reviewed-on: https://gerrit.openafs.org/15175
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
(cherry picked from commit f7cb492c7e755ec91226c96cc82ad9f567f01f11)
Change-Id: I4dfdd7e536f6af642789fc51f6f055652c63a46d
Reviewed-on: https://gerrit.openafs.org/15267
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 5af53db475cdf4350d1cc41c9d4d955156eced57
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Sun Jan 26 20:17:40 2020 -0500
afs: silence bogus warning about dcListCount uninitialized
Commit 3be5880d1d2a0aef6600047ed43d602949cd5f4d 'afs: Avoid panics in
afs_InvalidateAllSegments' is correct, but at least one compiler (gcc
4.3.4 on SLES 11.3) is fooled into issuing a warning:
[...]/afs_segments.c: In function 'afs_InvalidateAllSegments_once':
[...]/afs_segments.c:506: error: 'dcListCount' may be used uninitialized in this function
To silence the bogus warning, initialize dcListCount when defined.
Reviewed-on: https://gerrit.openafs.org/14048
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 09ec1073b4c5d2eb70dcf5d8063018bc82e5a35e)
Change-Id: I84b1d4b8b9041242d64b03a84ad4392ff9778950
Reviewed-on: https://gerrit.openafs.org/15266
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 05a4adcdffaa75827fbdd80ab7b54195a2f0d243
Author: Ganesh Chaudhari <gangovind@in.ibm.com>
Date: Fri Oct 7 21:52:40 2022 +0530
macos: Update postinstall instructions for MacOS 13
System preferences is getting replaced by System settings in MacOS 13.
So, this commit will address the required changes in the dialog box
which gets popped after installing OpenAFS.
Signed-off-by: Ganesh Chaudhari <gangovind@in.ibm.com>
Reviewed-on: https://gerrit.openafs.org/15150
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit c620c91416f726357d556ce043b6cc285cf87a8b)
Change-Id: I6d8da31dc3735cab93c2b2226d436960c77b78ff
Reviewed-on: https://gerrit.openafs.org/15264
Reviewed-by: Ganesh G. Chaudhari <gangovind@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 9c6503e117f52dba91e10a09eb8d28c428550e34
Author: Ganesh Chaudhari <gangovind@in.ibm.com>
Date: Fri Oct 7 19:13:34 2022 +0530
macOS: Add support for aarch64-*-darwin* sysname
As of libtool 2.4.7, the supplied config.guess file modifies
the sysname returned on macOS arm64 from arm-*-darwin* to
aarch64-*-darwin*. As a result, trying to build OpenAFS on
macOS arm64 fails with the following message:
configure: error: An AFS sysname is required
To avoid this problem, added support for aarch64-*-darwin*.
Signed-off-by: Ganesh Chaudhari <gangovind@in.ibm.com>
Reviewed-on: https://gerrit.openafs.org/15149
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@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 d38b068627f5e84cead88af85f904fea0c8edb6d)
Change-Id: I7685c2b75f62fe28b8723e00fba22f5f7fe795f1
Reviewed-on: https://gerrit.openafs.org/15263
Reviewed-by: Ganesh G. Chaudhari <gangovind@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 41e46e12ac74fab70c692cf475aad13be0bdb518
Author: Ganesh Chaudhari <gangovind@in.ibm.com>
Date: Wed Sep 14 15:57:27 2022 +0530
macos: Add support for MacOS 13.0 (Ventura)
This commit introduces the new set of changes / files required to
successfully build the OpenAFS source code on OS X 13.0 “Ventura”.
Thank you Kailas Zadbuke (IBM) and Harish Sharma (IBM) for your help.
Reviewed-on: https://gerrit.openafs.org/15139
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit e5a97ef2b46c8821db81363f4917ef214fc34a5e)
Change-Id: I5092fe02a3bc3b7a6cb4ecfd4c8660278da9b0e8
Reviewed-on: https://gerrit.openafs.org/15262
Reviewed-by: Ganesh G. Chaudhari <gangovind@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 f6b088d2a7fe7fcabeb6b4635c8a01072c7219c4
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Sun Jun 20 00:52:36 2021 -0300
klog.krb5: remove "save and reuse password" logic
In order to avoid repeated requests for the user's password, klog.krb5
caches and reuses it whenever necessary. However, with the introduction
of commit 3a9a5783cd1fd73902655f0876e2069b42688c94, klog.krb5 always
requests a TGT regardless of the state of writeTicketFile, eliminating
the need for possible extra requests for the user's password.
Moreover, krb5_get_init_creds_password() does not accept a custom
prompter on macOS (returns EINVAL). Consequently, if the -password
argument is omitted, klog.krb5 fails with the following error:
klog: Invalid argument Unable to authenticate in realm <REALM>
Given that the user won't be prompted for a password multiple times,
remove the "save and reuse password" logic and use krb5_prompter_posix()
as the prompter function (instead of klog_prompter).
Relevant issue identified by gangovind@in.ibm.com.
Reviewed-on: https://gerrit.openafs.org/14643
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ganesh G. Chaudhari <gangovind@in.ibm.com>
Tested-by: Ganesh G. Chaudhari <gangovind@in.ibm.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit a10f99dbe025c74fb488b501daaf1f9574830cec)
Change-Id: I6587283d93a2dc801c8a41f0663a6de1b5d8a045
Reviewed-on: https://gerrit.openafs.org/15261
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 69f1ffb8989d8f1ac9a5ac4ea9459c358478e61d
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Thu Apr 7 22:51:21 2022 +0000
DARWIN: On macOS 12, mount afs on user's directory
Currently, /afs is mounted/unmounted by a LaunchDaemon. In order to
unmount /afs on restart/shutdown, this daemon runs umount -force /afs.
Unfortunately, SIP (System Integrity Protection) is not allowing the
LaunchDaemon in question to run this command successfully on macOS 12
(exclusively on restart/shutdown):
  umount: Operation not permitted
In this situation, afs can't be turned off correctly, leaving many
unkillable afsd processes lingering around. As a result, the
restart/shutdown process gets stuck indefinitely.
Fortunately, this problem doesn't happen if /afs is mounted on an user's
directory. That said, avoid this issue by mounting /afs on the current
user's directory (/Users/$USER/OpenAFS/afs). Notice that afs is still
accessible (including for other users) through a synthetic link added in
the root directory (/afs -> /Users/$USER/OpenAFS/afs).
Reviewed-on: https://gerrit.openafs.org/14925
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 1c7eda8ea83bee3e674435109efccbc6082e4765)
Change-Id: Idb013d76f00a78cfebd790900eabbcd6968029b7
Reviewed-on: https://gerrit.openafs.org/15260
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit fd64dcd3fb49e5575bf0ac8f0bb36857953c4f8a
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Tue Mar 15 10:58:16 2022 -0300
macos: Packaging support for MacOS X 12.0
This commit introduces the new set of changes / files required to
successfully create the dmg installer on OS X 12.0 "Monterey".
Reviewed-on: https://gerrit.openafs.org/14924
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 873d803a3dc7acffd74c9432872bed4f6575abf9)
Change-Id: I4cbbbeb5eb740b4f7979fa2137cb7faa9027d774
Reviewed-on: https://gerrit.openafs.org/15259
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 046e787f1f87c6e18676510f7f89206ead1069bb
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Thu Apr 7 03:16:45 2022 +0000
macos: Add support for MacOS 12.0
This commit introduces the new set of changes / files required to
successfully build the OpenAFS source code on OS X 12.0 "Monterey".
Reviewed-on: https://gerrit.openafs.org/14923
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 7a862f940b2e2f2169e267fc6deb31db8f3534c0)
Change-Id: I4f1b42002c670e15b3fecfd8d0cfb2f461b8d136
Reviewed-on: https://gerrit.openafs.org/15258
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit fc80c74689ae6be3f428401aec071f0a273d4bff
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Tue May 12 12:59:31 2020 -0400
DARWIN: disable kextutil check for versions requiring notarization
Our kextutil signing check will fail for releases that require
notarization (Mojave 10.14.5 and up, Catalina 10.15 all versions),
because we aren't notarized yet at the time of the check.
Instead, disable the check for those releases.
Reviewed-on: https://gerrit.openafs.org/14222
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit d2e755e33a266df17169a1fc05db1e540b5e76af)
Change-Id: Ie191503cb3f57c60a2a9c31e638dc7f79c496591
Reviewed-on: https://gerrit.openafs.org/15257
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 6652a632795aa23e1894c049f2d48c0881968add
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Sun May 10 20:53:22 2020 -0400
DARWIN: ensure OpenAFS.pkg is signed
Installation fails because the OpenAFS.pkg was inadvertently omitted
from the codesign logic.
Ensure that the package is signed.
Reviewed-on: https://gerrit.openafs.org/14221
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 336f5d91c6f4e93f77560d456fb29fbd82b237e5)
Change-Id: I58c0ca157653b76562ee7071a567db681d33fc2e
Reviewed-on: https://gerrit.openafs.org/15256
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit d20def23d094b11b88265d1f7430fc5e4d55484a
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Sun May 10 20:51:59 2020 -0400
DARWIN: ensure PrefPane materials are properly signed
Notarization fails because some prefPane materials were inadvertently
omitted by the codesign logic.
Ensure that these objects are properly signed.
Reviewed-on: https://gerrit.openafs.org/14220
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit d3f8d8122880de9f5b25868b39efd1cc7d385ff6)
Change-Id: Ice6c954e41e375fbe8ac670586d2616c565f0499
Reviewed-on: https://gerrit.openafs.org/15255
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 35fde5873a1a9327333d15af399738ae55680e22
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Tue Mar 15 10:38:45 2022 -0300
DARWIN: Replace afs_osi_cred by allocated ucred
Building the current version of OpenAFS on macOS Monterey arm64 results
in the following error:
error: globals with authenticated null values are currently unsupported
afs_ucred_t afs_osi_cred;
To avoid this problem, replace the global in question by a pointer to a
dynamically allocated afs_osi_cred (afs_osi_credp). Ideally we would
create a new credential with kauth_cred_create(), but this function is
not well documented and using it results in crashes. Moreover, if the
kauth_cred_dup() function were still available (private since XNU
1456.1.26 - macOS 10.6), we could also duplicate the current user's
credential during startup (like commit f40f466c7f did for BSD).
Reviewed-on: https://gerrit.openafs.org/14922
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 982d2f9dbe6586d06ffa2a61c02ea726b83b5902)
Change-Id: I720132478d4d1b742f63576e6a98e96c7a935885
Reviewed-on: https://gerrit.openafs.org/15254
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 29f7182c3fe25db9666871567a631e9173568ac8
Author: Andrew Deason <adeason@sinenomine.net>
Date: Mon Feb 25 11:35:24 2019 -0600
Remove references to SunOS 4
We already removed support for Solaris versions before Solaris 8, in
commit e4c2810f ("Remove support for Solaris pre-8"), but there are
still some references to SunOS (meaning SunOS 4) in the tree. This is
even older than Solaris (aka SunOS 5), so get rid of these.
This commit removes most references to SunOS 4 regarding platform
support, and a few comments. This also removes a few comments that
were just wrong or nonsensical (e.g. CMAPPED in afs.h is used by
other platforms; some comments in platform-specific osi_file.c files
referenced SunOS for some reason).
Reviewed-on: https://gerrit.openafs.org/13506
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 6e5638ac7297701a99ea396dee1df8f56a6a50da)
Change-Id: I17821e2cd0050bb0a468bfadda2c446beafeb537
Reviewed-on: https://gerrit.openafs.org/15253
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 3ee628c2dc5128ac68dd861b439a20db8837cecf
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Sep 21 12:11:46 2018 -0500
Remove alpha_dux/alpha_osf references
Several files were still referencing the alpha_dux* and alpha_osf*
sysnames. The code for these platforms has been removed, so get rid of
this cruft.
Reviewed-on: https://gerrit.openafs.org/13339
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 809ee49b80d7bc0e720aaebe78fb9ecfd453065d)
Change-Id: Iae1f642df6cfb4c2e757f0fc381cb98eb5bf448e
Reviewed-on: https://gerrit.openafs.org/15252
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 8ec429d0a3a7b3169d1eb24eb37e8084e5bc6a4f
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Mon Mar 21 14:43:34 2022 -0300
DARWIN: Drop afs_event lock before destroying it
On macOS arm64, a lock (lck_mtx_t) must be released (lck_mtx_unlock)
before it can be destroyed/freed (lck_mtx_free -> lck_mtx_destroy). If
this rules isn't respected, the operating system in question will panic
with the following message:
panic("lck_mtx_assert(): mutex (%p) not owned", lock);
Unfortunately, the current shutdown process of the osi_sleep module
doesn't respect this rule. As a result, macOS arm64 panics when the
OpenAFS client is shut down/restarted. To fix this problem, release
afs_event->lck (EVTLOCK_UNLOCK) before destroying it (EVTLOCK_DESTROY).
Reviewed-on: https://gerrit.openafs.org/14933
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 93b88935999ad25bc22daf64f9ebff30957e0a27)
Change-Id: Ib81c3decc748c06b2f99cfa155095bffd1048f57
Reviewed-on: https://gerrit.openafs.org/15251
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b5dd4df6ec3e87c7f06d214b213e30270a358f13
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Thu Apr 7 22:35:02 2022 +0000
macos: Add support for Apple Silicon
This commit introduces the new set of changes / files required to
successfully build the OpenAFS source code on Apple M1 (macOS 11+).
Notice that kexts on Apple silicon must support the arm64e architecture,
since they run in kernel space and must support the same architecture
and restrictions as other kernel code. On the other hand, the utilities
that run on user space, like vos, fs, and others, have to be built for
arm64 (currently).
Reviewed-on: https://gerrit.openafs.org/14746
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: Andrew Deason <adeason@sinenomine.net>
(cherry picked from commit cdbcb6f947feff528adc324dd6487b21083e23aa)
Change-Id: I854e7553b65956032a3c15aa427189bf8e4e3a0d
Reviewed-on: https://gerrit.openafs.org/15250
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 33bcff698f8b12c7830acf969f93eecad52a937f
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Thu Apr 7 02:15:57 2022 +0000
macos: Refactor param.x86_darwin_200.h
In preparation for a future commit, try to make param.x86_darwin_200.h
more readable. Also, rename this file to param.darwin_200.h so code from
other architectures can be included in this header.
Reviewed-on: https://gerrit.openafs.org/14934
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 39b74c2c3725cfa39fc5076cd7803ee7d55923e3)
Change-Id: I184591c24fac37b4c5a2b6fab7b42850b3004744
Reviewed-on: https://gerrit.openafs.org/15249
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b9c3dbc0a60a3295f1622bc79a05938173aa95b4
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Mon Feb 14 15:09:27 2022 -0800
build: Select param.h in sysname.m4
Currently, the way the file that will be used as param.h is selected
doesn't allow us to choose headers from other architectures, making
cross-compiling difficult. In an effort to facilitate this process,
select the header that will be used as param.h in sysname.m4. By doing
this, we will have more flexibility to select which header should be
used (in future commits).
Reviewed-on: https://gerrit.openafs.org/14914
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit d456bd9b258445f60745867c34ef7c7a8c7be187)
Change-Id: Iaaa372887ac17f352a6a4bb9c14b896e88e3b28b
Reviewed-on: https://gerrit.openafs.org/15248
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 84b177ccc856519a6a1aac7e18cd30514fccac15
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Apr 6 23:36:15 2022 +0000
macos: Build afscell for supported architectures
Given that i386 is no longer supported, trying to build the current
version of afscell on macOS 11 (Big Sur) results in the following error:
error: The i386 architecture is deprecated. You should update your ARCHS
build setting to remove the i386 architecture.
To fix this problem, build afscell for all architectures listed in
ARCHS_STANDARD.
For the macosx11.0 sdk:
$ xcodebuild -showBuildSettings -scheme afscell -sdk macosx | grep ARCHS
ARCHS = arm64 x86_64
ARCHS_STANDARD = arm64 x86_64
ARCHS_STANDARD_32_64_BIT = arm64 x86_64 i386
ARCHS_STANDARD_32_BIT = i386
ARCHS_STANDARD_64_BIT = arm64 x86_64
ARCHS_STANDARD_INCLUDING_64_BIT = arm64 x86_64
VALID_ARCHS = arm64 arm64e i386 x86_64
While here, add arm64 to the list of valid architectures.
Reviewed-on: https://gerrit.openafs.org/14745
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit dc6ced5e6d63ad89b1ad6f6b236a28b823abb59d)
Change-Id: I483c41a5954caa8ed080134d82f2e08a7c1973a4
Reviewed-on: https://gerrit.openafs.org/15247
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit a0898c2d90ed2928245576505f74e935a1ea2722
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Mon Sep 19 16:25:13 2022 -0600
UKERNEL: avoid double include of roken.h
Commit 'afs: Replace strcpy &co by safer alternatives' (419f0cd7aa75719)
added an include for roken.h into UKERNEL/afsincludes.h. Neither
UKERNEL/afsincludes.h or roken.h has a guard against a double include,
which can result in a build failure on older kernels (discovered on a
2.6.18 build):
In file included from ~/openafs/src/afs/UKERNEL/afsincludes.h:30,
from ~/openafs/src/afs/UKERNEL/afs_usrops.h:15,
from ~/openafs/src/afs/UKERNEL/afs_usrops.c:24:
include/roken.h:89: error: redefinition of typedef 'rk_socket_t'
include/roken.h:89: error: previous declaration of 'rk_socket_t' was here
In file included from ~/openafs/src/afs/UKERNEL/afsincludes.h:30,
from ../afs/afsincludes.h:16,
from ../afs/afs_bypasscache.h:68,
from ~/openafs/src/afs/UKERNEL/afs_usrops.c:30:
Since roken.h is from an external source, we cannot update it to add
the necessary check.
Update UKERNEL/afsincludes.h to add a check to see if it has already
been included.
auth/ktc.c has a required include for roken.h, but it also can pull in
UKERNEL/afsincludes.h as well. This can result in a double include for
roken.h.
Update auth/ktc.c to only include roken.h if not building UKERNEL.
Reviewed-on: https://gerrit.openafs.org/15130
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit cc0ffc56e85eec4133bcc5e745efa28f5d3c53a7)
Change-Id: I4508c2d4bb878dadce649f0da2af16c9efa69b91
Reviewed-on: https://gerrit.openafs.org/15265
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 5993965112da00e29ebdb2be084b50bae5cbb90f
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Mar 23 17:58:41 2022 -0300
DARWIN: Declare/include functions before using them
Every function should be explicitly declared before it can be called.
Since -Wimplicit-function-declaration is usually a warning and not an
error, calling undeclared functions does not prevent us from building
the code.
However, apple-clang 12 makes this an error by default, prohibiting the
build of the current version on macOS 11 (Big Sur).
To fix this problem, declare functions before calling them. Also,
include mach/thread_act.h into afs_call.c so the declaration of
thread_terminate() can be found on macOS. Last, given that the third
argument of PIOCTL() (if UKERNEL is defined) is a pointer, cast it to
'long'. Doing so, we can avoid another inhibited warning. Notice that
this PIOCTL definition is scoped to a single file (src/auth/ktc.c).
Reviewed-on: https://gerrit.openafs.org/14744
Reviewed-by: Andrew Deason <adeason@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 f9c96d0fd609e14fcb8ff7d9269024e026f742cb)
Change-Id: I70dadc44d40e1fc877f9e0490e28636907432faa
Reviewed-on: https://gerrit.openafs.org/15246
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 34d869996dda2de2449a1623de051b86e262212c
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Jan 21 17:54:48 2022 -0600
afs: Organize setpag() declarations better
The current declarations for setpag() are a mess (not to be confused
with many other setpag functions, like afs_setpag()), accumulated
across various commits over time. Shuffle the #ifdef logic around, so
this becomes a much more straightforward #ifdef ladder, with one
declaration per conditional. And move the LINUX declaration to be next
to all of the others (even the LINUX setpag() is declared in
osi_groups.c, not osi_misc.c, so it's in the wrong spot anyway).
The resulting #ifdef logic should be identical to the original code,
but is now easier to follow. For the BSDs, it may look like we have
changed the conditional for the case of "XBSD && !DFBSD && !FBSD &&
!NBSD", but that's a very roundabout way of saying OBSD (OpenBSD).
Reviewed-on: https://gerrit.openafs.org/14883
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 738a6487ad088068d19a18c6330e01a40f2fd278)
Change-Id: I9dc933fa96fc6e7839c010c5207e644179343898
Reviewed-on: https://gerrit.openafs.org/15245
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b56d5cdfa8cfff3bd3c166a38204cfa4dceaaf73
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Mar 23 17:31:54 2022 -0300
bucoord: Introduce ubik_Call_SingleServer_BUDB_*
In an effort to avoid the usage of undeclared functions, add wrappers
for ubik_Call_SingleServer() (_BUDB_GetVolumes(), _BUDB_DumpDB()) and
adjust its callers accordingly.
Also, make sure that ubik_Call_SingleServer() uses the same signature as
ubik_Call(). This change helps us to get rid of casting errors.
Reviewed-on: https://gerrit.openafs.org/14886
Reviewed-by: Andrew Deason <adeason@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 981b3d723ec56dad553be570147d1b2aa632f4e1)
Change-Id: I5893a939bc5cd64eec9dbbf1ce8a0dc5032c81f0
Reviewed-on: https://gerrit.openafs.org/15244
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 1e6fd4ceae1f8146a5dfa7c66330289564dbe7be
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Tue Apr 5 22:39:56 2022 +0000
afs: Ensure dirEntry->name has room for entry name
Currently, the afs_dynroot_addDirEnt() function assumes that the caller
has allocated the directory to be large enough to hold the necessary
entry. In order to make sure that memory isn't being accidentally
stomped, use strlcpy to truncate instead of stomping on other memory.
That way, if the caller makes a mistake we don't silently corrupt memory.
We specifically do not assert that there is no truncation or panic if
truncation occurs, since the effect of a truncated entry in the
dynamic AFS root volume is limited and does not justify bringing down
the entire client.
Reviewed-on: https://gerrit.openafs.org/14938
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
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 aa9180652876a3ba9157776b69a6995ac4201d1b)
Change-Id: I21a402bb6e20f2546c61bdabde021817dd3827d8
Reviewed-on: https://gerrit.openafs.org/15243
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 79c8c8639952fc3305b50152ba450ed8d858e7be
Author: Michael Meffie <mmeffie@sinenomine.net>
Date: Wed Sep 1 12:38:14 2021 -0400
fs: Trim trailing lsmount and flushmount path slashes
Remove trailing slashes from paths given to `fs lsmount` and `fs
flushmount`. This makes for a more pleasant user experience when shell
tab completion is used to specify the paths.
Thanks to Stephan Wiesand for pointing out this issue.
Reviewed-on: https://gerrit.openafs.org/14779
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 a7a672cae871aa9cf9cc003a37579cb4df51b3fe)
Change-Id: I24a2ae323f64f2d73be8fbc26860fa2864e34bfe
Reviewed-on: https://gerrit.openafs.org/15242
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 91f11551714c6b6f653fd367bc8d184c8aba9e7b
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Aug 24 13:03:24 2018 -0500
afs: Detect VIOCPREFETCH special case properly
Currently, afs_syscall_pioctl handles the VIOCPREFETCH pioctl as a
special case, calling into a different code path to handle
backgrounding the prefetch operation. However, we detect that we're
handling a VIOCPREFETCH operation just by looking at the lower 8 bits
of the given opcode. This means that any pioctl that ends in 0x0F will
trigger this codepath, such as if we add a 'C' or 'O' pioctl that uses
code 0x0F.
We only want to catch VIOCPREFETCH requests for this code path, so fix
the check to also check if we're processing a 'V' pioctl.
Reviewed-on: https://gerrit.openafs.org/13301
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 252b3bcc75ea141ff93a7b3147865f4b952fcaca)
Change-Id: I12d0616059dd8115b109b1ffa4cafe6ddc4b1662
Reviewed-on: https://gerrit.openafs.org/15241
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 581450c74c57680eeb89bf937b4d42936df6196b
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Apr 6 20:59:56 2022 +0000
afs: Replace strcpy &co by safer alternatives
In addition to being unsafe, these functions (strcpy, strncpy, strcat,
and sprintf) are deprecated on macOS. Replace these functions by safer
alternatives (strlcpy, strlcat, snprintf, and afs_strdup).
Notice that, in order to use afs_strdup(), this commit adds the afs_util
library to the AFSPAGOBJS list. Given that afs_strcasecmp() is also
implemented in afs_util.c, src/crypto/hcrypto/kernel/strcasecmp.c can be
removed from the tree.
No functional change should be incurred by this commit.
This commit is a continuation of a patch initially developed by
cwills@sinenomine.net.
Reviewed-on: https://gerrit.openafs.org/14743
Reviewed-by: Andrew Deason <adeason@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 419f0cd7aa75719dcf4df97e603ad4f0d936ddd9)
[cwills@sinenomine.net]
Part of the (419f0cd7aa) changes to afs_callback.c were pulled in to a
1.8.x specific commit:
"afs: Avoid unbounded string copy in SRXAFSCB_GetLock()" (79a04c344)
In order to resync the code, the include roken.h in afs_callback.c
introduced in that commit needed to be removed.
Change-Id: Ica0e9bdc82de2b1e89e6d4b513e775b2809fbc34
Reviewed-on: https://gerrit.openafs.org/15240
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit c7048f9a5c29df5816b6bcebaa42965bccb12557
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Thu Jun 14 14:38:54 2018 -0400
afs: remove dead code
afs_CheckLocks has been dead code since openafs-ibm-1_0.
No functional change incurred.
Reviewed-on: https://gerrit.openafs.org/13210
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 0839a3326858f7d7a0042614710dcf7316bb6018)
Change-Id: I1c564255990803dac7abe1789f2941bf4fa30b58
Reviewed-on: https://gerrit.openafs.org/15239
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit fc5be911a0ef216b9af79a0ec6bc32512085d398
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Mar 23 16:04:46 2022 -0300
UKERNEL: Remove flock -> usr_flock redirection
In order to replace 'struck flock' with 'struct usr_flock' and 'flock()'
with 'usr_flock()', the current version of src/afs/UKERNEL/sysincludes.h
defines flock to usr_flock. This can cause problems when trying to use
libroken in UKERNEL code, because roken.h redefines flock.
To avoid conflicts with libroken (included in a future commit), add a
new UKERNEL specific AFS_FLOCK -> usr_flock redirection. Doing so, the
flock -> usr_flock redirection can be removed. While here, also remove
'usr_flock()' as it shouldn't be called and is not defined in any header
file.
Reviewed-on: https://gerrit.openafs.org/14913
Reviewed-by: Andrew Deason <adeason@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 51c0387aaa5ec507c6e29063ef56d98e2931402d)
Change-Id: I3c2d9de056bae3f2fed68f1ec183540b63584a43
Reviewed-on: https://gerrit.openafs.org/15238
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 276632ea7334fd27972585823f358e92b448da59
Author: Andrew Deason <adeason@sinenomine.net>
Date: Thu Jan 27 14:49:15 2022 -0600
UKERNEL: Remove socket -> usr_socket redirection
Currently, src/afs/UKERNEL/sysincludes.h #defines 'socket' to
'usr_socket', in order for 'struct socket' declarations to use struct
usr_socket. Redefining a simple word/function like 'socket' can easily
cause issues, and currently makes it difficult to introduce libroken
callers in UKERNEL code. There are already several instances of
'#undef socket' in the tree for UKERNEL, suggesting that this wasn't a
good idea to start with.
Fortunately, this redefinition of 'socket' in UKERNEL seems
unnecessary, since the only place 'struct usr_socket' is actually
deferenced is inside src/rx/UKERNEL/rx_knet.c. So we can treat 'struct
usr_socket' as a struct definition that's just internal to rx_knet.c,
and no other code even needs to know about the struct, or think that
it's equivalent to 'struct socket'.
Most code in rx_knet.c already explicitly casts between 'struct
socket' and 'struct usr_socket'. The only exception is rxi_Recvmsg
starting in commits near 27c42be1 (ukernel-rx-knet-deref-20060126),
but this is easily fixed by adding an additional explicit cast.
Reviewed-on: https://gerrit.openafs.org/14887
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 17b16cb3989d1f41e314795515daf6c9b41cf1de)
Change-Id: I35c7b7fc61c1c741be928fa7beb889d8848f0b81
Reviewed-on: https://gerrit.openafs.org/15237
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit f2f0be5e04f2a700b721f647a87cbffe2ccd606a
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Wed Mar 23 15:10:15 2022 -0300
afs: Save size of sysname_info->name
In preparation for a future commit, save the size of sysname_info->name
by adding a new field (name_size) into the sysname_info struct. Also,
remove the sysname_info->allocked field, since now we can find out if
memory has been allocated by checking if sysname_info->name_size is
different than zero.
No functional change should be incurred by this commit.
Reviewed-on: https://gerrit.openafs.org/14912
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit c40c0bd00b7e49e67377e13f5b902c13a0e4478c)
Change-Id: I5a7d0d733dfc48d4d4eb5d00ef959ad980722e17
Reviewed-on: https://gerrit.openafs.org/15236
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 6ba75f842f307e94db86b95c9da98e9e40d11c35
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Thu Jul 1 10:47:50 2021 -0300
fs: add option to evaluate symlink or mtpt
Currently, several fs subcommands for Windows offer an option (-literal)
to evaluate symlink / mount point rather than the object it refers to.
Provide the same option on Unix for fs_getfid.
Reviewed-on: https://gerrit.openafs.org/14542
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 83d947c150322c3c7c65130ecf08719e466cae04)
Change-Id: Ife60e046c149f3586dbdad0e9b3fd6059967ece1
Reviewed-on: https://gerrit.openafs.org/15235
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit f1fd9c9cae8438635ea6e64fff05507921046ef3
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Tue Aug 17 19:52:11 2021 +0000
afs: refactor PNewStatMount and PFlushMount
Both functions use the same logic to find a name in a given directory.
To avoid repetition, move this logic to a separate function called
afs_LookupName().
No functional change is incurred by this commit.
Reviewed-on: https://gerrit.openafs.org/14541
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 981bc005f8161ca9ee52ea281c7d73e0e4e2461a)
Change-Id: I11f03146da86c91f83ad682df7ad1943cb4ab68f
Reviewed-on: https://gerrit.openafs.org/15234
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Harish Sharma <Harish.Sharma1@ibm.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit b17625959386459059f6f43875d8817383554481
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu Dec 1 14:18:36 2022 -0700
cf: Handle autoconf linux checks with -Werror
When the linux kernel has been configured with CONFIG_WERROR=y, several
autoconf configure checks used to detect linux features fail due to the
compiler performing additional coding checks (e.g. unused variables,
uninitialized variables, etc.). Typically these additional coding
checks produce compiler warnings, but with CONFIG_WERROR=y these
warnings are reported as compiler errors, resulting in a misconfigured
build environment.
When testing for kernel features, turn off -Werror in the autoconf
functions AC_CHECK_LINUX_BUILD and AC_CHECK_LINUX_FUNC by explicitly
setting the compiler '-Wno-error' flag.
In addition, fix the commented description for AC_CHECK_LINUX_BUILD to
match the actual parameters
Reviewed-on: https://gerrit.openafs.org/15191
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit e2ad1ca5f7355062e808f1717e7410b7ae893371)
Change-Id: I2c8ba4c421ed751aa6ff2899ea173c1e84053322
Reviewed-on: https://gerrit.openafs.org/15231
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 57df4dff496ca9bea04510759b8fdd9cd2cc0009
Author: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu Dec 1 12:55:26 2022 -0700
cf: Detect how to pass CFLAGS to linux kbuild
The autoconf test LINUX_KBUILD_USES_EXTRA_CFLAGS fails on modern kernels
when detecting how to pass CFLAGS to the compiler when building a Linux
kernel module. The result of this test is used by configure when
testing for Linux kernel features.
In addition the EXTRA_CFLAGS method of passing compiler parameters has
been deprecated since Linux 2.6.24 commit:
"kbuild: introduce ccflags-y, asflags-y and ldflags-y" (f77bf01425b)
The currently preferred method is to use the make variable 'ccflags-y'
to set compiler flags.
Replace the autoconf function LINUX_KBUILD_USES_EXTRA_CFLAGS with a new
test, LINUX_KBUILD_FIND_CFLAGS_METHOD, that checks the various ways to
pass compiler flags when building the kernel module.
Set the build variable "LINUX_KBUILD_CFLAGS_VAR" with the determined
method for setting kbuild compiler flags.
Update the AC_TRY_KBUILD26 autoconf function and the
make_kbuild_makefile.pl script to use the determined method for setting
the compiler flags for the kbuild process.
Background:
The autoconf test, LINUX_KBUILD_USES_EXTRA_CFLAGS, is used to determine
when to use either CFLAGS for EXTRA_CFLAGS when performing other
autoconf tests for Linux kernel features. The test was added with the
openafs commit:
"linux-2624-20071123" (af7cf697ef8)
LINUX_KBUILD_USES_EXTRA_CFLAGS relied on the Linux 2.6.24 commit:
"kbuild: check for wrong use of CFLAGS" (0c53c8e6eb4)
which caused a build failure if CFLAGS where used instead of
EXTRA_CFLAGS.
Later with the Linux 4.20 commit:
"kbuild: remove old check for CFLAGS use" (0d91bf584fe)
which removed the build failure when CFLAGS were set and this resulted
in LINUX_KBUILD_USES_EXTRA_CFLAGS failing to properly determining how to
set compiler flags in the kbuild process.
As mentioned above, the EXTRA_CFLAGS method itself has been deprecated
in Linux 2.6.24, but support for using it has still present in the
kbuild processes.
Reviewed-on: https://gerrit.openafs.org/15196
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 f81b01de1a51f02798ac764fb2f6948b592639da)
Change-Id: Ib1e07bf6b8734a427a2682ca694fbe2e083f1ecd
Reviewed-on: https://gerrit.openafs.org/15230
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
commit 2cf76b31ce4c912b1151c141818f6e8c5cddcab2
Author: Andrew Deason <adeason@sinenomine.net>
Date: Fri Jun 28 14:14:48 2019 -0500
LINUX: Run the 'sparse' checker if available
The Linux kernel module buildsystem supports running an external tool
(by default, the 'sparse' tool) during the build to run additional
static checks on the source code to flag various warnings.
Tell the kernel build to run such a tool, if 'sparse' is installed.
This causes various new warnings in the build, such as:
CHECK /.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c
/.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c:73:1: warning: symbol 'afs_FreeOneToken' was not declared. Should it be static?
/.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c:160:1: warning: symbol 'afs_IsTokenExpired' was not declared. Should it be static?
/.../src/libafs/MODLOAD-4.9.0-8-amd64-MP/afs_tokens.c:187:1: warning: symbol 'afs_IsTokenUsable' was not declared. Should it be static?
None cause the build to fail currently, but are just printed for
potential further investigation.
To control detecting 'sparse', add the --with-sparse configure option
and SPARSE configure variable. Default to checking if sparse is
available, and enabling it if so.
Further information on using sparse in the Linux kernel is available
in Documentation/sparse.txt in the Linux tree.
Using 'sparse' during the build was suggested by yadayada@in.ibm.com.
Reviewed-on: https://gerrit.openafs.org/13665
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 1210a8d6d96db2d84595d35ef81ec5d176de05e8)
Change-Id: I5d52b1eed48564956a687fba0419185b01621b13
Reviewed-on: https://gerrit.openafs.org/15229
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>