Pete Zaitcev wrote: > On Sat, 16 May 2009 00:18:42 +0900, Tejun Heo <htejun@xxxxxxxxx> wrote: > >> In commit c3a4d78c580de4edc9ef0f7c59812fb02ceb037f, while introducing >> rq->resid_len, the default value of residue count was changed from >> full count to zero. [] > > So it's not a residue anymore, right? You should've renamed it to > rq->count or something, then. Now we have this: It still is. It just is restoring the original behavior. >> +++ block/drivers/block/ub.c >> @@ -781,8 +781,7 @@ static void ub_rw_cmd_done(struct ub_dev >> >> if (cmd->error == 0) { >> if (blk_pc_request(rq)) { >> - if (cmd->act_len < blk_rq_bytes(rq)) >> - rq->resid_len = blk_rq_bytes(rq) - cmd->act_len; >> + rq->resid_len -= min(cmd->act_len, rq->resid_len); >> scsi_status = 0; > > You are subtracting resid_len from itself. Just how in the world > can this be correct? > > Even it if is, in fact, correct, it's such an eggregious violation > of good style, that your good programmer's card is going to lose > a big coupon and have a hole punched in it. The original code was if (cmd->act_len >= rq->data_len) rq->data_len = 0; else rq->data_len -= cmd->act_len So, I could have written if (cmd->act_len >= rq->resid_len) rq->resid_len = 0; else rq->resid_len -= cmd->act_len Instead I wrote rq->resid_len -= min(cmd->act_len, rq->resid_len); It's just capping the amount to be subtracted so that resid_len doesn't underflow. What is so wrong or bad style about that? > This is not in Linus' tree yet, but I'm going to take a hard look > at this once it shows up. It would be great if you do before it hits Linus's tree. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html