From mboxrd@z Thu Jan 1 00:00:00 1970 From: kupcevic@sourceware.org Date: 20 Mar 2007 16:17:36 -0000 Subject: [Cluster-devel] conga/ricci/modules/storage parted_wrapper.cpp Message-ID: <20070320161736.22092.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Branch: RHEL5 Changes by: kupcevic at sourceware.org 2007-03-20 16:17:36 Modified files: ricci/modules/storage: parted_wrapper.cpp Log message: storage module: long long constant int to long long int conversion error? C idiocy Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/parted_wrapper.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.8.2.1&r2=1.8.2.2 --- conga/ricci/modules/storage/parted_wrapper.cpp 2007/03/09 04:15:57 1.8.2.1 +++ conga/ricci/modules/storage/parted_wrapper.cpp 2007/03/20 16:17:35 1.8.2.2 @@ -596,8 +596,9 @@ long long bbb; list parts = plain_partitions(pt_path, aaa, bbb); - seg_begin = seg_begin / 1000000; - long long seg_end = seg_begin + size / 1000000; + // parted defines 1KB as 1000 bytes + seg_begin = seg_begin / 1000 / 1000; + long long seg_end = seg_begin + size / 1000 / 1000; vector args; args.push_back("-s"); @@ -667,7 +668,7 @@ long long multiplier; // parted defines 1KB as 1000 bytes. if (s.find("b") == s.npos) - multiplier = 1000000; // by old parted behavior, size is in MB + multiplier = 1000 * 1000; // by old parted behavior, size is in MB else { if (s.size() < 3) throw String("parted size has an invalid value: ") + s; @@ -675,11 +676,11 @@ if (s[s.size()-2] == 'k') multiplier = 1000; else if (s[s.size()-2] == 'm') - multiplier = 1000000; + multiplier = 1000 * 1000; else if (s[s.size()-2] == 'g') - multiplier = 1000000000; + multiplier = 1000 * 1000 * 1000; else if (s[s.size()-2] == 't') - multiplier = 1000000000000; + multiplier = 1000 * 1000 * 1000 * 1000; } return (long long) utils::to_float(s) * multiplier;