Introduce the new option "--work-dir" to specify the directory used to store the bitmap. This is the alternative to the combination of --non-cyclic and TMPDIR. Signed-off-by: Atsushi Kumagai <ats-kumagai at wm.jp.nec.com> --- makedumpfile.c | 14 +++++++++++++- makedumpfile.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletions(-) diff --git a/makedumpfile.c b/makedumpfile.c index b8e1c1b..40aacf9 100644 --- a/makedumpfile.c +++ b/makedumpfile.c @@ -1034,7 +1034,9 @@ open_dump_bitmap(void) char *tmpname; tmpname = getenv("TMPDIR"); - if (!tmpname) + if (info->working_dir) + tmpname = info->working_dir; + else if (!tmpname) tmpname = "/tmp"; if ((info->name_bitmap = (char *)malloc(sizeof(FILENAME_BITMAP) + @@ -3251,6 +3253,12 @@ out: if (!get_max_mapnr()) return FALSE; + if (info->working_dir || info->flag_refiltering) { + /* implemented as non-cyclic mode based on the file */ + info->flag_cyclic = FALSE; + info->pfn_cyclic = info->max_mapnr; + } + if (info->flag_cyclic) { if (info->bufsize_cyclic == 0) { if (!calculate_cyclic_buffer_size()) @@ -9831,6 +9839,7 @@ static struct option longopts[] = { {"non-mmap", no_argument, NULL, OPT_NON_MMAP}, {"mem-usage", no_argument, NULL, OPT_MEM_USAGE}, {"splitblock-size", required_argument, NULL, OPT_SPLITBLOCK_SIZE}, + {"work-dir", required_argument, NULL, OPT_WORKING_DIR}, {0, 0, 0, 0} }; @@ -9974,6 +9983,9 @@ main(int argc, char *argv[]) case OPT_SPLITBLOCK_SIZE: info->splitblock_size = atoi(optarg); break; + case OPT_WORKING_DIR: + info->working_dir = optarg; + break; case '?': MSG("Commandline parameter is invalid.\n"); MSG("Try `makedumpfile --help' for more information.\n"); diff --git a/makedumpfile.h b/makedumpfile.h index 4beac65..990c76f 100644 --- a/makedumpfile.h +++ b/makedumpfile.h @@ -1151,6 +1151,7 @@ struct DumpInfo { */ struct dump_bitmap *partial_bitmap1; struct dump_bitmap *partial_bitmap2; + char *working_dir; /* working directory for bitmap */ mdf_pfn_t num_dumpable; unsigned long bufsize_cyclic; unsigned long pfn_cyclic; @@ -1897,6 +1898,7 @@ struct elf_prstatus { #define OPT_NON_MMAP OPT_START+13 #define OPT_MEM_USAGE OPT_START+14 #define OPT_SPLITBLOCK_SIZE OPT_START+15 +#define OPT_WORKING_DIR OPT_START+16 /* * Function Prototype. -- 1.7.1