Hi Bernhard, 2007/07/17 15:56:16 +0200, Bernhard Walle <bwalle at suse.de> wrote: >As I always forget to delete the produced dump file when testing >something, I'd like to see a `-f' option that forces makedumpfile to >overwrite existing files. Thank you for a good patch. I will merge it into a new release. Thanks Ken'ichi Ohmichi >Signed-off-by: Bernhard Walle <bwalle at suse.de> > >--- > makedumpfile.8 | 10 ++++++++++ > makedumpfile.c | 11 +++++++++-- > makedumpfile.h | 1 + > 3 files changed, 20 insertions(+), 2 deletions(-) > >--- a/makedumpfile.8 >+++ b/makedumpfile.8 >@@ -144,6 +144,16 @@ support compressed data. > # makedumpfile \-E \-d 31 \-x vmlinux /proc/vmcore dumpfile > > .TP >+\fB\-f\fR >+Force existing files to be overwritten. >+.br >+.B Example: >+.br >+# makedumpfile \-f \-x vmlinux /proc/vmcore dumpfile >+.br >+This command overwrites \fIdumpfile\fR if it already exists. >+ >+.TP > \fB\-x\fR \fIVMLINUX\fR > Specify the first kernel's \fIVMLINUX\fR with debug information to analyze the > first kernel's memory usage. >--- a/makedumpfile.c >+++ b/makedumpfile.c >@@ -409,6 +409,10 @@ int > open_dump_file(struct DumpInfo *info) > { > int fd; >+ int open_flags = O_RDWR|O_CREAT; >+ >+ if (!info->flag_force) >+ open_flags |= O_EXCL; > > if (info->flag_flatten) { > if ((info->name_dumpfile >@@ -420,7 +424,7 @@ open_dump_file(struct DumpInfo *info) > fd = STDOUT_FILENO; > strcpy(info->name_dumpfile, FILENAME_STDOUT); > >- } else if ((fd = open(info->name_dumpfile, O_RDWR|O_CREAT|O_EXCL, >+ } else if ((fd = open(info->name_dumpfile, open_flags, > S_IRUSR|S_IWUSR)) < 0) { > ERRMSG("Can't open the dump file(%s). %s\n", > info->name_dumpfile, strerror(errno)); >@@ -4624,7 +4628,7 @@ main(int argc, char *argv[]) > vt = &info->vm_table; > > info->block_order = DEFAULT_ORDER; >- while ((opt = getopt(argc, argv, "b:cDd:EFg:hi:Rvx:")) != -1) { >+ while ((opt = getopt(argc, argv, "b:cDd:EFg:hi:Rvx:f")) != -1) { > switch (opt) { > case 'b': > info->block_order = atoi(optarg); >@@ -4646,6 +4650,9 @@ main(int argc, char *argv[]) > case 'F': > info->flag_flatten = 1; > break; >+ case 'f': >+ info->flag_force = 1; >+ break; > case 'g': > info->flag_generate_config = 1; > info->name_configfile = optarg; >--- a/makedumpfile.h >+++ b/makedumpfile.h >@@ -552,6 +552,7 @@ struct DumpInfo { > format to a standard out */ > int flag_rearrange; /* flag of creating dumpfile from > flattened format */ >+ int flag_force; /* overwrite existing stuff */ > long page_size; /* size of page */ > long page_shift; > unsigned long long max_mapnr; /* number of page descriptor */ > >_______________________________________________ >kexec mailing list >kexec at lists.infradead.org >http://lists.infradead.org/mailman/listinfo/kexec