Index: async_io.c =================================================================== RCS file: /cvsroot/squid/squid/src/fs/aufs/async_io.c,v retrieving revision 1.7.6.1 diff -u -p -r1.7.6.1 async_io.c --- async_io.c 11 Jan 2002 10:14:26 -0000 1.7.6.1 +++ async_io.c 18 Aug 2002 11:48:57 -0000 @@ -328,6 +328,7 @@ void aioStats(StoreEntry * sentry) { storeAppendPrintf(sentry, "ASYNC IO Counters:\n"); + storeAppendPrintf(sentry, "Operation\t# Requests\n"); storeAppendPrintf(sentry, "open\t%d\n", squidaio_counts.open); storeAppendPrintf(sentry, "close\t%d\n", squidaio_counts.close); storeAppendPrintf(sentry, "cancel\t%d\n", squidaio_counts.cancel); Index: store_dir_aufs.c =================================================================== RCS file: /cvsroot/squid/squid/src/fs/aufs/store_dir_aufs.c,v retrieving revision 1.23.6.5 diff -u -p -r1.23.6.5 store_dir_aufs.c --- store_dir_aufs.c 21 Jul 2002 01:07:44 -0000 1.23.6.5 +++ store_dir_aufs.c 18 Aug 2002 11:48:58 -0000 @@ -211,12 +211,12 @@ storeAufsDirCreateDirectory(const char * getCurrentTime(); if (0 == stat(path, &st)) { if (S_ISDIR(st.st_mode)) { - debug(20, should_exist ? 3 : 1) ("%s exists\n", path); + debug(47, should_exist ? 3 : 1) ("%s exists\n", path); } else { fatalf("Swap directory %s is not a directory.", path); } } else if (0 == mkdir(path, 0755)) { - debug(20, should_exist ? 1 : 3) ("%s created\n", path); + debug(47, should_exist ? 1 : 3) ("%s created\n", path); created = 1; } else { fatalf("Failed to make swap directory %s: %s", @@ -230,11 +230,11 @@ storeAufsDirVerifyDirectory(const char * { struct stat sb; if (stat(path, &sb) < 0) { - debug(20, 0) ("%s: %s\n", path, xstrerror()); + debug(47, 0) ("%s: %s\n", path, xstrerror()); return -1; } if (S_ISDIR(sb.st_mode) == 0) { - debug(20, 0) ("%s is not a directory\n", path); + debug(47, 0) ("%s is not a directory\n", path); return -1; } return 0; @@ -325,7 +325,7 @@ storeAufsDirOpenSwapLog(SwapDir * sd) debug(50, 1) ("%s: %s\n", path, xstrerror()); fatal("storeAufsDirOpenSwapLog: Failed to open swap log."); } - debug(47, 3) ("Cache Dir #%d log opened on FD %d\n", sd->index, fd); + debug(50, 3) ("Cache Dir #%d log opened on FD %d\n", sd->index, fd); aioinfo->swaplog_fd = fd; if (0 == n_asyncufs_dirs) assert(NULL == asyncufs_dir_index); @@ -387,12 +387,12 @@ storeAufsDirRebuildFromDirectory(void *d tlv *tlv_list; tlv *t; assert(rb != NULL); - debug(20, 3) ("storeAufsDirRebuildFromDirectory: DIR #%d\n", rb->sd->index); + debug(47, 3) ("storeAufsDirRebuildFromDirectory: DIR #%d\n", rb->sd->index); for (count = 0; count < rb->speed; count++) { assert(fd == -1); fd = storeAufsDirGetNextFile(rb, &filn, &size); if (fd == -2) { - debug(20, 1) ("Done scanning %s swaplog (%d entries)\n", + debug(47, 1) ("Done scanning %s swaplog (%d entries)\n", rb->sd->path, rb->n_read); store_dirs_rebuilding--; storeAufsDirCloseTmpSwapLog(rb->sd); @@ -405,7 +405,7 @@ storeAufsDirRebuildFromDirectory(void *d assert(fd > -1); /* lets get file stats here */ if (fstat(fd, &sb) < 0) { - debug(20, 1) ("storeAufsDirRebuildFromDirectory: fstat(FD %d): %s\n", + debug(47, 1) ("storeAufsDirRebuildFromDirectory: fstat(FD %d): %s\n", fd, xstrerror()); file_close(fd); store_open_disk_fd--; @@ -413,12 +413,12 @@ storeAufsDirRebuildFromDirectory(void *d continue; } if ((++rb->counts.scancount & 0xFFFF) == 0) - debug(20, 3) (" %s %7d files opened so far.\n", + debug(47, 3) (" %s %7d files opened so far.\n", rb->sd->path, rb->counts.scancount); - debug(20, 9) ("file_in: fd=%d %08X\n", fd, filn); + debug(47, 9) ("file_in: fd=%d %08X\n", fd, filn); statCounter.syscalls.disk.reads++; if (FD_READ_METHOD(fd, hdr_buf, SM_PAGE_SIZE) < 0) { - debug(20, 1) ("storeAufsDirRebuildFromDirectory: read(FD %d): %s\n", + debug(47, 1) ("storeAufsDirRebuildFromDirectory: read(FD %d): %s\n", fd, xstrerror()); file_close(fd); store_open_disk_fd--; @@ -435,12 +435,12 @@ storeAufsDirRebuildFromDirectory(void *d #endif tlv_list = storeSwapMetaUnpack(hdr_buf, &swap_hdr_len); if (tlv_list == NULL) { - debug(20, 1) ("storeAufsDirRebuildFromDirectory: failed to get meta data\n"); + debug(47, 1) ("storeAufsDirRebuildFromDirectory: failed to get meta data\n"); /* XXX shouldn't this be a call to storeAufsUnlink ? */ storeAufsDirUnlinkFile(SD, filn); continue; } - debug(20, 3) ("storeAufsDirRebuildFromDirectory: successful swap meta unpacking\n"); + debug(47, 3) ("storeAufsDirRebuildFromDirectory: successful swap meta unpacking\n"); memset(key, '\0', MD5_DIGEST_CHARS); memset(&tmpe, '\0', sizeof(StoreEntry)); for (t = tlv_list; t; t = t->next) { @@ -460,7 +460,7 @@ storeAufsDirRebuildFromDirectory(void *d storeSwapTLVFree(tlv_list); tlv_list = NULL; if (storeKeyNull(key)) { - debug(20, 1) ("storeAufsDirRebuildFromDirectory: NULL key\n"); + debug(47, 1) ("storeAufsDirRebuildFromDirectory: NULL key\n"); storeAufsDirUnlinkFile(SD, filn); continue; } @@ -471,7 +471,7 @@ storeAufsDirRebuildFromDirectory(void *d } else if (tmpe.swap_file_sz == sb.st_size - swap_hdr_len) { tmpe.swap_file_sz = sb.st_size; } else if (tmpe.swap_file_sz != sb.st_size) { - debug(20, 1) ("storeAufsDirRebuildFromDirectory: SIZE MISMATCH %ld!=%ld\n", + debug(47, 1) ("storeAufsDirRebuildFromDirectory: SIZE MISMATCH %ld!=%ld\n", (long int) tmpe.swap_file_sz, (long int) sb.st_size); storeAufsDirUnlinkFile(SD, filn); continue; @@ -526,7 +526,7 @@ storeAufsDirRebuildFromSwapLog(void *dat /* load a number of objects per invocation */ for (count = 0; count < rb->speed; count++) { if (fread(&s, ss, 1, rb->log) != 1) { - debug(20, 1) ("Done reading %s swaplog (%d entries)\n", + debug(47, 1) ("Done reading %s swaplog (%d entries)\n", rb->sd->path, rb->n_read); fclose(rb->log); rb->log = NULL; @@ -550,7 +550,7 @@ storeAufsDirRebuildFromSwapLog(void *dat * to mask it off. */ s.swap_filen &= 0x00FFFFFF; - debug(20, 3) ("storeAufsDirRebuildFromSwapLog: %s %s %08X\n", + debug(47, 3) ("storeAufsDirRebuildFromSwapLog: %s %s %08X\n", swap_log_op_str[(int) s.op], storeKeyText(s.key), s.swap_filen); @@ -581,7 +581,7 @@ storeAufsDirRebuildFromSwapLog(void *dat } else { x = log(++rb->counts.bad_log_op) / log(10.0); if (0.0 == x - (double) (int) x) - debug(20, 1) ("WARNING: %d invalid swap log entries found\n", + debug(47, 1) ("WARNING: %d invalid swap log entries found\n", rb->counts.bad_log_op); rb->counts.invalid++; continue; @@ -622,7 +622,7 @@ storeAufsDirRebuildFromSwapLog(void *dat storeAufsDirUnrefObj(SD, e); } else { debug_trap("storeAufsDirRebuildFromSwapLog: bad condition"); - debug(20, 1) ("\tSee %s:%d\n", __FILE__, __LINE__); + debug(47, 1) ("\tSee %s:%d\n", __FILE__, __LINE__); } continue; } else if (used) { @@ -631,7 +631,7 @@ storeAufsDirRebuildFromSwapLog(void *dat * point. If the log is dirty, the filesize check should have * caught this. If the log is clean, there should never be a * newer entry. */ - debug(20, 1) ("WARNING: newer swaplog entry for dirno %d, fileno %08X\n", + debug(47, 1) ("WARNING: newer swaplog entry for dirno %d, fileno %08X\n", SD->index, s.swap_filen); /* I'm tempted to remove the swapfile here just to be safe, * but there is a bad race condition in the NOVM version if @@ -694,7 +694,7 @@ storeAufsDirGetNextFile(RebuildState * r int fd = -1; int used = 0; int dirs_opened = 0; - debug(20, 3) ("storeAufsDirGetNextFile: flag=%d, %d: /%02X/%02X\n", + debug(47, 3) ("storeAufsDirGetNextFile: flag=%d, %d: /%02X/%02X\n", rb->flags.init, rb->sd->index, rb->curlvl1, @@ -720,39 +720,39 @@ storeAufsDirGetNextFile(RebuildState * r rb->td = opendir(rb->fullpath); dirs_opened++; if (rb->td == NULL) { - debug(50, 1) ("storeAufsDirGetNextFile: opendir: %s: %s\n", + debug(47, 1) ("storeAufsDirGetNextFile: opendir: %s: %s\n", rb->fullpath, xstrerror()); } else { rb->entry = readdir(rb->td); /* skip . and .. */ rb->entry = readdir(rb->td); if (rb->entry == NULL && errno == ENOENT) - debug(20, 1) ("storeAufsDirGetNextFile: directory does not exist!.\n"); - debug(20, 3) ("storeAufsDirGetNextFile: Directory %s\n", rb->fullpath); + debug(47, 1) ("storeAufsDirGetNextFile: directory does not exist!.\n"); + debug(47, 3) ("storeAufsDirGetNextFile: Directory %s\n", rb->fullpath); } } if (rb->td != NULL && (rb->entry = readdir(rb->td)) != NULL) { rb->in_dir++; if (sscanf(rb->entry->d_name, "%x", &rb->fn) != 1) { - debug(20, 3) ("storeAufsDirGetNextFile: invalid %s\n", + debug(47, 3) ("storeAufsDirGetNextFile: invalid %s\n", rb->entry->d_name); continue; } if (!storeAufsFilenoBelongsHere(rb->fn, rb->sd->index, rb->curlvl1, rb->curlvl2)) { - debug(20, 3) ("storeAufsDirGetNextFile: %08X does not belong in %d/%d/%d\n", + debug(47, 3) ("storeAufsDirGetNextFile: %08X does not belong in %d/%d/%d\n", rb->fn, rb->sd->index, rb->curlvl1, rb->curlvl2); continue; } used = storeAufsDirMapBitTest(SD, rb->fn); if (used) { - debug(20, 3) ("storeAufsDirGetNextFile: Locked, continuing with next.\n"); + debug(47, 3) ("storeAufsDirGetNextFile: Locked, continuing with next.\n"); continue; } snprintf(rb->fullfilename, SQUID_MAXPATHLEN, "%s/%s", rb->fullpath, rb->entry->d_name); - debug(20, 3) ("storeAufsDirGetNextFile: Opening %s\n", rb->fullfilename); + debug(47, 3) ("storeAufsDirGetNextFile: Opening %s\n", rb->fullfilename); fd = file_open(rb->fullfilename, O_RDONLY | O_BINARY); if (fd < 0) - debug(50, 1) ("storeAufsDirGetNextFile: %s: %s\n", rb->fullfilename, xstrerror()); + debug(47, 1) ("storeAufsDirGetNextFile: %s: %s\n", rb->fullfilename, xstrerror()); else store_open_disk_fd++; continue; @@ -788,7 +788,7 @@ storeAufsDirAddDiskRestore(SwapDir * SD, int clean) { StoreEntry *e = NULL; - debug(20, 5) ("storeAufsAddDiskRestore: %s, fileno=%08X\n", storeKeyText(key), file_number); + debug(47, 5) ("storeAufsAddDiskRestore: %s, fileno=%08X\n", storeKeyText(key), file_number); /* if you call this you'd better be sure file_number is not * already in use! */ e = new_StoreEntry(STORE_ENTRY_WITHOUT_MEMOBJ, NULL, NULL); @@ -848,7 +848,7 @@ storeAufsDirRebuild(SwapDir * sd) } if (!clean) rb->flags.need_to_validate = 1; - debug(20, 1) ("Rebuilding storage in %s (%s)\n", + debug(47, 1) ("Rebuilding storage in %s (%s)\n", sd->path, clean ? "CLEAN" : "DIRTY"); store_dirs_rebuilding++; eventAdd("storeRebuild", func, rb, 0.0, 1); @@ -905,7 +905,7 @@ storeAufsDirOpenTmpSwapLog(SwapDir * sd, if (aioinfo->swaplog_fd >= 0) file_close(aioinfo->swaplog_fd); /* open a write-only FD for the new log */ - fd = file_open(new_path, O_WRONLY | O_CREAT | O_TRUNC); + fd = file_open(new_path, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY); if (fd < 0) { debug(50, 1) ("%s: %s\n", new_path, xstrerror()); fatal("storeDirOpenTmpSwapLog: Failed to open swap log."); @@ -972,7 +972,7 @@ storeAufsDirWriteCleanStart(SwapDir * sd state->outbuf_offset = 0; state->walker = sd->repl->WalkInit(sd->repl); unlink(state->cln); - debug(20, 3) ("storeDirWriteCleanLogs: opened %s, FD %d\n", + debug(47, 3) ("storeDirWriteCleanLogs: opened %s, FD %d\n", state->new, state->fd); #if HAVE_FCHMOD if (stat(state->cur, &sb) == 0) @@ -1023,7 +1023,7 @@ storeAufsDirWriteCleanEntry(SwapDir * sd if (FD_WRITE_METHOD(state->fd, state->outbuf, state->outbuf_offset) < 0) { debug(50, 0) ("storeDirWriteCleanLogs: %s: write: %s\n", state->new, xstrerror()); - debug(20, 0) ("storeDirWriteCleanLogs: Current swap logfile not replaced.\n"); + debug(50, 0) ("storeDirWriteCleanLogs: Current swap logfile not replaced.\n"); file_close(state->fd); state->fd = -1; unlink(state->new); @@ -1049,7 +1049,7 @@ storeAufsDirWriteCleanDone(SwapDir * sd) if (FD_WRITE_METHOD(state->fd, state->outbuf, state->outbuf_offset) < 0) { debug(50, 0) ("storeDirWriteCleanLogs: %s: write: %s\n", state->new, xstrerror()); - debug(20, 0) ("storeDirWriteCleanLogs: Current swap logfile " + debug(50, 0) ("storeDirWriteCleanLogs: Current swap logfile " "not replaced.\n"); file_close(state->fd); state->fd = -1; @@ -1262,7 +1262,7 @@ storeAufsDirCleanEvent(void *unused) static int storeAufsDirIs(SwapDir * sd) { - if (strncmp(sd->type, "aufs", 3) == 0) + if (strncmp(sd->type, "aufs", 4) == 0) return 1; return 0; } @@ -1328,7 +1328,7 @@ storeAufsDirMaintain(SwapDir * SD) * This is kinda cheap, but so we need this priority hack? */ } - debug(20, 3) ("storeMaintainSwapSpace: f=%f, max_scan=%d, max_remove=%d\n", + debug(47, 3) ("storeMaintainSwapSpace: f=%f, max_scan=%d, max_remove=%d\n", f, max_scan, max_remove); walker = SD->repl->PurgeInit(SD->repl, max_scan); while (1) { @@ -1343,7 +1343,7 @@ storeAufsDirMaintain(SwapDir * SD) storeRelease(e); } walker->Done(walker); - debug(20, (removed ? 2 : 3)) ("storeUfsDirMaintain: %s removed %d/%d f=%.03f max_scan=%d\n", + debug(47, (removed ? 2 : 3)) ("storeAufsDirMaintain: %s removed %d/%d f=%.03f max_scan=%d\n", SD->path, removed, max_remove, f, max_scan); } @@ -1362,7 +1362,7 @@ storeAufsDirCheckObj(SwapDir * SD, const #if OLD_UNUSED_CODE if (storeAufsDirExpiredReferenceAge(SD) < 300) { - debug(20, 3) ("storeAufsDirCheckObj: NO: LRU Age = %d\n", + debug(47, 3) ("storeAufsDirCheckObj: NO: LRU Age = %d\n", storeAufsDirExpiredReferenceAge(SD)); /* store_check_cachable_hist.no.lru_age_too_low++; */ return -1; @@ -1432,7 +1432,7 @@ storeAufsDirUnlinkFile(SwapDir * SD, sfi void storeAufsDirReplAdd(SwapDir * SD, StoreEntry * e) { - debug(20, 4) ("storeAufsDirReplAdd: added node %p to dir %d\n", e, + debug(47, 4) ("storeAufsDirReplAdd: added node %p to dir %d\n", e, SD->index); SD->repl->Add(SD->repl, e, &e->repl); } @@ -1442,7 +1442,7 @@ void storeAufsDirReplRemove(StoreEntry * e) { SwapDir *SD = INDEXSD(e->swap_dirn); - debug(20, 4) ("storeAufsDirReplRemove: remove node %p from dir %d\n", e, + debug(47, 4) ("storeAufsDirReplRemove: remove node %p from dir %d\n", e, SD->index); SD->repl->Remove(SD->repl, e, &e->repl); } @@ -1592,19 +1592,19 @@ storeAufsCleanupDoubleCheck(SwapDir * sd { struct stat sb; if (stat(storeAufsDirFullPath(sd, e->swap_filen, NULL), &sb) < 0) { - debug(20, 0) ("storeAufsCleanupDoubleCheck: MISSING SWAP FILE\n"); - debug(20, 0) ("storeAufsCleanupDoubleCheck: FILENO %08X\n", e->swap_filen); - debug(20, 0) ("storeAufsCleanupDoubleCheck: PATH %s\n", + debug(47, 0) ("storeAufsCleanupDoubleCheck: MISSING SWAP FILE\n"); + debug(47, 0) ("storeAufsCleanupDoubleCheck: FILENO %08X\n", e->swap_filen); + debug(47, 0) ("storeAufsCleanupDoubleCheck: PATH %s\n", storeAufsDirFullPath(sd, e->swap_filen, NULL)); storeEntryDump(e, 0); return -1; } if (e->swap_file_sz != sb.st_size) { - debug(20, 0) ("storeAufsCleanupDoubleCheck: SIZE MISMATCH\n"); - debug(20, 0) ("storeAufsCleanupDoubleCheck: FILENO %08X\n", e->swap_filen); - debug(20, 0) ("storeAufsCleanupDoubleCheck: PATH %s\n", + debug(47, 0) ("storeAufsCleanupDoubleCheck: SIZE MISMATCH\n"); + debug(47, 0) ("storeAufsCleanupDoubleCheck: FILENO %08X\n", e->swap_filen); + debug(47, 0) ("storeAufsCleanupDoubleCheck: PATH %s\n", storeAufsDirFullPath(sd, e->swap_filen, NULL)); - debug(20, 0) ("storeAufsCleanupDoubleCheck: ENTRY SIZE: %ld, FILE SIZE: %ld\n", + debug(47, 0) ("storeAufsCleanupDoubleCheck: ENTRY SIZE: %ld, FILE SIZE: %ld\n", (long int) e->swap_file_sz, (long int) sb.st_size); storeEntryDump(e, 0); return -1;