upgrade version to 2.6.3
This commit is contained in:
parent
6887026ab9
commit
39313d74ff
@ -1,44 +0,0 @@
|
||||
From c7e995c8a4a3985d1b315814d29e8d9211d6dc5e Mon Sep 17 00:00:00 2001
|
||||
From: lixiaokeng <lixiaokeng@huawei.com>
|
||||
Date: Tue, 30 Nov 2021 16:38:02 +0800
|
||||
Subject: [PATCH 1/2] fix coredump in bl_add_disk
|
||||
|
||||
The serial->data is not malloced separately, so it can't be freed.
|
||||
Just free(serial).
|
||||
|
||||
Signed-off-by: Lixiaokeng <lixiaokeng@huawei.com>
|
||||
---
|
||||
utils/blkmapd/device-discovery.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
|
||||
index f5f9b10..2c50205 100644
|
||||
--- a/utils/blkmapd/device-discovery.c
|
||||
+++ b/utils/blkmapd/device-discovery.c
|
||||
@@ -188,7 +188,6 @@ static void bl_add_disk(char *filepath)
|
||||
|
||||
if (disk && diskpath) {
|
||||
if (serial) {
|
||||
- free(serial->data);
|
||||
free(serial);
|
||||
}
|
||||
return;
|
||||
@@ -229,7 +228,6 @@ static void bl_add_disk(char *filepath)
|
||||
disk->valid_path = path;
|
||||
}
|
||||
if (serial) {
|
||||
- free(serial->data);
|
||||
free(serial);
|
||||
}
|
||||
}
|
||||
@@ -242,7 +240,6 @@ static void bl_add_disk(char *filepath)
|
||||
free(path);
|
||||
}
|
||||
if (serial) {
|
||||
- free(serial->data);
|
||||
free(serial);
|
||||
}
|
||||
return;
|
||||
--
|
||||
2.26.1.windows.1
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
From 576d3569c025e829e4ce432103532fcf63808d39 Mon Sep 17 00:00:00 2001
|
||||
From: zhanchengbin <zhanchengbin1@huawei.com>
|
||||
Date: Tue, 6 Sep 2022 09:49:30 +0800
|
||||
Subject: [PATCH] nfs-blkmaped: Fix the error status when nfs_blkmapd stops
|
||||
|
||||
The systemctl stop nfs-blkmap.service will sends the SIGTERM signal
|
||||
to the nfs-blkmap.service first.If the process fails to be stopped,
|
||||
it sends the SIGKILL signal again to kill the process.
|
||||
However, exit(1) is executed in the SIGTERM processing function of
|
||||
nfs-blkmap.service. As a result, systemd receives an error message
|
||||
indicating that nfs-blkmap.service failed.
|
||||
"Active: failed" is displayed when the systemctl status
|
||||
nfs-blkmap.service command is executed.
|
||||
|
||||
Signed-off-by: zhanchengbin <zhanchengbin1@huawei.com>
|
||||
---
|
||||
utils/blkmapd/device-discovery.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
|
||||
index 77ebe73..8ca548c 100644
|
||||
--- a/utils/blkmapd/device-discovery.c
|
||||
+++ b/utils/blkmapd/device-discovery.c
|
||||
@@ -462,7 +462,7 @@ static void sig_die(int signal)
|
||||
unlink(PID_FILE);
|
||||
}
|
||||
BL_LOG_ERR("exit on signal(%d)\n", signal);
|
||||
- exit(1);
|
||||
+ exit(0);
|
||||
}
|
||||
static void usage(void)
|
||||
{
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -1,94 +0,0 @@
|
||||
From 9565ab64e60f8282967e138f43c6057562dc5c27 Mon Sep 17 00:00:00 2001
|
||||
From: zhanchengbin <zhanchengbin1@huawei.com>
|
||||
Date: Sat, 19 Nov 2022 11:50:07 -0500
|
||||
Subject: [PATCH] nfs-blkmapd: PID file read by systemd failed
|
||||
|
||||
When started nfs-blkmap.service, the PID file can't be opened, The
|
||||
cause is that the child process does not create the PID file before
|
||||
the systemd reads the PID file.
|
||||
|
||||
Adding "ExecStartPost=/bin/sleep 0.1" to
|
||||
/usr/lib/systemd/system/nfs-blkmap.service will probably solve this
|
||||
problem, However, there is no guarantee that the above solutions are
|
||||
effective under high cpu pressure.So replace the daemon function with
|
||||
the fork function, and put the behavior of creating the PID file in
|
||||
the parent process to solve the above problems.
|
||||
|
||||
Signed-off-by: zhanchengbin <zhanchengbin1@huawei.com>
|
||||
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
|
||||
Signed-off-by: Steve Dickson <steved@redhat.com>
|
||||
---
|
||||
utils/blkmapd/device-discovery.c | 48 ++++++++++++++++++++++++++--------------
|
||||
1 file changed, 32 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
|
||||
index bd89059..a565fdb 100644
|
||||
--- a/utils/blkmapd/device-discovery.c
|
||||
+++ b/utils/blkmapd/device-discovery.c
|
||||
@@ -504,28 +504,44 @@ int main(int argc, char **argv)
|
||||
if (fg) {
|
||||
openlog("blkmapd", LOG_PERROR, 0);
|
||||
} else {
|
||||
- if (daemon(0, 0) != 0) {
|
||||
- fprintf(stderr, "Daemonize failed\n");
|
||||
- exit(1);
|
||||
+ pid_t pid = fork();
|
||||
+ if (pid < 0) {
|
||||
+ BL_LOG_ERR("fork error\n");
|
||||
+ exit(1);
|
||||
+ } else if (pid != 0) {
|
||||
+ pidfd = open(PID_FILE, O_WRONLY | O_CREAT, 0644);
|
||||
+ if (pidfd < 0) {
|
||||
+ BL_LOG_ERR("Create pid file %s failed\n", PID_FILE);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ if (lockf(pidfd, F_TLOCK, 0) < 0) {
|
||||
+ BL_LOG_ERR("Already running; Exiting!");
|
||||
+ close(pidfd);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ if (ftruncate(pidfd, 0) < 0)
|
||||
+ BL_LOG_ERR("ftruncate on %s failed: m\n", PID_FILE);
|
||||
+ sprintf(pidbuf, "%d\n", pid);
|
||||
+ if (write(pidfd, pidbuf, strlen(pidbuf)) != (ssize_t)strlen(pidbuf))
|
||||
+ BL_LOG_ERR("write on %s failed: m\n", PID_FILE);
|
||||
+ exit(0);
|
||||
+ }
|
||||
+
|
||||
+ (void)setsid();
|
||||
+ if (chdir("/")) {
|
||||
+ BL_LOG_ERR("chdir error\n");
|
||||
+ }
|
||||
+ int fd = open("/dev/null", O_RDWR, 0);
|
||||
+ if (fd >= 0) {
|
||||
+ (void)dup2(fd, STDIN_FILENO);
|
||||
+ (void)dup2(fd, STDOUT_FILENO);
|
||||
+ (void)dup2(fd, STDERR_FILENO);
|
||||
+
|
||||
+ (void)close(fd);
|
||||
}
|
||||
|
||||
openlog("blkmapd", LOG_PID, 0);
|
||||
- pidfd = open(PID_FILE, O_WRONLY | O_CREAT, 0644);
|
||||
- if (pidfd < 0) {
|
||||
- BL_LOG_ERR("Create pid file %s failed\n", PID_FILE);
|
||||
- exit(1);
|
||||
- }
|
||||
-
|
||||
- if (lockf(pidfd, F_TLOCK, 0) < 0) {
|
||||
- BL_LOG_ERR("Already running; Exiting!");
|
||||
- close(pidfd);
|
||||
- exit(1);
|
||||
- }
|
||||
- if (ftruncate(pidfd, 0) < 0)
|
||||
- BL_LOG_WARNING("ftruncate on %s failed: m\n", PID_FILE);
|
||||
- sprintf(pidbuf, "%d\n", getpid());
|
||||
- if (write(pidfd, pidbuf, strlen(pidbuf)) != (ssize_t)strlen(pidbuf))
|
||||
- BL_LOG_WARNING("write on %s failed: m\n", PID_FILE);
|
||||
}
|
||||
|
||||
signal(SIGINT, sig_die);
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -1,83 +0,0 @@
|
||||
From cdbef4e97a1cbc68cbaf16ba57d71858d2c69973 Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Layton <jlayton@kernel.org>
|
||||
Date: Tue, 10 Jan 2023 09:37:25 -0500
|
||||
Subject: [PATCH] nfs-utils: Don't allow junction tests to trigger automounts
|
||||
|
||||
JianHong reported some strange behavior with automounts on an nfs server
|
||||
without an explicit pseudoroot. When clients issued a readdir in the
|
||||
pseudoroot, automounted directories that were not yet mounted would show
|
||||
up even if they weren't exported, though the clients wouldn't be able to
|
||||
do anything with them.
|
||||
|
||||
The issue was that triggering the automount on a directory would cause
|
||||
the mountd upcall to time out, which would cause nfsd to include the
|
||||
automounted dentry in the readdir response. Eventually, the automount
|
||||
would work and report that it wasn't exported and subsequent attempts to
|
||||
access the dentry would (properly) fail.
|
||||
|
||||
We never want mountd to trigger an automount. The kernel should do that
|
||||
if it wants to use it. Change the junction checks to do an O_PATH open
|
||||
and use fstatat with AT_NO_AUTOMOUNT.
|
||||
|
||||
Cc: Chuck Lever <chuck.lever@oracle.com>
|
||||
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2148353
|
||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216777
|
||||
Reported-by: JianHong Yin <jiyin@redhat.com>
|
||||
Signed-off-by: Jeff Layton <jlayton@kernel.org>
|
||||
Signed-off-by: Steve Dickson <steved@redhat.com>
|
||||
---
|
||||
support/junction/junction.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/support/junction/junction.c b/support/junction/junction.c
|
||||
index 41cce261..0628bb0f 100644
|
||||
--- a/support/junction/junction.c
|
||||
+++ b/support/junction/junction.c
|
||||
@@ -63,7 +63,7 @@ junction_open_path(const char *pathname, int *fd)
|
||||
if (pathname == NULL || fd == NULL)
|
||||
return FEDFS_ERR_INVAL;
|
||||
|
||||
- tmp = open(pathname, O_DIRECTORY);
|
||||
+ tmp = open(pathname, O_PATH|O_DIRECTORY);
|
||||
if (tmp == -1) {
|
||||
switch (errno) {
|
||||
case EPERM:
|
||||
@@ -93,7 +93,7 @@ junction_is_directory(int fd, const char *path)
|
||||
{
|
||||
struct stat stb;
|
||||
|
||||
- if (fstat(fd, &stb) == -1) {
|
||||
+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
|
||||
xlog(D_GENERAL, "%s: failed to stat %s: %m",
|
||||
__func__, path);
|
||||
return FEDFS_ERR_ACCESS;
|
||||
@@ -121,7 +121,7 @@ junction_is_sticky_bit_set(int fd, const char *path)
|
||||
{
|
||||
struct stat stb;
|
||||
|
||||
- if (fstat(fd, &stb) == -1) {
|
||||
+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
|
||||
xlog(D_GENERAL, "%s: failed to stat %s: %m",
|
||||
__func__, path);
|
||||
return FEDFS_ERR_ACCESS;
|
||||
@@ -155,7 +155,7 @@ junction_set_sticky_bit(int fd, const char *path)
|
||||
{
|
||||
struct stat stb;
|
||||
|
||||
- if (fstat(fd, &stb) == -1) {
|
||||
+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
|
||||
xlog(D_GENERAL, "%s: failed to stat %s: %m",
|
||||
__func__, path);
|
||||
return FEDFS_ERR_ACCESS;
|
||||
@@ -393,7 +393,7 @@ junction_get_mode(const char *pathname, mode_t *mode)
|
||||
if (retval != FEDFS_OK)
|
||||
return retval;
|
||||
|
||||
- if (fstat(fd, &stb) == -1) {
|
||||
+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
|
||||
xlog(D_GENERAL, "%s: failed to stat %s: %m",
|
||||
__func__, pathname);
|
||||
(void)close(fd);
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
From 631c6aa34aae7328dc297210fd2de2d5364c697f Mon Sep 17 00:00:00 2001
|
||||
From: Steve Dickson <steved@redhat.com>
|
||||
Date: Wed, 4 Jan 2023 12:04:09 -0500
|
||||
Subject: [PATCH] Covscan Scan: Wrong Check of Return Value
|
||||
|
||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2151966
|
||||
Signed-off-by: Steve Dickson <steved@redhat.com>
|
||||
---
|
||||
support/export/client.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/support/export/client.c b/support/export/client.c
|
||||
index ea4f89d3..79164fef 100644
|
||||
--- a/support/export/client.c
|
||||
+++ b/support/export/client.c
|
||||
@@ -699,6 +699,9 @@ check_netgroup(const nfs_client *clp, const struct addrinfo *ai)
|
||||
|
||||
/* check whether the IP itself is in the netgroup */
|
||||
ip = calloc(INET6_ADDRSTRLEN, 1);
|
||||
+ if (ip == NULL)
|
||||
+ goto out;
|
||||
+
|
||||
if (inet_ntop(ai->ai_family, &(((struct sockaddr_in *)ai->ai_addr)->sin_addr), ip, INET6_ADDRSTRLEN) == ip) {
|
||||
if (innetgr(netgroup, ip, NULL, NULL)) {
|
||||
free(hname);
|
||||
--
|
||||
2.33.0
|
||||
|
||||
Binary file not shown.
BIN
nfs-utils-2.6.3.tar.xz
Normal file
BIN
nfs-utils-2.6.3.tar.xz
Normal file
Binary file not shown.
@ -3,8 +3,8 @@
|
||||
%global _statdpath /var/lib/nfs/statd
|
||||
|
||||
Name: nfs-utils
|
||||
Version: 2.6.2
|
||||
Release: 5
|
||||
Version: 2.6.3
|
||||
Release: 1
|
||||
Epoch: 2
|
||||
Summary: The Linux NFS userland utility package
|
||||
License: MIT and GPLv2 and GPLv2+ and BSD
|
||||
@ -15,14 +15,9 @@ Source0: https://www.kernel.org/pub/linux/utils/nfs-utils/%{version}/%{name}-%{v
|
||||
Patch0: 0000-systemd-idmapd-require-rpc-pipefs.patch
|
||||
Patch1: 0001-correct-the-statd-path-in-man.patch
|
||||
Patch2: 0002-nfs-utils-set-use-gss-proxy-1-to-enable-gss-proxy-by.patch
|
||||
Patch3: 0003-fix-coredump-in-bl_add_disk.patch
|
||||
Patch4: 0004-nfs-blkmaped-Fix-the-error-status-when-nfs_blkmapd-s.patch
|
||||
Patch5: 0005-nfs-blkmapd-PID-file-read-by-systemd-failed.patch
|
||||
Patch6: 0006-nfs-utils-Don-t-allow-junction-tests-to-trigger-auto.patch
|
||||
Patch7: 0007-Covscan-Scan-Wrong-Check-of-Return-Value.patch
|
||||
Patch8: 0008-export-fix-handling-of-error-from-match_fsid.patch
|
||||
Patch9: 0009-export-move-cache_open-before-workers-are-forked.patch
|
||||
Patch10: 0010-gssd-fix-handling-DNS-lookup-failure.patch
|
||||
Patch3: 0003-export-fix-handling-of-error-from-match_fsid.patch
|
||||
Patch4: 0004-export-move-cache_open-before-workers-are-forked.patch
|
||||
Patch5: 0005-gssd-fix-handling-DNS-lookup-failure.patch
|
||||
|
||||
BuildRequires: libevent-devel,libcap-devel, libtirpc-devel libblkid-devel
|
||||
BuildRequires: krb5-libs >= 1.4 autoconf >= 2.57 openldap-devel >= 2.2
|
||||
@ -243,8 +238,8 @@ fi
|
||||
%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd/sm
|
||||
%dir %attr(700,rpcuser,rpcuser) %{_sharedstatedir}/nfs/statd/sm.bak
|
||||
%ghost %attr(644,rpcuser,rpcuser) %{_statdpath}/state
|
||||
%attr(0600,root,root) %config(noreplace) /usr/lib/modprobe.d/50-nfs.conf
|
||||
%{_libexecdir}/nfsrahead
|
||||
%{_udevrulesdir}/60-nfs.rules
|
||||
%{_udevrulesdir}/99-nfs.rules
|
||||
%attr(4755,root,root) /sbin/mount.nfs
|
||||
/sbin/{rpc.statd,nfsdcltrack,osd_login,mount.nfs4,umount.*,nfsdcld}
|
||||
@ -295,6 +290,9 @@ fi
|
||||
%{_mandir}/*/*
|
||||
|
||||
%changelog
|
||||
* Wed Jan 10 2024 wuguanghao <wuguanghao3@huawei.com> - 2:2.6.3-1
|
||||
- upgrade version to 2.6.3
|
||||
|
||||
* Tue Dec 19 2023 wuguanghao <wuguanghao3@huawei.com> - 2:2.6.2-5
|
||||
- backport bugfix patches from community
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user