Re: [PATCH 05/14] libata: make ->data_xfer return the number of consumed bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alan Cox wrote:
> On Thu, 29 Nov 2007 23:33:28 +0900
> Tejun Heo <htejun@xxxxxxxxx> wrote:
> 
>> Depending on how many bytes are transferred as a unit, PIO data
>> tranasfer may consume more bytes than requested.  Knowing how much
>> data is consumed is necessary to determine how much is left for
>> draining.  This patch update ->data_xfer such that it returns the
>> number of consumed bytes.
> 
> Why do we care ? 
> 
> If the drive and controller disagree or the drive has gone off its
> trolley all we actually care about is when the thing stops saying there
> is data. In addition all our methods transfer the entire block they are
> asked to each time.

It's for draining.  Let's say drive says it wanna transfer 18 bytes but
the buffer is only 13 bytes long.  If the transfer method consumes 2
bytes per read, it would consume 14 bytes.  If the transfer method
consumes 4 bytes per read, it would consume 16 bytes.  If we drain too
much, we risk hanging the machine.

-- 
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux