]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-salvager-dont-corrupt-dir-lengths-20080812
authorRainer Toebbicke <rtb@pclella.cern.ch>
Thu, 14 Aug 2008 00:44:41 +0000 (00:44 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 14 Aug 2008 00:44:41 +0000 (00:44 +0000)
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)

src/config/stds.h
src/vol/vol-salvage.c

index 7b256b6735e317906cd1c0c05ec0b530fc6759a0..05dadd812a874506dd78e79c6ed14ab60b6f5afd 100644 (file)
@@ -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;
index 0f671668b75020b453a67b8fcb30039034ffed82..5bd51488384e3aa4a725d979b1d649204cf4cf18 100644 (file)
@@ -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;