Accepting request 505675 from home:ptesarik:branches:Kernel:kdump
Fix saving to an NFS target. OBS-URL: https://build.opensuse.org/request/show/505675 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/kdump?expand=0&rev=134
This commit is contained in:
parent
1d77e6d7e2
commit
77637b9478
80
kdump-fix-save_dump-to-NFS.patch
Normal file
80
kdump-fix-save_dump-to-NFS.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Thu Jun 22 14:23:02 2017 +0200
|
||||||
|
Subject: Fix save_dump to NFS targets
|
||||||
|
References: bsc#1045541
|
||||||
|
Upstream: v0.8.17
|
||||||
|
Git-commit: 11d36a645ab99c9805f9fa3ca9eabce3aa2a9418
|
||||||
|
|
||||||
|
For NFS, the parent directory of the target must be mounted, because
|
||||||
|
the target directory itself does not exist yet.
|
||||||
|
|
||||||
|
For this to work, split the target path to directory (i.e. parent
|
||||||
|
directory) and basename. Then construct a unique mount point from the
|
||||||
|
host name and the parent directory, and finally append the base name
|
||||||
|
again to form a subdirectory in the target (to be created by the file
|
||||||
|
transfer method).
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
kdumptool/transfer.cc | 24 +++++++++++-------------
|
||||||
|
kdumptool/transfer.h | 4 +---
|
||||||
|
2 files changed, 12 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
--- a/kdumptool/transfer.cc
|
||||||
|
+++ b/kdumptool/transfer.cc
|
||||||
|
@@ -462,22 +462,20 @@ RootDirURL NFSTransfer::translate(const
|
||||||
|
if (!rt.check(config->KDUMP_NET_TIMEOUT.value()))
|
||||||
|
cerr << "WARNING: Dump target not reachable" << endl;
|
||||||
|
|
||||||
|
- string mountedDir = parser.getPath();
|
||||||
|
- FileUtil::nfsmount(parser.getHostname(), mountedDir,
|
||||||
|
- DEFAULT_MOUNTPOINT, options);
|
||||||
|
-
|
||||||
|
+ FilePath path = parser.getPath();
|
||||||
|
+ string mountedDir = path.dirName();
|
||||||
|
+ string rest = path.baseName();
|
||||||
|
|
||||||
|
m_mountpoint = DEFAULT_MOUNTPOINT;
|
||||||
|
- m_rest = parser.getPath();
|
||||||
|
- m_rest.replace(m_rest.begin(), m_rest.begin() + mountedDir.size(), "");
|
||||||
|
- m_rest.ltrim("/");
|
||||||
|
+ m_mountpoint.appendPath(parser.getHostname()).appendPath(mountedDir);
|
||||||
|
+ m_mountpoint.mkdir(true);
|
||||||
|
+ Debug::debug()->dbg("Path: %s, Mountpoint: %s, Rest: %s",
|
||||||
|
+ path.c_str(), m_mountpoint.c_str(), rest.c_str());
|
||||||
|
|
||||||
|
- (m_prefix = m_mountpoint).appendPath(m_rest);
|
||||||
|
-
|
||||||
|
- Debug::debug()->dbg("Mountpoint: %s, Rest: %s, Prefix: $s",
|
||||||
|
- m_mountpoint.c_str(), m_rest.c_str(), m_prefix.c_str());
|
||||||
|
+ FileUtil::nfsmount(parser.getHostname(), mountedDir,
|
||||||
|
+ m_mountpoint, options);
|
||||||
|
|
||||||
|
- return RootDirURL("file://" + m_prefix, "");
|
||||||
|
+ return RootDirURL("file://" + m_mountpoint + PATH_SEPARATOR + rest, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
@@ -507,7 +505,7 @@ void NFSTransfer::close()
|
||||||
|
throw (KError)
|
||||||
|
{
|
||||||
|
Debug::debug()->trace("NFSTransfer::close()");
|
||||||
|
- if (m_mountpoint.size() > 0) {
|
||||||
|
+ if (!m_mountpoint.empty()) {
|
||||||
|
FileUtil::umount(m_mountpoint);
|
||||||
|
m_mountpoint.clear();
|
||||||
|
}
|
||||||
|
--- a/kdumptool/transfer.h
|
||||||
|
+++ b/kdumptool/transfer.h
|
||||||
|
@@ -271,9 +271,7 @@ class NFSTransfer : public URLTransfer {
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
- std::string m_mountpoint;
|
||||||
|
- KString m_rest;
|
||||||
|
- FilePath m_prefix;
|
||||||
|
+ FilePath m_mountpoint;
|
||||||
|
FileTransfer *m_fileTransfer;
|
||||||
|
};
|
||||||
|
|
27
kdump-invoke-subcommand-destructors-on-exit.patch
Normal file
27
kdump-invoke-subcommand-destructors-on-exit.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Thu Jun 22 14:31:26 2017 +0200
|
||||||
|
Subject: Invoke subcommand destructors on exit
|
||||||
|
References: bsc#1045541
|
||||||
|
Upstream: v0.8.17
|
||||||
|
Git-commit: ff813cdc274caf7c006d438dbf30d83413bb896e
|
||||||
|
|
||||||
|
To execute the destructor for a subcommand, the object must be
|
||||||
|
explicitly freed in KdumpTool destructor. This fixes a bug that
|
||||||
|
NFS shares are not unmounted on exit.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
kdumptool/kdumptool.cc | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
--- a/kdumptool/kdumptool.cc
|
||||||
|
+++ b/kdumptool/kdumptool.cc
|
||||||
|
@@ -67,6 +67,7 @@ KdumpTool::~KdumpTool()
|
||||||
|
throw ()
|
||||||
|
{
|
||||||
|
Debug::debug()->trace("KdumpTool::~KdumpTool()");
|
||||||
|
+ delete m_subcommand;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 22 12:42:50 UTC 2017 - ptesarik@suse.com
|
||||||
|
|
||||||
|
- kdump-fix-save_dump-to-NFS.patch: Fix save_dump to NFS targets
|
||||||
|
(bsc#1045541).
|
||||||
|
- kdump-invoke-subcommand-destructors-on-exit.patch: Invoke
|
||||||
|
subcommand destructors on exit (bsc#1045541).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jun 16 12:04:14 UTC 2017 - msuchanek@suse.com
|
Fri Jun 16 12:04:14 UTC 2017 - msuchanek@suse.com
|
||||||
|
|
||||||
|
@ -59,6 +59,8 @@ Patch14: %{name}-do-not-free-fadump-memory-when-immediate-reboot-is-reque
|
|||||||
Patch15: %{name}-do-not-check-bind-mount.patch
|
Patch15: %{name}-do-not-check-bind-mount.patch
|
||||||
Patch16: %{name}-source-save_dump.patch
|
Patch16: %{name}-source-save_dump.patch
|
||||||
Patch17: %{name}-remount-sysroot-readwrite.patch
|
Patch17: %{name}-remount-sysroot-readwrite.patch
|
||||||
|
Patch18: %{name}-fix-save_dump-to-NFS.patch
|
||||||
|
Patch19: %{name}-invoke-subcommand-destructors-on-exit.patch
|
||||||
BuildRequires: asciidoc
|
BuildRequires: asciidoc
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -136,6 +138,8 @@ cp %{S:1} tests/data/
|
|||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
|
%patch18 -p1
|
||||||
|
%patch19 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user