From ffaccd96b310c6789cb6cea0b3b67d89cf0d4dde Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 30 Dec 2013 17:59:16 -0500 Subject: [PATCH] debian: update debian/patches for 1.42.9-2 release Signed-off-by: "Theodore Ts'o" --- .../fix-debugfs-block-parse-error-reporting | 216 +++++++++++++++++++++ debian/patches/fix-printf-format-type-match | 20 ++ debian/patches/fix-spec-file-version | 19 ++ debian/patches/series | 3 + 4 files changed, 258 insertions(+) create mode 100644 debian/patches/fix-debugfs-block-parse-error-reporting create mode 100644 debian/patches/fix-printf-format-type-match create mode 100644 debian/patches/fix-spec-file-version create mode 100644 debian/patches/series diff --git a/debian/patches/fix-debugfs-block-parse-error-reporting b/debian/patches/fix-debugfs-block-parse-error-reporting new file mode 100644 index 0000000..4dfaf5d --- /dev/null +++ b/debian/patches/fix-debugfs-block-parse-error-reporting @@ -0,0 +1,216 @@ +Description: debugfs: restore and tweak original error messaging + . + In response to reviewer comments, commit fe56188b07 included changes + that modified some of the code used to output error messages when + checking user-supplied block numbers. These changes converted calls + to parse_ulonglong() to calls to strtoblk(). Because strtoblk() calls + parse_ulonglong(), and both output error messages, two redundant and + relatively generic messages were output on each error. + . + Fix this by removing the error message output from strtoblk(), and + extending it to accept an optional error message argument that it + supplies in lieu of a default to parse_ulonglong(). Also, revert to + the more descriptive original error messages with mods per reviewer + comments, and fix an error message in do_replace_node(). + . +Author: Eric Whitney +Origin: upstream + +diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c +index cf7670b..998af33 100644 +--- a/debugfs/debugfs.c ++++ b/debugfs/debugfs.c +@@ -181,7 +181,8 @@ void do_open_filesys(int argc, char **argv) + return; + break; + case 's': +- err = strtoblk(argv[0], optarg, &superblock); ++ err = strtoblk(argv[0], optarg, ++ "superblock block number", &superblock); + if (err) + return; + break; +@@ -284,7 +285,7 @@ void do_init_filesys(int argc, char **argv) + return; + + memset(¶m, 0, sizeof(struct ext2_super_block)); +- err = strtoblk(argv[0], argv[2], &blocks); ++ err = strtoblk(argv[0], argv[2], "blocks count", &blocks); + if (err) + return; + ext2fs_blocks_count_set(¶m, blocks); +@@ -2100,7 +2101,7 @@ void do_bmap(int argc, char *argv[]) + ino = string_to_inode(argv[1]); + if (!ino) + return; +- err = strtoblk(argv[0], argv[2], &blk); ++ err = strtoblk(argv[0], argv[2], "logical block", &blk); + if (err) + return; + +@@ -2247,11 +2248,11 @@ void do_punch(int argc, char *argv[]) + ino = string_to_inode(argv[1]); + if (!ino) + return; +- err = strtoblk(argv[0], argv[2], &start); ++ err = strtoblk(argv[0], argv[2], "logical block", &start); + if (err) + return; + if (argc == 4) { +- err = strtoblk(argv[0], argv[3], &end); ++ err = strtoblk(argv[0], argv[3], "logical block", &end); + if (err) + return; + } else +@@ -2457,7 +2458,9 @@ int main(int argc, char **argv) + "block size", 0); + break; + case 's': +- retval = strtoblk(argv[0], optarg, &superblock); ++ retval = strtoblk(argv[0], optarg, ++ "superblock block number", ++ &superblock); + if (retval) + return 1; + break; +diff --git a/debugfs/debugfs.h b/debugfs/debugfs.h +index 6b4f6ef..33389fa 100644 +--- a/debugfs/debugfs.h ++++ b/debugfs/debugfs.h +@@ -39,7 +39,8 @@ extern unsigned long parse_ulong(const char *str, const char *cmd, + const char *descr, int *err); + extern unsigned long long parse_ulonglong(const char *str, const char *cmd, + const char *descr, int *err); +-extern int strtoblk(const char *cmd, const char *str, blk64_t *ret); ++extern int strtoblk(const char *cmd, const char *str, const char *errmsg, ++ blk64_t *ret); + extern int common_args_process(int argc, char *argv[], int min_argc, + int max_argc, const char *cmd, + const char *usage, int flags); +diff --git a/debugfs/extent_inode.c b/debugfs/extent_inode.c +index b3c55f9..8b22f5e 100644 +--- a/debugfs/extent_inode.c ++++ b/debugfs/extent_inode.c +@@ -264,15 +264,15 @@ void do_replace_node(int argc, char *argv[]) + return; + } + +- err = strtoblk(argv[0], argv[1], &extent.e_lblk); ++ err = strtoblk(argv[0], argv[1], "logical block", &extent.e_lblk); + if (err) + return; + +- extent.e_len = parse_ulong(argv[2], argv[0], "logical block", &err); ++ extent.e_len = parse_ulong(argv[2], argv[0], "length", &err); + if (err) + return; + +- err = strtoblk(argv[0], argv[3], &extent.e_pblk); ++ err = strtoblk(argv[0], argv[3], "physical block", &extent.e_pblk); + if (err) + return; + +@@ -338,16 +338,15 @@ void do_insert_node(int argc, char *argv[]) + return; + } + +- err = strtoblk(cmd, argv[1], &extent.e_lblk); ++ err = strtoblk(cmd, argv[1], "logical block", &extent.e_lblk); + if (err) + return; + +- extent.e_len = parse_ulong(argv[2], cmd, +- "length", &err); ++ extent.e_len = parse_ulong(argv[2], cmd, "length", &err); + if (err) + return; + +- err = strtoblk(cmd, argv[3], &extent.e_pblk); ++ err = strtoblk(cmd, argv[3], "physical block", &extent.e_pblk); + if (err) + return; + +@@ -385,11 +384,11 @@ void do_set_bmap(int argc, char **argv) + return; + } + +- err = strtoblk(cmd, argv[1], &logical); ++ err = strtoblk(cmd, argv[1], "logical block", &logical); + if (err) + return; + +- err = strtoblk(cmd, argv[2], &physical); ++ err = strtoblk(cmd, argv[2], "physical block", &physical); + if (err) + return; + +@@ -516,7 +515,7 @@ void do_goto_block(int argc, char **argv) + "block [level]", 0)) + return; + +- if (strtoblk(argv[0], argv[1], &blk)) ++ if (strtoblk(argv[0], argv[1], NULL, &blk)) + return; + + if (argc == 3) { +diff --git a/debugfs/icheck.c b/debugfs/icheck.c +index 48f432a..3b9bd14 100644 +--- a/debugfs/icheck.c ++++ b/debugfs/icheck.c +@@ -86,7 +86,7 @@ void do_icheck(int argc, char **argv) + } + + for (i=1; i < argc; i++) { +- if (strtoblk(argv[0], argv[i], &bw.barray[i-1].blk)) ++ if (strtoblk(argv[0], argv[i], NULL, &bw.barray[i-1].blk)) + goto error_out; + } + +diff --git a/debugfs/util.c b/debugfs/util.c +index aafbc56..21991cf 100644 +--- a/debugfs/util.c ++++ b/debugfs/util.c +@@ -301,17 +301,20 @@ unsigned long long parse_ulonglong(const char *str, const char *cmd, + + /* + * This function will convert a string to a block number. It returns +- * 0 on success, 1 on failure. ++ * 0 on success, 1 on failure. On failure, it outputs either an optionally ++ * specified error message or a default. + */ +-int strtoblk(const char *cmd, const char *str, blk64_t *ret) ++int strtoblk(const char *cmd, const char *str, const char *errmsg, ++ blk64_t *ret) + { + blk64_t blk; + int err; + +- blk = parse_ulonglong(str, cmd, "block number", &err); ++ if (errmsg == NULL) ++ blk = parse_ulonglong(str, cmd, "block number", &err); ++ else ++ blk = parse_ulonglong(str, cmd, errmsg, &err); + *ret = blk; +- if (err) +- com_err(cmd, 0, "Invalid block number: %s", str); + return err; + } + +@@ -369,7 +372,7 @@ int common_block_args_process(int argc, char *argv[], + " [count]", CHECK_FS_BITMAPS)) + return 1; + +- if (strtoblk(argv[0], argv[1], block)) ++ if (strtoblk(argv[0], argv[1], NULL, block)) + return 1; + if (*block == 0) { + com_err(argv[0], 0, "Invalid block number 0"); +@@ -377,7 +380,7 @@ int common_block_args_process(int argc, char *argv[], + } + + if (argc > 2) { +- err = strtoblk(argv[0], argv[2], count); ++ err = strtoblk(argv[0], argv[2], "count", count); + if (err) + return 1; + } diff --git a/debian/patches/fix-printf-format-type-match b/debian/patches/fix-printf-format-type-match new file mode 100644 index 0000000..0ce0df1 --- /dev/null +++ b/debian/patches/fix-printf-format-type-match @@ -0,0 +1,20 @@ +Description: e2image: fix printf format type match + . + Signed-off-by: "Theodore Ts'o" + . +Author: Theodore Ts'o +Origin: upstream + +diff --git a/misc/e2image.c b/misc/e2image.c +index 0537b0d..402ea9f 100644 +--- a/misc/e2image.c ++++ b/misc/e2image.c +@@ -707,7 +707,7 @@ more_blocks: + fputc('\b', stderr); + strftime(buff, 30, "%T", gmtime(&duration)); + fprintf(stderr, _("\b\b\b\b\b\b\b\bCopied %llu / %llu " +- "blocks (%llu%%) in %s at %.2f MB/s \n"), ++ "blocks (%d%%) in %s at %.2f MB/s \n"), + total_written, meta_blocks_count, + calc_percent(total_written, meta_blocks_count), buff, + calc_rate(total_written, fs->blocksize, duration)); diff --git a/debian/patches/fix-spec-file-version b/debian/patches/fix-spec-file-version new file mode 100644 index 0000000..7253542 --- /dev/null +++ b/debian/patches/fix-spec-file-version @@ -0,0 +1,19 @@ +Description: fix version number in e2fsprogs.spec file + . + Due to a screwup in building the official upsteam source tarball, + the version number in the e2fsprogs.spec file wasn't bumped to 1.42.9. + Subsequent source extracts will have this fixed. + . +Origin: other + +--- e2fsprogs-1.42.9.orig/e2fsprogs.spec ++++ e2fsprogs-1.42.9/e2fsprogs.spec +@@ -5,7 +5,7 @@ + + Summary: Utilities for managing ext2/ext3/ext4 filesystems + Name: e2fsprogs +-Version: 1.42.8 ++Version: 1.42.9 + Release: 0 + License: GPLv2 + Group: System Environment/Base diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..45b462d --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,3 @@ +fix-spec-file-version +fix-printf-format-type-match +fix-debugfs-block-parse-error-reporting -- 1.8.3.1