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:
Ana Guerrero 2023-07-11 13:57:13 +00:00 committed by Git OBS Bridge
commit a12eb975b7
21 changed files with 3507 additions and 3350 deletions

View File

@ -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],

View File

@ -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],

6189
ChangeLog

File diff suppressed because it is too large Load Diff

65
RELNOTES-1.8.10 Normal file
View 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)

View File

@ -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)

View File

@ -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],

View File

@ -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

View File

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

View File

@ -0,0 +1 @@
b7c71e48198ab210a5be0bb40fcdda1d openafs-1.8.10-doc.tar.bz2

View File

@ -0,0 +1 @@
9c3809e8afea017d8af2528f60cf0e0f9fa8454fac86533a3e67221f2eb5fb5d openafs-1.8.10-doc.tar.bz2

View File

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

View File

@ -0,0 +1 @@
9e8676d04ff3d95d60eaee5e7429a6bb openafs-1.8.10-src.tar.bz2

View File

@ -0,0 +1 @@
9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07 openafs-1.8.10-src.tar.bz2

View File

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

View File

@ -1 +0,0 @@
1f59a2942007bac5c7a8b83360852e29 openafs-1.8.9-doc.tar.bz2

View File

@ -1 +0,0 @@
ef91e854eab4aa74268525954a41c2a2ad0a2eaf530eaa22bb9e4bf453b15939 openafs-1.8.9-doc.tar.bz2

View File

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

View File

@ -1 +0,0 @@
b48ac2fdeffc2005b78e255c67ac43ba openafs-1.8.9-src.tar.bz2

View File

@ -1 +0,0 @@
d126178be1f42cca18cb7c0c2691ac354518e3790170150a76bbd25f4d151f06 openafs-1.8.9-src.tar.bz2

View File

@ -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>

View File

@ -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} \