/*
- * $Id: store_dir_aufs.cc,v 1.16 2000/11/10 21:42:03 hno Exp $
+ * $Id: store_dir_aufs.cc,v 1.17 2000/11/30 20:07:32 wessels Exp $
*
* DEBUG: section 47 Store Directory Routines
* AUTHOR: Duane Wessels
static int storeAufsDirIs(SwapDir * sd);
static int storeAufsFilenoBelongsHere(int fn, int F0, int F1, int F2);
static int storeAufsCleanupDoubleCheck(SwapDir *, StoreEntry *);
-static int storeAufsCheckFile(SwapDir * sd, sfileno filn, size_t swap_file_sz );
+static int storeAufsCheckFile(SwapDir * sd, sfileno filn, size_t swap_file_sz);
static void storeAufsDirStats(SwapDir *, StoreEntry *);
static void storeAufsDirInitBitmap(SwapDir *);
static int storeAufsDirValidFileno(SwapDir *, sfileno, int);
debug(20, 1) ("storeAufsDirRebuildFromDirectory: SIZE MISMATCH %d!=%d\n",
tmpe.swap_file_sz, (int) sb.st_size);
storeAufsDirUnlinkFile(SD, sfileno);
- rb->counts.filesizemismatchcount++;
+ rb->counts.filesizemismatchcount++;
continue;
}
if (EBIT_TEST(tmpe.flags, KEY_PRIVATE)) {
* appear to have a newer entry? Compare 'lastref' from the
* swap log to e->lastref. */
disk_entry_newer = e ? (s.lastref > e->lastref ? 1 : 0) : 0;
- if (!used && (rb->flags.need_to_validate ||
- (opt_store_doublecheck != DBLCHECK_NONE))){
- file_bad = storeAufsCheckFile(SD, s.swap_filen, s.swap_file_sz);
- } else
- file_bad = 0;
- if (file_bad){
- if (file_bad==-2){
- if (opt_store_doublecheck == DBLCHECK_FORCE)
- storeAufsDirUnlinkFile(SD, s.swap_filen);
- rb->counts.filesizemismatchcount++;
- continue;
- }
- rb->counts.missingcount++;
- continue;
+ if (!used && (rb->flags.need_to_validate ||
+ (opt_store_doublecheck != DBLCHECK_NONE))) {
+ file_bad = storeAufsCheckFile(SD, s.swap_filen, s.swap_file_sz);
+ } else
+ file_bad = 0;
+ if (file_bad) {
+ if (file_bad == -2) {
+ if (opt_store_doublecheck == DBLCHECK_FORCE)
+ storeAufsDirUnlinkFile(SD, s.swap_filen);
+ rb->counts.filesizemismatchcount++;
+ continue;
+ }
+ rb->counts.missingcount++;
+ continue;
} else if (used && !disk_entry_newer) {
/* log entry is old, ignore it */
rb->counts.clashcount++;
static int
storeAufsCleanupDoubleCheck(SwapDir * sd, StoreEntry * e)
{
- int rv= storeAufsCheckFile(sd, e->swap_filen, e->swap_file_sz);
- if (rv) storeEntryDump(e, 0);
+ int rv = storeAufsCheckFile(sd, e->swap_filen, e->swap_file_sz);
+ if (rv)
+ storeEntryDump(e, 0);
return rv;
}
* line. or a Dirty state is found
*/
static int
-storeAufsCheckFile(SwapDir * sd, sfileno filen, size_t swap_file_sz )
+storeAufsCheckFile(SwapDir * sd, sfileno filen, size_t swap_file_sz)
{
struct stat sb;
if (stat(storeAufsDirFullPath(sd, filen, NULL), &sb) < 0) {
- debug(20, 1) ("storeAufsCheckFile: MISSING SWAP FILE\n");
- debug(20, 1) ("storeAufsCheckFile: FILENO %08X\n", filen);
- debug(20, 1) ("storeAufsCheckFile: PATH %s\n", storeAufsDirFullPath(sd, filen, NULL));
- return -1;
+ debug(20, 1) ("storeAufsCheckFile: MISSING SWAP FILE\n");
+ debug(20, 1) ("storeAufsCheckFile: FILENO %08X\n", filen);
+ debug(20, 1) ("storeAufsCheckFile: PATH %s\n", storeAufsDirFullPath(sd, filen, NULL));
+ return -1;
}
if (swap_file_sz != sb.st_size) {
- debug(20, 1) ("storeAufsCheckFile: SIZE MISMATCH\n");
- debug(20, 1) ("storeAufsCheckFile: FILENO %08X\n", filen);
- debug(20, 1) ("storeAufsCheckFile: PATH %s\n", storeAufsDirFullPath(sd, filen, NULL));
- debug(20, 1) ("storeAufsCheckFile: ENTRY SIZE: %d, FILE SIZE: %d\n", swap_file_sz, (int) sb.st_size);
- return -2;
+ debug(20, 1) ("storeAufsCheckFile: SIZE MISMATCH\n");
+ debug(20, 1) ("storeAufsCheckFile: FILENO %08X\n", filen);
+ debug(20, 1) ("storeAufsCheckFile: PATH %s\n", storeAufsDirFullPath(sd, filen, NULL));
+ debug(20, 1) ("storeAufsCheckFile: ENTRY SIZE: %d, FILE SIZE: %d\n", swap_file_sz, (int) sb.st_size);
+ return -2;
}
return 0;
}
/*
- * $Id: store_dir_diskd.cc,v 1.24 2000/11/10 09:04:52 adrian Exp $
+ * $Id: store_dir_diskd.cc,v 1.25 2000/11/30 20:07:32 wessels Exp $
*
* DEBUG: section 47 Store Directory Routines
* AUTHOR: Duane Wessels
debug(20, 1) ("storeDiskdDirRebuildFromDirectory: SIZE MISMATCH %d!=%d\n",
tmpe.swap_file_sz, (int) sb.st_size);
storeDiskdDirUnlinkFile(SD, sfileno);
- rb->counts.filesizemismatchcount++;
+ rb->counts.filesizemismatchcount++;
continue;
}
if (EBIT_TEST(tmpe.flags, KEY_PRIVATE)) {
* appear to have a newer entry? Compare 'lastref' from the
* swap log to e->lastref. */
disk_entry_newer = e ? (s.lastref > e->lastref ? 1 : 0) : 0;
- if (!used && (rb->flags.need_to_validate ||
- (opt_store_doublecheck != DBLCHECK_NONE))){
- file_bad = storeDiskdCheckFile(SD, s.swap_filen, s.swap_file_sz);
- } else
- file_bad = 0;
- if (file_bad){
- if (file_bad==-2){
- if (opt_store_doublecheck == DBLCHECK_FORCE)
- storeDiskdDirUnlinkFile(SD, s.swap_filen);
- rb->counts.filesizemismatchcount++;
- continue;
- }
- rb->counts.missingcount++;
- continue;
- } else if (used && !disk_entry_newer) {
+ if (!used && (rb->flags.need_to_validate ||
+ (opt_store_doublecheck != DBLCHECK_NONE))) {
+ file_bad = storeDiskdCheckFile(SD, s.swap_filen, s.swap_file_sz);
+ } else
+ file_bad = 0;
+ if (file_bad) {
+ if (file_bad == -2) {
+ if (opt_store_doublecheck == DBLCHECK_FORCE)
+ storeDiskdDirUnlinkFile(SD, s.swap_filen);
+ rb->counts.filesizemismatchcount++;
+ continue;
+ }
+ rb->counts.missingcount++;
+ continue;
+ } else if (used && !disk_entry_newer) {
/* log entry is old, ignore it */
rb->counts.clashcount++;
continue;
static int
storeDiskdCleanupDoubleCheck(SwapDir * sd, StoreEntry * e)
{
- int rv= storeDiskdCheckFile(sd, e->swap_filen, e->swap_file_sz);
- if (rv) storeEntryDump(e, 0);
+ int rv = storeDiskdCheckFile(sd, e->swap_filen, e->swap_file_sz);
+ if (rv)
+ storeEntryDump(e, 0);
return rv;
}
* This is called by storerebuildFromSwapLog if -S was given on the command line * or a Dirty state is found
*/
static int
-storeDiskdCheckFile(SwapDir * sd, sfileno filen, size_t swap_file_sz )
+storeDiskdCheckFile(SwapDir * sd, sfileno filen, size_t swap_file_sz)
{
- struct stat sb;
+ struct stat sb;
if (stat(storeDiskdDirFullPath(sd, filen, NULL), &sb) < 0) {
- debug(20, 1) ("storeDiskdCheckFile: MISSING SWAP FILE\n");
- debug(20, 1) ("storeDiskdCheckFile: FILENO %08X\n", filen);
- debug(20, 1) ("storeDiskdCheckFile: PATH %s\n", storeDiskdDirFullPath(sd, filen, NULL));
+ debug(20, 1) ("storeDiskdCheckFile: MISSING SWAP FILE\n");
+ debug(20, 1) ("storeDiskdCheckFile: FILENO %08X\n", filen);
+ debug(20, 1) ("storeDiskdCheckFile: PATH %s\n", storeDiskdDirFullPath(sd, filen, NULL));
- return -1;
+ return -1;
}
if (swap_file_sz != sb.st_size) {
- debug(20, 1) ("storeDiskdCheckFile: SIZE MISMATCH\n");
- debug(20, 1) ("storeDiskdCheckFile: FILENO %08X\n", filen);
- debug(20, 1) ("storeDiskdCheckFile: PATH %s\n", storeDiskdDirFullPath(sd, filen, NULL));
- debug(20, 1) ("storeDiskdCheckFile: ENTRY SIZE: %d, FILE SIZE: %d\n", swap_file_sz, (int) sb.st_size);
- return -2;
- }
+ debug(20, 1) ("storeDiskdCheckFile: SIZE MISMATCH\n");
+ debug(20, 1) ("storeDiskdCheckFile: FILENO %08X\n", filen);
+ debug(20, 1) ("storeDiskdCheckFile: PATH %s\n", storeDiskdDirFullPath(sd, filen, NULL));
+ debug(20, 1) ("storeDiskdCheckFile: ENTRY SIZE: %d, FILE SIZE: %d\n", swap_file_sz, (int) sb.st_size);
+ return -2;
+ }
return 0;
}
/*
- * $Id: store_dir_ufs.cc,v 1.14 2000/11/10 09:04:53 adrian Exp $
+ * $Id: store_dir_ufs.cc,v 1.15 2000/11/30 20:07:33 wessels Exp $
*
* DEBUG: section 47 Store Directory Routines
* AUTHOR: Duane Wessels
static int storeUfsDirIs(SwapDir * sd);
static int storeUfsFilenoBelongsHere(int fn, int F0, int F1, int F2);
static int storeUfsCleanupDoubleCheck(SwapDir *, StoreEntry *);
-static int storeUfsCheckFile(SwapDir * sd, sfileno filn, size_t swap_file_sz );
+static int storeUfsCheckFile(SwapDir * sd, sfileno filn, size_t swap_file_sz);
static void storeUfsDirStats(SwapDir *, StoreEntry *);
static void storeUfsDirInitBitmap(SwapDir *);
static int storeUfsDirValidFileno(SwapDir *, sfileno, int);
debug(20, 1) ("storeUfsDirRebuildFromDirectory: SIZE MISMATCH %d!=%d\n",
tmpe.swap_file_sz, (int) sb.st_size);
storeUfsDirUnlinkFile(SD, sfileno);
- rb->counts.filesizemismatchcount++;
+ rb->counts.filesizemismatchcount++;
continue;
}
if (EBIT_TEST(tmpe.flags, KEY_PRIVATE)) {
* appear to have a newer entry? Compare 'lastref' from the
* swap log to e->lastref. */
disk_entry_newer = e ? (s.lastref > e->lastref ? 1 : 0) : 0;
- if (!used && (rb->flags.need_to_validate ||
- (opt_store_doublecheck != DBLCHECK_NONE))){
- file_bad = storeUfsCheckFile(SD, s.swap_filen, s.swap_file_sz);
- } else
- file_bad = 0;
- if (file_bad){
- if (file_bad==-2){
- if (opt_store_doublecheck == DBLCHECK_FORCE)
- storeUfsDirUnlinkFile(SD, s.swap_filen);
- rb->counts.filesizemismatchcount++;
- continue;
- }
- rb->counts.missingcount++;
- continue;
- }else if (used && !disk_entry_newer) {
+ if (!used && (rb->flags.need_to_validate ||
+ (opt_store_doublecheck != DBLCHECK_NONE))) {
+ file_bad = storeUfsCheckFile(SD, s.swap_filen, s.swap_file_sz);
+ } else
+ file_bad = 0;
+ if (file_bad) {
+ if (file_bad == -2) {
+ if (opt_store_doublecheck == DBLCHECK_FORCE)
+ storeUfsDirUnlinkFile(SD, s.swap_filen);
+ rb->counts.filesizemismatchcount++;
+ continue;
+ }
+ rb->counts.missingcount++;
+ continue;
+ } else if (used && !disk_entry_newer) {
/* log entry is old, ignore it */
rb->counts.clashcount++;
continue;
/* load new */
(void) 0;
}
- /* update store_swap_size */
- rb->counts.objcount++;
- e = storeUfsDirAddDiskRestore(SD, s.key,
- s.swap_filen,
- s.swap_file_sz,
- s.expires,
- s.timestamp,
- s.lastref,
- s.lastmod,
- s.refcount,
- s.flags,
- (int) rb->flags.clean);
- storeDirSwapLog(e, SWAP_LOG_ADD);
+ /* update store_swap_size */
+ rb->counts.objcount++;
+ e = storeUfsDirAddDiskRestore(SD, s.key,
+ s.swap_filen,
+ s.swap_file_sz,
+ s.expires,
+ s.timestamp,
+ s.lastref,
+ s.lastmod,
+ s.refcount,
+ s.flags,
+ (int) rb->flags.clean);
+ storeDirSwapLog(e, SWAP_LOG_ADD);
}
eventAdd("storeRebuild", storeUfsDirRebuildFromSwapLog, rb, 0.0, 1);
}
static int
storeUfsCleanupDoubleCheck(SwapDir * sd, StoreEntry * e)
{
- int rv= storeUfsCheckFile(sd, e->swap_filen, e->swap_file_sz);
- if (rv) storeEntryDump(e, 0);
+ int rv = storeUfsCheckFile(sd, e->swap_filen, e->swap_file_sz);
+ if (rv)
+ storeEntryDump(e, 0);
return rv;
}
* This is called by storerebuildFromSwapLog if -S was given on the command line. or a Dirty state is found
*/
static int
-storeUfsCheckFile(SwapDir * sd, sfileno filen, size_t swap_file_sz )
+storeUfsCheckFile(SwapDir * sd, sfileno filen, size_t swap_file_sz)
{
struct stat sb;
if (stat(storeUfsDirFullPath(sd, filen, NULL), &sb) < 0) {
- debug(20, 1) ("storeUfsCheckFile: MISSING SWAP FILE\n");
- debug(20, 1) ("storeUfsCheckFile: FILENO %08X\n", filen);
- debug(20, 1) ("storeUfsCheckFile: PATH %s\n", storeUfsDirFullPath(sd, filen, NULL));
+ debug(20, 1) ("storeUfsCheckFile: MISSING SWAP FILE\n");
+ debug(20, 1) ("storeUfsCheckFile: FILENO %08X\n", filen);
+ debug(20, 1) ("storeUfsCheckFile: PATH %s\n", storeUfsDirFullPath(sd, filen, NULL));
- return -1;
+ return -1;
}
if (swap_file_sz != sb.st_size) {
- debug(20, 1) ("storeUfsCheckFile: SIZE MISMATCH\n");
- debug(20, 1) ("storeUfsCheckFile: FILENO %08X\n", filen);
- debug(20, 1) ("storeUfsCheckFile: PATH %s\n", storeUfsDirFullPath(sd, filen, NULL));
- debug(20, 1) ("storeUfsCheckFile: ENTRY SIZE: %d, FILE SIZE: %d\n", swap_file_sz, (int) sb.st_size);
- return -2;
+ debug(20, 1) ("storeUfsCheckFile: SIZE MISMATCH\n");
+ debug(20, 1) ("storeUfsCheckFile: FILENO %08X\n", filen);
+ debug(20, 1) ("storeUfsCheckFile: PATH %s\n", storeUfsDirFullPath(sd, filen, NULL));
+ debug(20, 1) ("storeUfsCheckFile: ENTRY SIZE: %d, FILE SIZE: %d\n", swap_file_sz, (int) sb.st_size);
+ return -2;
}
return 0;
}