From: Rainer Toebbicke Date: Thu, 14 Aug 2008 00:44:41 +0000 (+0000) Subject: STABLE14-salvager-dont-corrupt-dir-lengths-20080812 X-Git-Tag: openafs-stable-1_4_8pre1~35 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=982208420a36189ea70c5c903c7b236dcc90f27c;p=packages%2Fo%2Fopenafs.git STABLE14-salvager-dont-corrupt-dir-lengths-20080812 LICENSE IPL10 FIXES 111585 make the int64 macros work when the "64 bit" number to fill isn't. use the correct variable type for length in salvager (cherry picked from commit e5bf9b91eaf8cb930c6cf70419983901907db84d) --- diff --git a/src/config/stds.h b/src/config/stds.h index 7b256b673..05dadd812 100644 --- a/src/config/stds.h +++ b/src/config/stds.h @@ -66,8 +66,8 @@ typedef unsigned long long afs_uint64; #define CompareUInt64(a,b) (afs_uint64)(a) - (afs_uint64)(b) #define NonZeroInt64(a) (a) #define Int64ToInt32(a) (a) & 0xFFFFFFFFL -#define FillInt64(t,h,l) (t) = (h); (t) <<= 32; (t) |= (l); -#define SplitInt64(t,h,l) (h) = (t) >> 32; (l) = (t) & 0xFFFFFFFF; +#define FillInt64(t,h,l) (t) = ((afs_int64)(h) << 32) | (l); +#define SplitInt64(t,h,l) (h) = ((afs_int64)t) >> 32; (l) = (t) & 0xFFFFFFFF; #else /* AFS_64BIT_ENV */ typedef long afs_int32; typedef unsigned long afs_uint32; diff --git a/src/vol/vol-salvage.c b/src/vol/vol-salvage.c index 0f671668b..5bd514883 100644 --- a/src/vol/vol-salvage.c +++ b/src/vol/vol-salvage.c @@ -2818,7 +2818,7 @@ CopyAndSalvage(register struct DirSummary *dir) afs_sfsize_t lcode; afs_int32 parentUnique = 1; struct VnodeEssence *vnodeEssence; - afs_size_t length; + afs_fsize_t length; if (Testing) return;