Accepting request 1098043 from filesystems
OBS-URL: https://build.opensuse.org/request/show/1098043 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openafs?expand=0&rev=42
This commit is contained in:
commit
a12eb975b7
38
4cf7a9a.diff
38
4cf7a9a.diff
@ -1,38 +0,0 @@
|
||||
From 4cf7a9adba18ed7752898c0d9421067c7bf17292 Mon Sep 17 00:00:00 2001
|
||||
From: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed, 09 Feb 2022 14:00:13 -0700
|
||||
Subject: [PATCH] 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
|
||||
|
||||
Change-Id: If5e93078ff8cd0af5a50a25a8be7b462261a4f6f
|
||||
---
|
||||
|
||||
diff --git a/src/cf/curses.m4 b/src/cf/curses.m4
|
||||
index 24c6535..1691845 100644
|
||||
--- a/src/cf/curses.m4
|
||||
+++ b/src/cf/curses.m4
|
||||
@@ -19,7 +19,11 @@
|
||||
AC_CHECK_LIB([ncurses], [initscr],
|
||||
[AC_CHECK_LIB([ncurses], [LINES], [openafs_cv_curses_lib=-lncurses],
|
||||
[AC_CHECK_LIB([tinfo], [LINES],
|
||||
- [openafs_cv_curses_lib="-lncurses -ltinfo"])])])
|
||||
+ [openafs_cv_curses_lib="-lncurses -ltinfo"],
|
||||
+ [AC_CHECK_LIB([ncurses], [_nc_LINES],
|
||||
+ [openafs_cv_curses_lib=-lncurses],
|
||||
+ [AC_CHECK_LIB([tinfo], [_nc_LINES],
|
||||
+ [openafs_cv_curses_lib="-lncurses -ltinfo"])])])])])
|
||||
AS_IF([test "x$openafs_cv_curses_lib" = x],
|
||||
[AC_CHECK_LIB([Hcurses], [initscr], [openafs_cv_curses_lib=-lHcurses])])
|
||||
AS_IF([test "x$openafs_cv_curses_lib" = x],
|
@ -1,92 +0,0 @@
|
||||
From 7a3ad3bc1c87e525698f7dda1e4b0fbbd913da03 Mon Sep 17 00:00:00 2001
|
||||
From: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed, 22 Mar 2023 16:56:09 -0600
|
||||
Subject: [PATCH] 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>
|
||||
---
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h
|
||||
index 9a080da..808c608 100644
|
||||
--- a/src/afs/LINUX/osi_compat.h
|
||||
+++ b/src/afs/LINUX/osi_compat.h
|
||||
@@ -13,6 +13,10 @@
|
||||
# include <linux/freezer.h>
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_LINUX_FILELOCK_H)
|
||||
+# include <linux/filelock.h>
|
||||
+#endif
|
||||
+
|
||||
#if defined(LINUX_KEYRING_SUPPORT)
|
||||
# include <linux/rwsem.h>
|
||||
# include <linux/key.h>
|
||||
diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
|
||||
index a53c186..ee22158 100644
|
||||
--- a/src/cf/linux-kernel-func.m4
|
||||
+++ b/src/cf/linux-kernel-func.m4
|
||||
@@ -94,7 +94,11 @@
|
||||
[struct timespec64 *s;
|
||||
ktime_get_real_ts64(s);])
|
||||
AC_CHECK_LINUX_FUNC([locks_lock_file_wait],
|
||||
- [#include <linux/fs.h>],
|
||||
+ [#ifdef HAVE_LINUX_FILELOCK_H
|
||||
+ # include <linux/filelock.h>
|
||||
+ #else
|
||||
+ # include <linux/fs.h>
|
||||
+ #endif],
|
||||
[locks_lock_file_wait(NULL, NULL);])
|
||||
AC_CHECK_LINUX_FUNC([override_creds],
|
||||
[#include <linux/cred.h>],
|
||||
diff --git a/src/cf/linux-kernel-header.m4 b/src/cf/linux-kernel-header.m4
|
||||
index 8507eaa..fc52830 100644
|
||||
--- a/src/cf/linux-kernel-header.m4
|
||||
+++ b/src/cf/linux-kernel-header.m4
|
||||
@@ -10,4 +10,6 @@
|
||||
AC_CHECK_LINUX_HEADER([sched/signal.h])
|
||||
AC_CHECK_LINUX_HEADER([uaccess.h])
|
||||
AC_CHECK_LINUX_HEADER([stdarg.h])
|
||||
+dnl Linux 6.3 relocated file locking related declarations into it's own header
|
||||
+AC_CHECK_LINUX_HEADER([filelock.h])
|
||||
])
|
||||
diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4
|
||||
index f7699ce..0d6b645 100644
|
||||
--- a/src/cf/linux-test4.m4
|
||||
+++ b/src/cf/linux-test4.m4
|
||||
@@ -142,7 +142,11 @@
|
||||
AC_DEFUN([LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG], [
|
||||
AC_CHECK_LINUX_BUILD([for 3rd argument in posix_lock_file found in new kernels],
|
||||
[ac_cv_linux_kernel_posix_lock_file_wait_arg],
|
||||
- [#include <linux/fs.h>],
|
||||
+ [#ifdef HAVE_LINUX_FILELOCK_H
|
||||
+ # include <linux/filelock.h>
|
||||
+ #else
|
||||
+ # include <linux/fs.h>
|
||||
+ #endif],
|
||||
[posix_lock_file(0,0,0);],
|
||||
[POSIX_LOCK_FILE_WAIT_ARG],
|
||||
[define if your kernel uses 3 arguments for posix_lock_file],
|
65
RELNOTES-1.8.10
Normal file
65
RELNOTES-1.8.10
Normal file
@ -0,0 +1,65 @@
|
||||
User-Visible OpenAFS Changes
|
||||
|
||||
OpenAFS 1.8.10
|
||||
|
||||
All platforms
|
||||
|
||||
* Improved error messages and diagnostics (15302 15313)
|
||||
|
||||
* Fixes for parallel or out of tree builds (15297..9)
|
||||
|
||||
* Fixed "make clean" to remove several artifacts overlooked in the past
|
||||
(15377)
|
||||
|
||||
* Fixed the autoconf check for ncurses to catch libs built with
|
||||
"--enable-reentrant" (15296)
|
||||
|
||||
* Removed the obsolete kdump debugging tool (15315)
|
||||
|
||||
* Avoid some more possible string buffer overflows (15240)
|
||||
|
||||
All client platforms
|
||||
|
||||
* Take the readonly volume offline during "vos convertROtoRW" (15233)
|
||||
|
||||
* Updated the CellServDB to the latest version from grand.central.org
|
||||
(15323)
|
||||
|
||||
All UNIX/Linux client platforms
|
||||
|
||||
* Trim trailing slashes from paths given to "fs lsmount" and
|
||||
"fs flushmount" (15242)
|
||||
|
||||
* Provide the "-literal" option for the "fs getfid" command, which allows
|
||||
querying a symlink or mount point rather than the object pointed to
|
||||
(15235)
|
||||
|
||||
* Avoid some potential kernel panics (15295 15324 15331)
|
||||
|
||||
AIX
|
||||
|
||||
* Improved support for this platform, including releases 7.1, 7.2 and 7.3
|
||||
(15309 15368..76 15378..86 15403 15422 15424..5 15441..2)
|
||||
|
||||
macOS
|
||||
* Added support for Apple Silicon and macOS releases up to 13 ("Ventura")
|
||||
(15246 15250..1 15254 15258..64)
|
||||
|
||||
* Fixes around signing and notarization of the OpenAFS packages (15255..7)
|
||||
|
||||
* Build "afscell" on supported platforms, and only those (15247)
|
||||
|
||||
Linux
|
||||
|
||||
* Support building for newer distributions and compilers (15266..71
|
||||
15273..5 15277)
|
||||
|
||||
Linux clients
|
||||
|
||||
* Support mainline kernels up to 6.4 and distribution kernels
|
||||
derived from those (15228 15281 15388..9 15410..11)
|
||||
|
||||
* Fixes and enhancements around the kernel module build (15229..31 15265)
|
||||
|
||||
* Fixed potential cache inconsistencies for symbolic link metadata (15443)
|
||||
|
@ -1,69 +0,0 @@
|
||||
User-Visible OpenAFS Changes
|
||||
|
||||
OpenAFS 1.8.9
|
||||
|
||||
All platforms
|
||||
|
||||
* Support for building with more recent compilers (14970 14982..14987
|
||||
14990 14991 15056 15057 15061..15064)
|
||||
|
||||
* Build fixes and improvements around the test suite (14879 14880
|
||||
14909..14911 15133)
|
||||
|
||||
* Removed a vestigial autoconf check for GSSAPI support that could
|
||||
cause unnecessary configure errors (15137)
|
||||
|
||||
* Documentation improvements (14980 15047)
|
||||
|
||||
* Improved diagnostics and error messages. In particular, warn when
|
||||
server processes are started without keys and properly print the
|
||||
volume transaction flags in "vos status" output (14594 14968)
|
||||
|
||||
All server platforms
|
||||
|
||||
* Avoid several second delays in some situations when the file server
|
||||
is breaking callbacks on clients with alternate addresses. Avoid
|
||||
unnecessary several second delays in some cases during database
|
||||
quorum processing (14815)
|
||||
|
||||
* Detect invalid (negative) inputs to FetchData RPCs and reject them
|
||||
early. The previous behavior only detected the error when actually
|
||||
attempting to read from storage, which resulted in the volume being
|
||||
taken offline since errors were assumed to originate from the
|
||||
underlying storage (15224)
|
||||
|
||||
All UNIX/Linux client platforms
|
||||
|
||||
* Do not perform DNS SRV/AFSDB record queries when running "fs
|
||||
getcellstatus", "fs checkservers", and "fs setcell". The DNS
|
||||
lookups incur network delays and were not needed to process these
|
||||
commands. (14814)
|
||||
|
||||
* Avoid possible string buffer overflows with long cell names (15151)
|
||||
|
||||
FreeBSD
|
||||
|
||||
* Added support for release 12.3 and further improvements (14878
|
||||
14920 14921)
|
||||
|
||||
Linux clients
|
||||
|
||||
* Support mainline kernels up to 6.0 (14942..14944 14989 14945
|
||||
14946 15058 15065 15094 15095 15148)
|
||||
|
||||
* Fixed a potential memory leak (15096)
|
||||
|
||||
* Avoid a possible performance penalty during file reads when
|
||||
the file was opened for both reading and writing (15129)
|
||||
|
||||
* Fixed a type cast which could make builds fail against older kernels
|
||||
(15134)
|
||||
|
||||
* In Red Hat packaging, systemd will no longer load the openafs module
|
||||
during boot (15128)
|
||||
|
||||
Most client platforms
|
||||
|
||||
* Handle certain failure conditions rather than panicking the system
|
||||
(14927 15052)
|
||||
|
83
b885159.diff
83
b885159.diff
@ -1,83 +0,0 @@
|
||||
From b885159cc2bc6c746aec1d54cdd8a515d1115d14 Mon Sep 17 00:00:00 2001
|
||||
From: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed, 14 Dec 2022 13:40:48 -0700
|
||||
Subject: [PATCH] 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>
|
||||
---
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
|
||||
index 5ff3a16..d875788 100644
|
||||
--- a/src/afs/LINUX/osi_vnodeops.c
|
||||
+++ b/src/afs/LINUX/osi_vnodeops.c
|
||||
@@ -32,7 +32,7 @@
|
||||
#endif
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/writeback.h>
|
||||
-#if defined(HAVE_LINUX_LRU_CACHE_ADD_FILE)
|
||||
+#if defined(HAVE_LINUX_FOLIO_ADD_LRU) || defined(HAVE_LINUX_LRU_CACHE_ADD_FILE)
|
||||
# include <linux/swap.h>
|
||||
#else
|
||||
# include <linux/pagevec.h>
|
||||
@@ -78,7 +78,8 @@
|
||||
|
||||
/* Handle interfacing with Linux's pagevec/lru facilities */
|
||||
|
||||
-#if defined(HAVE_LINUX_LRU_CACHE_ADD_FILE) || defined(HAVE_LINUX_LRU_CACHE_ADD)
|
||||
+#if defined(HAVE_LINUX_FOLIO_ADD_LRU) || \
|
||||
+ defined(HAVE_LINUX_LRU_CACHE_ADD_FILE) || defined(HAVE_LINUX_LRU_CACHE_ADD)
|
||||
|
||||
/*
|
||||
* Linux's lru_cache_add_file provides a simplified LRU interface without
|
||||
@@ -97,7 +98,10 @@
|
||||
static inline void
|
||||
afs_lru_cache_add(struct afs_lru_pages *alrupages, struct page *page)
|
||||
{
|
||||
-# if defined(HAVE_LINUX_LRU_CACHE_ADD)
|
||||
+# if defined(HAVE_LINUX_FOLIO_ADD_LRU)
|
||||
+ struct folio *folio = page_folio(page);
|
||||
+ folio_add_lru(folio);
|
||||
+# elif defined(HAVE_LINUX_LRU_CACHE_ADD)
|
||||
lru_cache_add(page);
|
||||
# elif defined(HAVE_LINUX_LRU_CACHE_ADD_FILE)
|
||||
lru_cache_add_file(page);
|
||||
diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
|
||||
index 504c731..a53c186 100644
|
||||
--- a/src/cf/linux-kernel-func.m4
|
||||
+++ b/src/cf/linux-kernel-func.m4
|
||||
@@ -173,10 +173,17 @@
|
||||
|
||||
dnl lru_cache_add exported in Linux 5.8
|
||||
dnl replaces lru_cache_add_file
|
||||
+dnl removed in linux 6.1. folio_add_lru is a replacement
|
||||
AC_CHECK_LINUX_FUNC([lru_cache_add],
|
||||
[#include <linux/swap.h>],
|
||||
[lru_cache_add(NULL);])
|
||||
|
||||
+dnl Linux 5.16 added folio_add_lru as a replacement for
|
||||
+dnl lru_cache_add
|
||||
+AC_CHECK_LINUX_FUNC([folio_add_lru],
|
||||
+ [#include <linux/swap.h>],
|
||||
+ [folio_add_lru(NULL);])
|
||||
+
|
||||
dnl Linux 5.8 replaced kernel_setsockopt with helper functions
|
||||
dnl e.g. ip_sock_set_mtu_discover, ip_sock_set_recverr
|
||||
AC_CHECK_LINUX_FUNC([ip_sock_set],
|
274
f6fbb85.diff
274
f6fbb85.diff
@ -1,274 +0,0 @@
|
||||
From f6fbb85c00411bf97e9855be73baf49bd6b061d7 Mon Sep 17 00:00:00 2001
|
||||
From: Cheyenne Wills <cwills@sinenomine.net>
|
||||
Date: Wed, 29 Mar 2023 12:11:38 -0600
|
||||
Subject: [PATCH] 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>
|
||||
---
|
||||
|
||||
diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h
|
||||
index 808c608..bb4969c 100644
|
||||
--- a/src/afs/LINUX/osi_compat.h
|
||||
+++ b/src/afs/LINUX/osi_compat.h
|
||||
@@ -534,7 +534,9 @@
|
||||
|
||||
int code = 0;
|
||||
struct inode *inode = OSIFILE_INODE(afile);
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+ code = inode->i_op->setattr(afs_mnt_idmap, afile->filp->f_dentry, newattrs);
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
code = inode->i_op->setattr(afs_ns, afile->filp->f_dentry, newattrs);
|
||||
#elif !defined(HAVE_LINUX_INODE_SETATTR)
|
||||
code = inode->i_op->setattr(afile->filp->f_dentry, newattrs);
|
||||
@@ -763,7 +765,9 @@
|
||||
static inline int
|
||||
afs_setattr_prepare(struct dentry *dp, struct iattr *newattrs)
|
||||
{
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+ return setattr_prepare(afs_mnt_idmap, dp, newattrs);
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
return setattr_prepare(afs_ns, dp, newattrs);
|
||||
#elif defined(HAVE_LINUX_SETATTR_PREPARE)
|
||||
return setattr_prepare(dp, newattrs);
|
||||
diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h
|
||||
index 34940c6..2220e05 100644
|
||||
--- a/src/afs/LINUX/osi_machdep.h
|
||||
+++ b/src/afs/LINUX/osi_machdep.h
|
||||
@@ -217,6 +217,10 @@
|
||||
# define afs_current_user_ns() ((struct user_namespace *)NULL)
|
||||
# endif
|
||||
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+extern struct mnt_idmap *afs_mnt_idmap;
|
||||
+#endif
|
||||
+
|
||||
static inline kuid_t afs_make_kuid(uid_t uid) {
|
||||
return make_kuid(afs_ns, uid);
|
||||
}
|
||||
diff --git a/src/afs/LINUX/osi_module.c b/src/afs/LINUX/osi_module.c
|
||||
index 79ba57c..fdc347d 100644
|
||||
--- a/src/afs/LINUX/osi_module.c
|
||||
+++ b/src/afs/LINUX/osi_module.c
|
||||
@@ -31,6 +31,10 @@
|
||||
#include <linux/sched.h>
|
||||
#include <linux/kernel.h>
|
||||
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+# include <linux/fs_struct.h>
|
||||
+#endif
|
||||
+
|
||||
#include "osi_pagecopy.h"
|
||||
|
||||
extern struct file_system_type afs_fs_type;
|
||||
@@ -46,6 +50,20 @@
|
||||
struct user_namespace *afs_ns;
|
||||
#endif
|
||||
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+struct mnt_idmap *afs_mnt_idmap;
|
||||
+
|
||||
+static void
|
||||
+afs_init_idmap(void)
|
||||
+{
|
||||
+ struct path fs_root;
|
||||
+
|
||||
+ get_fs_root(current->fs, &fs_root);
|
||||
+ afs_mnt_idmap = mnt_idmap(fs_root.mnt);
|
||||
+ path_put(&fs_root);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
int __init
|
||||
afs_init(void)
|
||||
{
|
||||
@@ -55,6 +73,10 @@
|
||||
afs_ns = afs_current_user_ns();
|
||||
#endif
|
||||
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+ afs_init_idmap();
|
||||
+#endif
|
||||
+
|
||||
osi_Init();
|
||||
|
||||
/* Initialize CellLRU since it is used while traversing CellServDB proc
|
||||
diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
|
||||
index d875788..2c5439d 100644
|
||||
--- a/src/afs/LINUX/osi_vnodeops.c
|
||||
+++ b/src/afs/LINUX/osi_vnodeops.c
|
||||
@@ -1146,7 +1146,10 @@
|
||||
* Linux version of setattr call. What to change is in the iattr struct.
|
||||
* We need to set bits in both the Linux inode as well as the vcache.
|
||||
*/
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_notify_change(struct mnt_idmap *idmap, struct dentry *dp, struct iattr *iattrp)
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_notify_change(struct user_namespace *mnt_userns, struct dentry *dp, struct iattr *iattrp)
|
||||
#else
|
||||
@@ -1180,7 +1183,18 @@
|
||||
return afs_convert_code(code);
|
||||
}
|
||||
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_linux_getattr(struct mnt_idmap *idmap, const struct path *path, struct kstat *stat,
|
||||
+ u32 request_mask, unsigned int sync_mode)
|
||||
+{
|
||||
+ int err = afs_linux_revalidate(path->dentry);
|
||||
+ if (!err) {
|
||||
+ generic_fillattr(afs_mnt_idmap, path->dentry->d_inode, stat);
|
||||
+ }
|
||||
+ return err;
|
||||
+}
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_linux_getattr(struct user_namespace *mnt_userns, const struct path *path, struct kstat *stat,
|
||||
u32 request_mask, unsigned int sync_mode)
|
||||
@@ -1661,7 +1675,11 @@
|
||||
* name is in kernel space at this point.
|
||||
*/
|
||||
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_linux_create(struct mnt_idmap *idmap, struct inode *dip,
|
||||
+ struct dentry *dp, umode_t mode, bool excl)
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_linux_create(struct user_namespace *mnt_userns, struct inode *dip,
|
||||
struct dentry *dp, umode_t mode, bool excl)
|
||||
@@ -1953,7 +1971,11 @@
|
||||
}
|
||||
|
||||
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_linux_symlink(struct mnt_idmap *idmap, struct inode *dip,
|
||||
+ struct dentry *dp, const char *target)
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_linux_symlink(struct user_namespace *mnt_userns, struct inode *dip,
|
||||
struct dentry *dp, const char *target)
|
||||
@@ -1988,7 +2010,11 @@
|
||||
return afs_convert_code(code);
|
||||
}
|
||||
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_linux_mkdir(struct mnt_idmap *idmap, struct inode *dip,
|
||||
+ struct dentry *dp, umode_t mode)
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_linux_mkdir(struct user_namespace *mnt_userns, struct inode *dip,
|
||||
struct dentry *dp, umode_t mode)
|
||||
@@ -2068,7 +2094,13 @@
|
||||
}
|
||||
|
||||
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_linux_rename(struct mnt_idmap *idmap,
|
||||
+ struct inode *oldip, struct dentry *olddp,
|
||||
+ struct inode *newip, struct dentry *newdp,
|
||||
+ unsigned int flags)
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_linux_rename(struct user_namespace *mnt_userns,
|
||||
struct inode *oldip, struct dentry *olddp,
|
||||
@@ -2092,7 +2124,7 @@
|
||||
struct dentry *rehash = NULL;
|
||||
|
||||
#if defined(HAVE_LINUX_INODE_OPERATIONS_RENAME_TAKES_FLAGS) || \
|
||||
- defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+ defined(IOP_TAKES_MNT_IDMAP) || defined(IOP_TAKES_USER_NAMESPACE)
|
||||
if (flags)
|
||||
return -EINVAL; /* no support for new flags yet */
|
||||
#endif
|
||||
@@ -3388,7 +3420,10 @@
|
||||
* Check access rights - returns error if can't check or permission denied.
|
||||
*/
|
||||
|
||||
-#if defined(IOP_TAKES_USER_NAMESPACE)
|
||||
+#if defined(IOP_TAKES_MNT_IDMAP)
|
||||
+static int
|
||||
+afs_linux_permission(struct mnt_idmap *idmap, struct inode *ip, int mode)
|
||||
+#elif defined(IOP_TAKES_USER_NAMESPACE)
|
||||
static int
|
||||
afs_linux_permission(struct user_namespace *mnt_userns, struct inode *ip, int mode)
|
||||
#elif defined(IOP_PERMISSION_TAKES_FLAGS)
|
||||
diff --git a/src/cf/linux-kernel-sig.m4 b/src/cf/linux-kernel-sig.m4
|
||||
index e0cc9a2..5301f35 100644
|
||||
--- a/src/cf/linux-kernel-sig.m4
|
||||
+++ b/src/cf/linux-kernel-sig.m4
|
||||
@@ -28,4 +28,17 @@
|
||||
AS_IF([test AS_VAR_GET([ac_cv_linux_operation_inode_operations_create_user_namespace]) = yes],
|
||||
[AC_DEFINE([IOP_TAKES_USER_NAMESPACE], 1,
|
||||
[define if inodeops require struct user_namespace])])
|
||||
+dnl Linux 6.3 replaced the user_namespace parameter with mnt_idmap for
|
||||
+dnl the inode operations functions.
|
||||
+AC_CHECK_LINUX_OPERATION([inode_operations], [create], [mnt_idmap],
|
||||
+ [#include <linux/fs.h>],
|
||||
+ [int],
|
||||
+ [struct mnt_idmap *idmap,
|
||||
+ struct inode *inode, struct dentry *dentry,
|
||||
+ umode_t umode, bool flag])
|
||||
+dnl if HAVE_LINUX_INODE_OPERATIONS_CREATE_MNT_IDMAP, create a more generic
|
||||
+dnl define.
|
||||
+AS_IF([test AS_VAR_GET([ac_cv_linux_operation_inode_operations_create_mnt_idmap]) = yes],
|
||||
+ [AC_DEFINE([IOP_TAKES_MNT_IDMAP], 1,
|
||||
+ [define if inodeops require struct mnt_idmap])])
|
||||
])
|
||||
\ No newline at end of file
|
3
openafs-1.8.10-doc.tar.bz2
Normal file
3
openafs-1.8.10-doc.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c3809e8afea017d8af2528f60cf0e0f9fa8454fac86533a3e67221f2eb5fb5d
|
||||
size 3770320
|
1
openafs-1.8.10-doc.tar.bz2.md5
Normal file
1
openafs-1.8.10-doc.tar.bz2.md5
Normal file
@ -0,0 +1 @@
|
||||
b7c71e48198ab210a5be0bb40fcdda1d openafs-1.8.10-doc.tar.bz2
|
1
openafs-1.8.10-doc.tar.bz2.sha256
Normal file
1
openafs-1.8.10-doc.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
||||
9c3809e8afea017d8af2528f60cf0e0f9fa8454fac86533a3e67221f2eb5fb5d openafs-1.8.10-doc.tar.bz2
|
3
openafs-1.8.10-src.tar.bz2
Normal file
3
openafs-1.8.10-src.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07
|
||||
size 14845228
|
1
openafs-1.8.10-src.tar.bz2.md5
Normal file
1
openafs-1.8.10-src.tar.bz2.md5
Normal file
@ -0,0 +1 @@
|
||||
9e8676d04ff3d95d60eaee5e7429a6bb openafs-1.8.10-src.tar.bz2
|
1
openafs-1.8.10-src.tar.bz2.sha256
Normal file
1
openafs-1.8.10-src.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
||||
9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07 openafs-1.8.10-src.tar.bz2
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ef91e854eab4aa74268525954a41c2a2ad0a2eaf530eaa22bb9e4bf453b15939
|
||||
size 3771797
|
@ -1 +0,0 @@
|
||||
1f59a2942007bac5c7a8b83360852e29 openafs-1.8.9-doc.tar.bz2
|
@ -1 +0,0 @@
|
||||
ef91e854eab4aa74268525954a41c2a2ad0a2eaf530eaa22bb9e4bf453b15939 openafs-1.8.9-doc.tar.bz2
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d126178be1f42cca18cb7c0c2691ac354518e3790170150a76bbd25f4d151f06
|
||||
size 14875192
|
@ -1 +0,0 @@
|
||||
b48ac2fdeffc2005b78e255c67ac43ba openafs-1.8.9-src.tar.bz2
|
@ -1 +0,0 @@
|
||||
d126178be1f42cca18cb7c0c2691ac354518e3790170150a76bbd25f4d151f06 openafs-1.8.9-src.tar.bz2
|
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 10 10:24:31 UTC 2023 - Christof Hanke <christof.hanke@mpcdf.mpg.de>
|
||||
|
||||
- update to official openafs-1.8.10
|
||||
- remove obsolete patches:
|
||||
* 7a3ad3bc.diff
|
||||
* b885159.diff
|
||||
* f6fbb85.diff
|
||||
* 4cf7a9a.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 30 12:21:37 UTC 2023 - Christof Hanke <christof.hanke@mpcdf.mpg.de>
|
||||
|
||||
|
17
openafs.spec
17
openafs.spec
@ -57,11 +57,11 @@
|
||||
|
||||
# used for %setup only
|
||||
# leave upstream tar-balls untouched for integrity checks.
|
||||
%define upstream_version 1.8.9
|
||||
%define upstream_version 1.8.10
|
||||
|
||||
Name: openafs
|
||||
|
||||
Version: 1.8.9
|
||||
Version: 1.8.10
|
||||
Release: 0
|
||||
Summary: OpenAFS Distributed File System
|
||||
License: IPL-1.0
|
||||
@ -103,14 +103,6 @@ Source58: openafs.cacheinfo
|
||||
Source98: kmp_only.files
|
||||
Source99: openafs.changes
|
||||
|
||||
# PATCH-FIX-UPSTREAM fix build with kernel 6.2
|
||||
Patch1: b885159.diff
|
||||
# PATCH-FIX-UPSTREAM fix build with kernel 6.3
|
||||
Patch2: f6fbb85.diff
|
||||
Patch3: 7a3ad3bc.diff
|
||||
# PATCH-FIX-UPSTREAM make configure detect ncurses 6 correctly
|
||||
Patch4: 4cf7a9a.diff
|
||||
|
||||
# GENERAL BuildRequires and Requires
|
||||
#
|
||||
|
||||
@ -320,10 +312,6 @@ for src_file in %{S:0} %{S:1}; do
|
||||
done
|
||||
|
||||
%setup -q -n openafs-%{upstream_version} -T -b 0 -b 1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
|
||||
./regen.sh
|
||||
|
||||
@ -367,7 +355,6 @@ export afslogsdir='/var/log/openafs'
|
||||
export afsdbdir='/var/lib/openafs/db'
|
||||
%configure \
|
||||
--disable-transarc-paths \
|
||||
--disable-pam \
|
||||
--disable-strip-binaries \
|
||||
--includedir=%{_includedir}/openafs \
|
||||
--sysconfdir=%{_sysconfdir} \
|
||||
|
Loading…
Reference in New Issue
Block a user