> Yeah, that's exactly like what I made a mistake before. > I should have mentioned that earlier. :) Or I think the previous code which used "iter++" might be right. You might just want to check the fixed number of small discards, DISCARD_ISSUE_RATE, when issue_cond is "true". Anyways, I have another question about this function. How about just issuing, not checking whether it is idle, the fixed number of small discards, DISCARD_ISSUE_RATE, when issue_cond is "true". Actually, the discard commands will be issued as "asynchronous" requests, which has a low priority in the I/O scheduler, so the performance degradation of other threads by doing this will not be much severe, but we can make the performance of the storage device better even if there is no idle. I am just worried about the storage device I/O performance gets worse under I/O intensive senario where there is no idle Thanks,