Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
It makes sense to do the force rewrite because it may cause the hard drive to remap the block to one of its spare blocks that are reserved specifically for this purpose. This is a much easier way to deal with a bad block in the inode table than trying to relocate the entire inode table (which must be contiguous).
Forcing the drive to remap the block by writing is something that didn't occur to me, and I suppose it makes a certain amount of sense. However, I'm uncomfortable with this: what if the disk is not directly attached to the host? For example, what if it is on a SAN or iSCSI? The read error could have been caused by a transient fibre channel or ethernet switch problem, so a subsequent force-rewrite could easily end up destroying good blocks.