From: Philipp Rudo <prudo@redhat.com>
To: kexec@lists.infradead.org
Cc: k-hagio-ab@nec.com
Subject: [PATCH 2/2] makedumpfile: Fix --dry-run for incomplete dumps
Date: Thu, 12 Aug 2021 15:39:40 +0200 [thread overview]
Message-ID: <20210812133940.5370-3-prudo@redhat.com> (raw)
In-Reply-To: <20210812133940.5370-1-prudo@redhat.com>
When running out of space during a dry run, e.g. by limiting the output
size using the -L option, makedumpfile fails with
[...]
Can't write the dump file(vmcore). Size limit(104857600) reached.
get_nr_pages: Can't seek end of the dump file(vmcore).
__read_disk_dump_header: Can't open a file(vmcore). No such file or directory
[...]
This is because for --dry-run no dump file is created and a dummy file
descriptor of -1 is used. Thus the file operations in get_nr_pages and
check_and_modify_*_headers fail. Fix the first error by using
write_bytes as file size for the output file and the second one by
always returning TRUE for check_and_modify_headers.
Fixes: 3422e1d ("[PATCH 1/2] Add --dry-run option to prevent writing the dumpfile")
Signed-off-by: Philipp Rudo <prudo@redhat.com>
---
makedumpfile.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/makedumpfile.c b/makedumpfile.c
index 30f9725..c063267 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -5113,6 +5113,9 @@ check_and_modify_multiple_kdump_headers() {
int
check_and_modify_headers()
{
+ if (info->flag_dry_run)
+ return TRUE;
+
if (info->flag_elf_dumpfile)
return check_and_modify_elf_headers(info->name_dumpfile);
else
@@ -7996,7 +7999,11 @@ get_nr_pages(void *buf, struct cache_data *cd_page){
int size, file_end, nr_pages;
page_desc_t *pd = buf;
- file_end = lseek(cd_page->fd, 0, SEEK_END);
+ if (info->flag_dry_run)
+ file_end = write_bytes;
+ else
+ file_end = lseek(cd_page->fd, 0, SEEK_END);
+
if (file_end < 0) {
ERRMSG("Can't seek end of the dump file(%s).\n", cd_page->file_name);
return -1;
--
2.31.1
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2021-08-12 13:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-12 13:39 [PATCH 0/2] makedumpfile: fix two bugs with --dry-run Philipp Rudo
2021-08-12 13:39 ` [PATCH 1/2] makedumpfile: Fix bad file descriptor error when using --dry-run Philipp Rudo
2021-08-12 13:39 ` Philipp Rudo [this message]
2021-08-16 2:54 ` [PATCH 0/2] makedumpfile: fix two bugs with --dry-run HAGIO KAZUHITO(萩尾 一仁)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210812133940.5370-3-prudo@redhat.com \
--to=prudo@redhat.com \
--cc=k-hagio-ab@nec.com \
--cc=kexec@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox