ssharkey@magnus.ircc.ohio-state.edu (Scott A Sharkey) (02/19/91)
Enclosed are my changes to badblocks (std PH 1.5 distribution) to correct
problems handling bad blocks >8191. These changes are essentially the
same as what Andy just posted from 1.6, except that I couldn't get his
version to compile (probably all the posixification and V2 file system
changes). Anyway, this works, and so should Andy's version. I verified
with both de and fsck, on a disk which had 24 bad spots, above and below
the 8K mark.
-Scott
*** badblocks.org Sun Feb 17 18:11:50 1991
--- badblocks.c Mon Feb 18 12:19:39 1991
***************
*** 465,475 ****
unsigned z_num;
char wrd_str[17], bit_str[17];
! z_num = num + 1 - sp->s_firstdatazone;
block = z_num >> BIT_MAP_SHIFT; /* which block */
offset = z_num - (block << BIT_MAP_SHIFT); /* offset in block */
! words = offset / INT_BITS; /* which word */
blk_offset = (long) (2 + sp->s_imap_block);
blk_offset *= (long) BLOCK_SIZE;
--- 465,475 ----
unsigned z_num;
char wrd_str[17], bit_str[17];
! z_num = num - (sp->s_firstdatazone - 1);
block = z_num >> BIT_MAP_SHIFT; /* which block */
offset = z_num - (block << BIT_MAP_SHIFT); /* offset in block */
! words = z_num / INT_BITS; /* which word */
blk_offset = (long) (2 + sp->s_imap_block);
blk_offset *= (long) BLOCK_SIZE;
--
Scott Sharkey A Guest of The Ohio State University
LANshark Systems
3000 Stone Mountain Dr. ssharkey@magnus.ircc.ohio-state.edu
Pickerington, Ohio 43147 (614) 866-5553