SHA256
1
0
forked from pool/openafs

Accepting request 948262 from home:hauky:branches:filesystems

- update to 1.8.8.1
- remove linux-kmp.patch.

OBS-URL: https://build.opensuse.org/request/show/948262
OBS-URL: https://build.opensuse.org/package/show/filesystems/openafs?expand=0&rev=86
This commit is contained in:
Christof Hanke 2022-01-23 20:41:03 +00:00 committed by Git OBS Bridge
parent 73a5f28975
commit 0bd6c11791
17 changed files with 37 additions and 524 deletions

View File

@ -1,200 +0,0 @@
User-Visible OpenAFS Changes
OpenAFS 1.8.8
All platforms
* Improved documentation, diagnostics and error messages (14311 14326
14331 14367 14399 14419 14420 14427 14434 14436 14437 14438 14439
14440 14502 14516 14518 14546)
* Build fixes, mostly for recent compilers (14217 14298 14299 14668)
* Avoid some potential performance losses in the wire protocol (14503
14514)
* Avoid client connections hanging forever when the server is
restarted while they're active (14504 14505 14506 14507)
All server platforms
* Avoid Rx calls getting stuck on the incoming call queue for busy
servers (14394)
* Avoid a possible salvageserver deadlock (14283)
* Fixed salvageserver's parsing of the "-parallel all<number>" argument
(14285)
* Avoid potential salvager crashes (14515 14614)
* Fix "bos salvage -forceDAFS" when the BosConfig also contains a legacy
'fs' bnode in addition to the 'dafs' bnode (14665)
* Avoid erratic vlserver behaviour due to overflowing the maximum
VLDB size of 2 GB. Log a message and return an error instead (14288)
* Fixed a ptserver issue where 'pts mem -expandgroups' failed when
supergroups were enabled (14345) (RT #135147)
* Take read-only volumes offline while being converted to read-write
ones with "vos convertROtoRW", preventing them from ending up in an
inconsistent state when accessed during the conversion (14433)
* Avoid inconsistent volume states due to interrupted rename operations
and other potential issues (14449 14450)
* Add new variants to asetkey's "delete" command to allow deleting
non-des keys (14293)
* Improved ubik performance and robustness (14141 14142 14365)
* Fixed building the vol-bless utility, which is now also built by
default but still not installed and distributed (14601)
* Fixed parsing of "-cores none" when bosserver is started this way
(14589)
All client platforms
* Avoid crashes or panics when potentially recoverable errors
during cache I/O are encountered (14286)
* Avoid flooding servers with NAT pings, which could happen under
certain circumstances (14364)
* Avoid possible panics during client startup or shutdown (14393 14441)
* Avoid potential buffer overflows by one character in the "bos" client
program and in libadmin client programs (14664 14666 14698)
* Fixed a slow kernel memory leak triggered by retrieving tokens for
userspace commands as an authenticated user (14667 14663) (RT #135238)
* Fixed several potential problems in "aklog -keytab" (14478 14479
14480 14481 14482)
* Performance improvements (14391)
* Avoid unexpected "cold" shutdowns upon umount /afs on platforms
which should perform a "warm" shutdown by default (14610)
* Avoid memory leaks during shutdown (14615 14616)
* Fixed building the afscp utility, which is still not built by default
though (14627)
Linux clients
* Support mainline kernels up to and including 5.13 (14267 14268 14269
14315 14563 14564 14565) (RT #135242)
Note that as of mainline kernel 5.13, OpenAFS currently won't build
on PowerPC due to a new ABI restriction.
* Avoid failures of cache I/O operations in the context of tasks
restricted by security mechanisms like AppArmor (14082 14099)
* Avoid a crash while loading the kernel module when reading from
/proc/fs/openafs/CellServDB before afsd has started (14284)
* Avoid more possible causes of getcwd() failures (14451)
* Restore the -setpag functionality in some older utilities like klog
(14327 14328)
macOS
* Added support for release 11.0 "Big Sur" (14597 14598 14605 14600)
FreeBSD
* Support releases 11.2, 12.1, 12.2 (14520 14537 14590)
* Add a wide range of FBSD specific fixes and improvements (14521..36)
OpenAFS 1.8.7
All platforms
* Fix initial Rx Connection ID (CID) generation.
Remove stale initialization and overflow detection logic that resulted
in connection failures due to all CIDs being set to 0x80000002.
(14493, 14494, 14497)
OpenAFS 1.8.6
All platforms
* Address warnings and errors encountered when building OpenAFS with
modern compilers like gcc9 or recent clang (13727..45 13749..50 13756
13846 13879)
* Avoid some rare cases of Rx calls getting stuck in the incoming queue
(13892)
* Display the usage of simple commands (commands without subcommands) when
run only with the -help option (13894)
* Fix a memory leak in the cache manager and the fileserver while
processing "fs uuid" or "fs setcbaddr" (13899)
* Fix a memory leak when reopening krb local realms configuration (13900)
* Avoid possible crashes when freeing kerberos contexts (13902)
All server platforms
* Do not leave empty directories behind in the file server vice partition
when running the "vos zap -force" command (13897)
* Fix "vos zap -force" failures when the volume being zapped does not have
an entry in the fileserver's volume group cache (e.g., during fileserver
startup) (13896)
* Relax the length limits on some membership lists used in ptserver RPCs,
introduced in release 1.8.0 to prevent denial of service attacks, to
accommodate use cases of some larger existing sites (13844)
* Improved diagnostics and error messages (13898 13906..8 13938)
* Ensure that fileservers running in readonly mode actually reject all
write requests, but introduce a -admin-write switch allowing writes
by members of the system:administrators group (14018 14019)
All client platforms
* Require the -insecure_des switch to be passed to aklog and klog.krb5
to make them work with single-DES encryption types (13791)
* Avoid a panic due to a retryable error - retry in a background request
instead (13847)
* Avoid blocking other functions on the completion of some potentially
long-running RPCs issued by the server (13893)
* Fix a potential memory leak in "fs getserverprefs" when the pioctl fails
with E2BIG (13895)
* Avoid the local cache incorrectly reflecting the state of a file on the
fileserver after flushing large chunks of data to the server. This
issue was present on FreeBSD clients, but probably not Linux/Solaris
ones (13951) (RT #135041)
* After a VLDB lookup of a read-write volume already failed, don't bother
looking up corresponding read-only or backup volumes since those lookups
are bound to fail, in order to make the client more responsive and
avoid unnecessary load on the vlserver (13968)
* Allow a "vos rename" to succeed if the new volume name is the same as
that in the current VLDB, to make it possible to complete a previously
interrupted volume rename (14055)
* Allow processes which are sleeping due to PAG throttling to be killable
(13974).
* Fix set PAG failures due to signals (13975).
Linux clients

18
RELNOTES-1.8.8.1 Normal file
View File

@ -0,0 +1,18 @@
User-Visible OpenAFS Changes
OpenAFS 1.8.8.1
Linux clients
* Support mainline kernels 5.14, 5.15 and likely 5.16 (currently
at rc6) (14830 14831 14851)
FreeBSD
* Add support for building on FreeBSD 12, and running at least in
readonly mode on this platform. Note this release removes support
for the obsolete FreeBSD 8 and 9. (14773 14780..88 14792..95)
Solaris
* Support building with Studio 12.6 (14841)

View File

@ -1,308 +0,0 @@
From 20b8a37950b3718b85a4a3d21b23469a5176eb6a Mon Sep 17 00:00:00 2001
From: Cheyenne Wills <cwills@sinenomine.net>
Date: Thu, 07 Oct 2021 11:15:58 -0600
Subject: [PATCH] LINUX 5.14: explicitly set set_page_dirty to default
Linux 5.14 commit: 'mm: require ->set_page_dirty to be explicitly wired
up' (0af573780b0b13) removed calling __set_page_dirty_buffers when the
address_space_operations structure member set_page_dirty was NULL.
A kernel RIP error can occur when the set_page_dirty operation is
requested. (Reproducible by running 'iozone -B -a')
Update the definition for afs_file_aops to explicitly set the
'set_page_dirty' member to '__set_page_dirty_buffers'.
There are no functional changes, since this commit is using the same
function that the Linux kernel was using if set_page_dirty had been
NULL.
Problem originally reported by "Andrej Filipcic"
<andrej.filipcic@ijs.si> in the openafs-info mailing list. The Linux
5.14 commit causing the openafs failure was identified by "Michael Laß"
<lass@mail.upb.de> also on in the openafs-info mailing list.
Note: The declaration for the function '__set_page_dirty_buffers' was
moved from linux/mm.h into linux/buffer_head.h in Linux 2.6.19. Since
this is close to the minimum supported Linux version 2.6.18, we are not
introducing an additional autoconf test to determine which header file
the declaration for __set_page_dirty_buffers resides in.
Reviewed-on: https://gerrit.openafs.org/14826
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: Michael Laß <lass@mail.uni-paderborn.de>
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
Tested-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Ralf Brunckhorst <rbrunckhorst@sinenomine.net>
Tested-by: Ralf Brunckhorst <rbrunckhorst@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit ba485a13e965909b63b25103fdf810de381e4977)
Change-Id: Iae61573e5ccf9458646eba4403322536fd86f2bf
---
diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
index f4bedae..00103a5 100644
--- a/src/afs/LINUX/osi_vnodeops.c
+++ b/src/afs/LINUX/osi_vnodeops.c
@@ -26,6 +26,7 @@
#include "afsincludes.h"
#include "afs/afs_stats.h"
#include <linux/mm.h>
+#include <linux/buffer_head.h>
#ifdef HAVE_MM_INLINE_H
#include <linux/mm_inline.h>
#endif
@@ -3287,6 +3288,7 @@
.readpage = afs_linux_readpage,
.readpages = afs_linux_readpages,
.writepage = afs_linux_writepage,
+ .set_page_dirty = __set_page_dirty_buffers,
#if defined (STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_WRITE_BEGIN)
.write_begin = afs_linux_write_begin,
.write_end = afs_linux_write_end,
From 4b752d855fb7315cbc119e39b1bbc0b50e6d56b4 Mon Sep 17 00:00:00 2001
From: Cheyenne Wills <cwills@sinenomine.net>
Date: Fri, 12 Nov 2021 14:42:57 -0700
Subject: [PATCH] Linux 5.15: Convert osi_Msg macro to a function
With Linux 5.15-prerc1 printk is defined as a macro instead of a
function ("printk: Userspace format indexing support" 33701557)
This change is causing a build failure:
.../src/rx/rx_kernel.h:62:18: error: printk undeclared (first use in
this function); did you mean _printk?
62 | # define osi_Msg printk)(
| ^~~~~~
The definition and use of the osi_Msg and osi_VMsg macros are
unconventional and the C preprocessor is not handling the macro
expansion when printk is itself a macro.
#define osi_Msg printk)(
...
(osi_Msg "%s", x);
Change osi_Msg to a function, and simply replace osi_VMsg with vprintf
since osi_VMsg is only used at one location within user space code.
osi_Msg is implemented in 2 locations, in rx_kcommon for kernel space
and in rx_user for userspace.
Note: The unconventional definitions of osi_Msg/osi_VMsg was historical
and due to older compilers not supporting variadic macros. All of
the currently support platforms should now support variadic functions.
Reviewed-on: https://gerrit.openafs.org/14791
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 22876c8b88f8e5e92f08b230e5e1959499f0c406)
Change-Id: I48a67b2fe79b45403414bb7d962c29c9be07262e
---
diff --git a/src/rx/rx.c b/src/rx/rx.c
index a9cf2fc..4931f73 100644
--- a/src/rx/rx.c
+++ b/src/rx/rx.c
@@ -1745,14 +1745,14 @@
clock_NewTime();
if (serviceId == 0) {
- (osi_Msg
+ osi_Msg(
"rx_NewService: service id for service %s is not non-zero.\n",
serviceName);
return 0;
}
if (port == 0) {
if (rx_port == 0) {
- (osi_Msg
+ osi_Msg(
"rx_NewService: A non-zero port must be specified on this call if a non-zero port was not provided at Rx initialization (service %s).\n",
serviceName);
return 0;
@@ -1775,7 +1775,7 @@
* installed; if the caller was intending to
* change the security classes used by this
* service, he/she loses. */
- (osi_Msg
+ osi_Msg(
"rx_NewService: tried to install service %s with service id %d, which is already in use for service %s\n",
serviceName, serviceId, service->serviceName);
USERPRI;
@@ -1820,7 +1820,7 @@
}
USERPRI;
rxi_FreeService(tservice);
- (osi_Msg "rx_NewService: cannot support > %d services\n",
+ osi_Msg("rx_NewService: cannot support > %d services\n",
RX_MAX_SERVICES);
return 0;
}
diff --git a/src/rx/rx_internal.h b/src/rx/rx_internal.h
index b420a23..274d981 100644
--- a/src/rx/rx_internal.h
+++ b/src/rx/rx_internal.h
@@ -75,3 +75,6 @@
int iovcnt, size_t length, int istack);
extern void rxi_SendRaw(struct rx_call *call, struct rx_connection *conn,
int type, char *data, int bytes, int istack);
+
+/* rx_kcommon.c / rx_user.c */
+extern void osi_Msg(const char *fmt, ...) AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
diff --git a/src/rx/rx_kcommon.c b/src/rx/rx_kcommon.c
index f6045fa..0b2000d 100644
--- a/src/rx/rx_kcommon.c
+++ b/src/rx/rx_kcommon.c
@@ -1298,6 +1298,19 @@
# endif /* RXK_LISTENER_ENV */
#endif /* !UKERNEL */
+void
+osi_Msg(const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+#if defined(AFS_LINUX26_ENV)
+ vprintk(fmt, ap);
+#else
+ vprintf(fmt, ap);
+#endif
+ va_end(ap);
+}
+
#if !defined(AFS_LINUX26_ENV)
void
# if defined(AFS_AIX_ENV)
diff --git a/src/rx/rx_kernel.h b/src/rx/rx_kernel.h
index 1e7980d..6f10ba4 100644
--- a/src/rx/rx_kernel.h
+++ b/src/rx/rx_kernel.h
@@ -58,13 +58,6 @@
(void)((exp) || (osi_AssertFailK( #exp , __FILE__, __LINE__), 0))
# endif
-#ifdef AFS_LINUX20_ENV
-# define osi_Msg printk)(
-#else
-# define osi_Msg printf)(
-#endif
-#define osi_VMsg vprintf)(
-
#define osi_YieldIfPossible()
#define osi_WakeupAndYieldIfPossible(x) rx_Wakeup(x)
diff --git a/src/rx/rx_lwp.c b/src/rx/rx_lwp.c
index fec4329..4aa8c59 100644
--- a/src/rx/rx_lwp.c
+++ b/src/rx/rx_lwp.c
@@ -385,12 +385,12 @@
*/
if (fcntl(sock, F_SETFL, FNDELAY) == -1) {
perror("fcntl");
- (osi_Msg "rxi_Listen: unable to set non-blocking mode on socket\n");
+ osi_Msg("rxi_Listen: unable to set non-blocking mode on socket\n");
return -1;
}
if (sock > FD_SETSIZE - 1) {
- (osi_Msg "rxi_Listen: socket descriptor > (FD_SETSIZE-1) = %d\n",
+ osi_Msg("rxi_Listen: socket descriptor > (FD_SETSIZE-1) = %d\n",
FD_SETSIZE - 1);
return -1;
}
@@ -442,7 +442,7 @@
if (!sfds) {
if (!(sfds = IOMGR_AllocFDSet())) {
- (osi_Msg "rx failed to alloc fd_set: ");
+ osi_Msg("rx failed to alloc fd_set: ");
perror("rx_sendmsg");
return -1;
}
@@ -460,7 +460,7 @@
if (err != EWOULDBLOCK && err != ENOBUFS)
#endif
{
- (osi_Msg "rx failed to send packet: ");
+ osi_Msg("rx failed to send packet: ");
perror("rx_sendmsg");
if (err > 0)
return -err;
diff --git a/src/rx/rx_user.c b/src/rx/rx_user.c
index 7e6c06b..04e1542 100644
--- a/src/rx/rx_user.c
+++ b/src/rx/rx_user.c
@@ -104,11 +104,11 @@
#if !defined(AFS_NT40_ENV)
if (ntohs(port) >= IPPORT_RESERVED && ntohs(port) < IPPORT_USERRESERVED) {
-/* (osi_Msg "%s*WARNING* port number %d is not a reserved port number. Use port numbers above %d\n", name, port, IPPORT_USERRESERVED);
+/* osi_Msg("%s*WARNING* port number %d is not a reserved port number. Use port numbers above %d\n", name, port, IPPORT_USERRESERVED);
*/ ;
}
if (ntohs(port) > 0 && ntohs(port) < IPPORT_RESERVED && geteuid() != 0) {
- (osi_Msg
+ osi_Msg(
"%sport number %d is a reserved port number which may only be used by root. Use port numbers above %d\n",
name, ntohs(port), IPPORT_USERRESERVED);
goto error;
@@ -144,7 +144,7 @@
break;
}
if (code) {
- (osi_Msg "%sbind failed\n", name);
+ osi_Msg("%sbind failed\n", name);
goto error;
}
#if !defined(AFS_NT40_ENV)
@@ -191,7 +191,7 @@
(socketFd, SOL_SOCKET, SO_RCVBUF, (char *)&len2,
sizeof(len2)) >= 0);
if (!greedy)
- (osi_Msg "%s*WARNING* Unable to increase buffering on socket\n",
+ osi_Msg("%s*WARNING* Unable to increase buffering on socket\n",
name);
if (rx_stats_active)
rx_atomic_set(&rx_stats.socketGreedy, greedy);
@@ -231,12 +231,21 @@
}
void
+osi_Msg(const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+}
+
+void
osi_Panic(char *msg, ...)
{
va_list ap;
va_start(ap, msg);
- (osi_Msg "Fatal Rx error: ");
- (osi_VMsg msg, ap);
+ fprintf(stderr, "Fatal Rx error: ");
+ vfprintf(stderr, msg, ap);
va_end(ap);
fflush(stderr);
fflush(stdout);
diff --git a/src/rx/rx_user.h b/src/rx/rx_user.h
index ecc036f..6b9dad9 100644
--- a/src/rx/rx_user.h
+++ b/src/rx/rx_user.h
@@ -65,7 +65,4 @@
#define osi_Assert(e) opr_Assert(e)
-#define osi_Msg fprintf)(stderr,
-#define osi_VMsg vfprintf)(stderr,
-
#endif /* RX_USER_INCLUDE */

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ddcc4e0c7d4abce4f1ac607e69c12e7711825f58813e365c4df8e97eb68e9be5
size 3773056

View File

@ -1 +0,0 @@
3affed58b57e2d9cb502e9fbcd9352d0 openafs-1.8.8-doc.tar.bz2

View File

@ -1 +0,0 @@
ddcc4e0c7d4abce4f1ac607e69c12e7711825f58813e365c4df8e97eb68e9be5 openafs-1.8.8-doc.tar.bz2

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:daa8ef86a7727facfcde3bc97a6ad143129c1c25ee35f3347080ec7e9d284da0
size 14863373

View File

@ -1 +0,0 @@
b4a622dfb4fa8913aedd72dbe69ebda5 openafs-1.8.8-src.tar.bz2

View File

@ -1 +0,0 @@
daa8ef86a7727facfcde3bc97a6ad143129c1c25ee35f3347080ec7e9d284da0 openafs-1.8.8-src.tar.bz2

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb5ecedc2e164bea3b48c6b2c9d6f1c36bfde91d068a4c62a9c885df48fe8e6b
size 3770278

View File

@ -0,0 +1 @@
41f99cd6d358a94dc20c1f11fd802c48 openafs-1.8.8.1-doc.tar.bz2

View File

@ -0,0 +1 @@
cb5ecedc2e164bea3b48c6b2c9d6f1c36bfde91d068a4c62a9c885df48fe8e6b openafs-1.8.8.1-doc.tar.bz2

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e7c4bed7075bcd6402e3f0c2d5b9dbe76ad2ee3c5fd5ddc3973a3356ca23ef44
size 14866119

View File

@ -0,0 +1 @@
3be3884e3bf0796c263a2a1aea4f90b5 openafs-1.8.8.1-src.tar.bz2

View File

@ -0,0 +1 @@
e7c4bed7075bcd6402e3f0c2d5b9dbe76ad2ee3c5fd5ddc3973a3356ca23ef44 openafs-1.8.8.1-src.tar.bz2

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Sun Jan 23 15:48:09 UTC 2022 - Christof Hanke <christof.hanke@mpcdf.mpg.de>
- update to 1.8.8.1
- remove linux-kmp.patch.
-------------------------------------------------------------------
Mon Nov 29 15:08:46 UTC 2021 - Christof Hanke <christof.hanke@mpcdf.mpg.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package openafs
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -57,11 +57,11 @@
# used for %setup only
# leave upstream tar-balls untouched for integrity checks.
%define upstream_version 1.8.8
%define upstream_version 1.8.8.1
Name: openafs
Version: 1.8.8
Version: 1.8.8.1
Release: 0
Summary: OpenAFS Distributed File System
License: IPL-1.0
@ -105,8 +105,6 @@ Source99: openafs.changes
Patch3: dir_layout.patch
# PATCH-FIX-UPSTREAM make configure detect ncurses 6 correctly
Patch4: openafs-1.8.x.ncurses6.patch
# PATCH-FIX-UPSTREAM make KMP bild on Factory
Patch5: linux-kmp.patch
#
# GENERAL BuildRequires and Requires
@ -323,7 +321,6 @@ done
%setup -q -n openafs-%{upstream_version} -T -b 0 -b 1
%patch3 -p1
%patch4 -p1
%patch5 -p1
./regen.sh