mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Fix infinite loop when zdb -R with d flag
Also print decompress progress to stderr so it wouldn't pollute raw output with r flag. Signed-off-by: Chunwei Chen <david.chen@osnexus.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #4956
This commit is contained in:
parent
d9c97ec08b
commit
b320dd91a9
@ -3500,7 +3500,8 @@ zdb_read_block(char *thing, spa_t *spa)
|
|||||||
for (lsize = psize + SPA_MINBLOCKSIZE;
|
for (lsize = psize + SPA_MINBLOCKSIZE;
|
||||||
lsize <= SPA_MAXBLOCKSIZE; lsize += SPA_MINBLOCKSIZE) {
|
lsize <= SPA_MAXBLOCKSIZE; lsize += SPA_MINBLOCKSIZE) {
|
||||||
for (c = 0; c < ZIO_COMPRESS_FUNCTIONS; c++) {
|
for (c = 0; c < ZIO_COMPRESS_FUNCTIONS; c++) {
|
||||||
(void) printf("Trying %05llx -> %05llx (%s)\n",
|
(void) fprintf(stderr,
|
||||||
|
"Trying %05llx -> %05llx (%s)\n",
|
||||||
(u_longlong_t)psize, (u_longlong_t)lsize,
|
(u_longlong_t)psize, (u_longlong_t)lsize,
|
||||||
zio_compress_table[c].ci_name);
|
zio_compress_table[c].ci_name);
|
||||||
if (zio_decompress_data(c, pbuf, lbuf,
|
if (zio_decompress_data(c, pbuf, lbuf,
|
||||||
@ -3512,7 +3513,6 @@ zdb_read_block(char *thing, spa_t *spa)
|
|||||||
}
|
}
|
||||||
if (c != ZIO_COMPRESS_FUNCTIONS)
|
if (c != ZIO_COMPRESS_FUNCTIONS)
|
||||||
break;
|
break;
|
||||||
lsize -= SPA_MINBLOCKSIZE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
umem_free(pbuf2, SPA_MAXBLOCKSIZE);
|
umem_free(pbuf2, SPA_MAXBLOCKSIZE);
|
||||||
|
Loading…
Reference in New Issue
Block a user