On Mon, Mar 21, 2016 at 01:27:29PM +0100, Hannes Reinecke wrote: > in sd_read_capacity() the sdkp->capacity field changes its meaning: > after the call to read_capacity_XX() it carries the _unscaled_ values, > making the comparison between the original value and the new value > always false for drives with a sector size != 512. > So introduce a 'new_capacity' carrying the new, scaled, capacity. While this fixes a bug and adds a comment to clarify things I think the whole function is still a mess. And the way how your first calculate new_capacity but then keep the duplicated scaling on sdkp->capacity a littler later isn't really helpful either. Is there any chance to rewrite it so that the unscaled capacity has its own local variable, and sdkp->capacity is always either the correct old or new capacity? -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html