perf3
This commit is contained in:
@@ -24,7 +24,6 @@ import (
|
|||||||
|
|
||||||
"github.com/gostor/gotgt/pkg/api"
|
"github.com/gostor/gotgt/pkg/api"
|
||||||
"github.com/gostor/gotgt/pkg/util"
|
"github.com/gostor/gotgt/pkg/util"
|
||||||
"github.com/gostor/gotgt/pkg/util/pool"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -126,13 +125,12 @@ func (c *iscsiConnection) init() {
|
|||||||
sort.Sort(c.loginParam.sessionParam)
|
sort.Sort(c.loginParam.sessionParam)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *iscsiConnection) readData(size int) ([]byte, int, error) {
|
func (c *iscsiConnection) readData(buf []byte) (int, error) {
|
||||||
var buf = pool.NewBuffer(size)
|
|
||||||
length, err := io.ReadFull(c.conn, buf)
|
length, err := io.ReadFull(c.conn, buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, -1, err
|
return -1, err
|
||||||
}
|
}
|
||||||
return buf, length, nil
|
return length, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *iscsiConnection) write(resp []byte) (int, error) {
|
func (c *iscsiConnection) write(resp []byte) (int, error) {
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ func (s *ISCSITargetDriver) rxHandler(conn *iscsiConnection) {
|
|||||||
switch conn.rxIOState {
|
switch conn.rxIOState {
|
||||||
case IOSTATE_RX_BHS:
|
case IOSTATE_RX_BHS:
|
||||||
log.Debug("rx handler: IOSTATE_RX_BHS")
|
log.Debug("rx handler: IOSTATE_RX_BHS")
|
||||||
buf, length, err = conn.readData(BHS_SIZE)
|
length, err = conn.readData(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
return
|
return
|
||||||
@@ -227,7 +227,6 @@ func (s *ISCSITargetDriver) rxHandler(conn *iscsiConnection) {
|
|||||||
conn.state = CONN_STATE_CLOSE
|
conn.state = CONN_STATE_CLOSE
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//conn.rxBuffer = buf
|
|
||||||
cmd, err = parseHeader(buf)
|
cmd, err = parseHeader(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
@@ -262,12 +261,11 @@ func (s *ISCSITargetDriver) rxHandler(conn *iscsiConnection) {
|
|||||||
cmd.RawData = pool.NewBuffer(dl)
|
cmd.RawData = pool.NewBuffer(dl)
|
||||||
length := 0
|
length := 0
|
||||||
for length < dl {
|
for length < dl {
|
||||||
b, l, err := conn.readData(dl - length)
|
l, err := conn.readData(cmd.RawData[length:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
copy(cmd.RawData[length:], b)
|
|
||||||
length += l
|
length += l
|
||||||
}
|
}
|
||||||
if length != dl {
|
if length != dl {
|
||||||
|
|||||||
Reference in New Issue
Block a user