mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-23 00:00:02 +03:00
stats
This commit is contained in:
parent
71b4a29224
commit
91bc742528
@ -89,6 +89,7 @@ long getblocks(int fd)
|
|||||||
|
|
||||||
struct pagestuff {
|
struct pagestuff {
|
||||||
unsigned char csum[16];
|
unsigned char csum[16];
|
||||||
|
unsigned char oldcsum[16];
|
||||||
int readcount;
|
int readcount;
|
||||||
int writecount;
|
int writecount;
|
||||||
};
|
};
|
||||||
@ -100,6 +101,7 @@ int main(int argc, char **argv)
|
|||||||
unsigned long size, i, offset = 0, done = 0;
|
unsigned long size, i, offset = 0, done = 0;
|
||||||
void *buf1 = NULL, *buf2 = NULL;
|
void *buf1 = NULL, *buf2 = NULL;
|
||||||
struct pagestuff *pages, *p;
|
struct pagestuff *pages, *p;
|
||||||
|
unsigned char c[16];
|
||||||
|
|
||||||
RC4_KEY writedata;
|
RC4_KEY writedata;
|
||||||
RC4_set_key(&writedata, 16, bcache_magic);
|
RC4_set_key(&writedata, 16, bcache_magic);
|
||||||
@ -181,13 +183,13 @@ int main(int argc, char **argv)
|
|||||||
RC4(&writedata, 4096, zero, buf1 + j);
|
RC4(&writedata, 4096, zero, buf1 + j);
|
||||||
|
|
||||||
if (csum) {
|
if (csum) {
|
||||||
unsigned char c[16];
|
|
||||||
MD4(buf1 + j, 4096, &c[0]);
|
MD4(buf1 + j, 4096, &c[0]);
|
||||||
|
|
||||||
if (writing ||
|
if (writing ||
|
||||||
(!p->readcount && !p->writecount))
|
(!p->readcount && !p->writecount)) {
|
||||||
|
memcpy(&p->oldcsum[0], &p->csum[0], 16);
|
||||||
memcpy(&p->csum[0], c, 16);
|
memcpy(&p->csum[0], c, 16);
|
||||||
else if (memcmp(&p->csum[0], c, 16))
|
} else if (memcmp(&p->csum[0], c, 16))
|
||||||
goto bad;
|
goto bad;
|
||||||
} else if (!writing &&
|
} else if (!writing &&
|
||||||
memcmp(buf1 + j,
|
memcmp(buf1 + j,
|
||||||
@ -208,5 +210,9 @@ err:
|
|||||||
bad:
|
bad:
|
||||||
printf("Bad read! loop %li offset %li sectors %i, sector %i, readcount %i writecount %i\n",
|
printf("Bad read! loop %li offset %li sectors %i, sector %i, readcount %i writecount %i\n",
|
||||||
i, offset >> 9, nbytes >> 9, j >> 9, p->readcount, p->writecount);
|
i, offset >> 9, nbytes >> 9, j >> 9, p->readcount, p->writecount);
|
||||||
|
|
||||||
|
if (!memcmp(&p->oldcsum[0], c, 16))
|
||||||
|
printf("Matches previous csum\n");
|
||||||
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user