Lines Matching refs:STbp
1555 struct st_buffer *STbp = STp->buffer;
1564 i = sgl_map_user_pages(STbp, STbp->use_sg, (unsigned long)buf,
1567 STbp->do_dio = i;
1568 STbp->buffer_bytes = 0; /* can be used as transfer counter */
1571 STbp->do_dio = 0; /* fall back to buffering with any error */
1572 STbp->sg_segs = STbp->do_dio;
1574 if (STbp->do_dio) {
1576 STp->nbr_pages += STbp->do_dio;
1580 STbp->do_dio = 0;
1583 if (!STbp->do_dio) {
1591 if (is_read && STp->sili && !STbp->cleared)
1592 clear_buffer(STbp);
1595 if (bufsize > STbp->buffer_size &&
1596 !enlarge_buffer(STbp, bufsize)) {
1604 STbp->buffer_blocks = bufsize / STp->block_size;
1615 struct st_buffer *STbp;
1617 STbp = STp->buffer;
1618 if (STbp->do_dio) {
1619 sgl_unmap_user_pages(STbp, STbp->do_dio, is_read);
1620 STbp->do_dio = 0;
1621 STbp->sg_segs = 0;
1641 struct st_buffer *STbp;
1689 STbp = STp->buffer;
1711 !STbp->do_dio &&
1733 if (STbp->do_dio) {
1740 do_count = STbp->buffer_blocks * STp->block_size -
1741 STbp->buffer_bytes;
1746 i = append_to_buffer(b_point, STbp, do_count);
1755 async_write = STp->block_size == 0 && !STbp->do_dio &&
1760 STbp->buffer_bytes < STbp->buffer_size) {
1771 if (!STbp->do_dio)
1772 blks = STbp->buffer_bytes;
1786 retval = STbp->syscall_result;
1789 if (async_write && !STbp->syscall_result) {
1790 STbp->writing = transfer;
1791 STp->dirty = !(STbp->writing ==
1792 STbp->buffer_bytes);
1798 if (STbp->syscall_result != 0) {
1864 retval = STbp->syscall_result;
1876 STbp->buffer_bytes = 0;
1916 struct st_buffer *STbp;
1926 STbp = STp->buffer;
1936 if (!STbp->do_dio && bytes > (STp->buffer)->buffer_size)
1959 return STbp->syscall_result;
1961 STbp->read_pointer = 0;
1965 if (STbp->syscall_result) {
2004 STbp->buffer_bytes = 0;
2007 STbp->buffer_bytes = bytes - transfer;
2021 STbp->buffer_bytes = (blks - transfer) *
2027 STbp->buffer_bytes);
2039 STbp->buffer_bytes = 0;
2041 STbp->buffer_bytes =
2045 STbp->buffer_bytes);
2052 STbp->buffer_bytes = bytes - transfer;
2054 STbp->buffer_bytes =
2059 STbp->buffer_bytes);
2076 if (STbp->buffer_bytes < 0) /* Caused by bogus sense data */
2077 STbp->buffer_bytes = 0;
2081 retval = STbp->syscall_result;
2087 STbp->buffer_bytes = bytes;
2089 STbp->buffer_bytes -= STp->buffer->cmdstat.residual;
2096 STps->drv_block += STbp->buffer_bytes / STp->block_size;
2115 struct st_buffer *STbp = STp->buffer;
2144 STps->eof, STbp->buffer_bytes);
2150 do_dio = STbp->do_dio;
2152 if (STbp->buffer_bytes == 0 &&
2182 if (STbp->buffer_bytes == 0) {
2191 if (STbp->buffer_bytes > 0) {
2196 STps->eof, STbp->buffer_bytes,
2199 transfer = STbp->buffer_bytes < count - total ?
2200 STbp->buffer_bytes : count - total;
2202 i = from_buffer(STbp, buf, transfer);
2243 STbp->buffer_bytes = 0;
4878 static int sgl_map_user_pages(struct st_buffer *STbp,
4887 struct rq_map_data *mdata = &STbp->map_data;
4922 STbp->mapped_pages = pages;
4936 static int sgl_unmap_user_pages(struct st_buffer *STbp,
4940 unpin_user_pages_dirty_lock(STbp->mapped_pages, nr_pages, dirtied);
4942 kfree(STbp->mapped_pages);
4943 STbp->mapped_pages = NULL;