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)
This commit is contained in:
Rainer Toebbicke 2008-08-14 00:44:41 +00:00 committed by Derrick Brashear
parent 39d3c9b229
commit 982208420a
2 changed files with 3 additions and 3 deletions

View File

@ -66,8 +66,8 @@ typedef unsigned long long afs_uint64;
#define CompareUInt64(a,b) (afs_uint64)(a) - (afs_uint64)(b) #define CompareUInt64(a,b) (afs_uint64)(a) - (afs_uint64)(b)
#define NonZeroInt64(a) (a) #define NonZeroInt64(a) (a)
#define Int64ToInt32(a) (a) & 0xFFFFFFFFL #define Int64ToInt32(a) (a) & 0xFFFFFFFFL
#define FillInt64(t,h,l) (t) = (h); (t) <<= 32; (t) |= (l); #define FillInt64(t,h,l) (t) = ((afs_int64)(h) << 32) | (l);
#define SplitInt64(t,h,l) (h) = (t) >> 32; (l) = (t) & 0xFFFFFFFF; #define SplitInt64(t,h,l) (h) = ((afs_int64)t) >> 32; (l) = (t) & 0xFFFFFFFF;
#else /* AFS_64BIT_ENV */ #else /* AFS_64BIT_ENV */
typedef long afs_int32; typedef long afs_int32;
typedef unsigned long afs_uint32; typedef unsigned long afs_uint32;

View File

@ -2818,7 +2818,7 @@ CopyAndSalvage(register struct DirSummary *dir)
afs_sfsize_t lcode; afs_sfsize_t lcode;
afs_int32 parentUnique = 1; afs_int32 parentUnique = 1;
struct VnodeEssence *vnodeEssence; struct VnodeEssence *vnodeEssence;
afs_size_t length; afs_fsize_t length;
if (Testing) if (Testing)
return; return;