Write replies to the kernel.
parent
b6ae9475ba
commit
9c2f2652f7
|
@ -237,14 +237,19 @@ func (c *Connection) ReadOp() (op fuseops.Op, err error) {
|
||||||
fuseID uint64,
|
fuseID uint64,
|
||||||
replyMsg []byte,
|
replyMsg []byte,
|
||||||
opErr error) (err error) {
|
opErr error) (err error) {
|
||||||
|
// Make sure we destroy the message, as required by
|
||||||
|
// fuseshim.Connection.ReadMessage.
|
||||||
|
defer m.Destroy()
|
||||||
|
|
||||||
// Clean up state for this op.
|
// Clean up state for this op.
|
||||||
c.finishOp(m.Hdr.Opcode, m.Hdr.Unique)
|
c.finishOp(m.Hdr.Opcode, m.Hdr.Unique)
|
||||||
|
|
||||||
// Send the reply to the kernel.
|
// Send the reply to the kernel.
|
||||||
panic("TODO")
|
err = c.wrapped.WriteToKernel(replyMsg)
|
||||||
|
if err != nil {
|
||||||
// Destroy the message, as required by fuseshim.Connection.ReadMessage.
|
err = fmt.Errorf("WriteToKernel: %v", err)
|
||||||
m.Destroy()
|
return
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -1061,7 +1061,7 @@ func errorString(err error) string {
|
||||||
return err.Error()
|
return err.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) writeToKernel(msg []byte) error {
|
func (c *Conn) WriteToKernel(msg []byte) error {
|
||||||
out := (*fusekernel.OutHeader)(unsafe.Pointer(&msg[0]))
|
out := (*fusekernel.OutHeader)(unsafe.Pointer(&msg[0]))
|
||||||
out.Len = uint32(len(msg))
|
out.Len = uint32(len(msg))
|
||||||
|
|
||||||
|
@ -1072,7 +1072,7 @@ func (c *Conn) writeToKernel(msg []byte) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) respond(msg []byte) {
|
func (c *Conn) respond(msg []byte) {
|
||||||
c.writeToKernel(msg)
|
c.WriteToKernel(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
type notCachedError struct{}
|
type notCachedError struct{}
|
||||||
|
@ -1097,7 +1097,7 @@ var (
|
||||||
//
|
//
|
||||||
// A returned ENOENT is translated to a friendlier error.
|
// A returned ENOENT is translated to a friendlier error.
|
||||||
func (c *Conn) sendInvalidate(msg []byte) error {
|
func (c *Conn) sendInvalidate(msg []byte) error {
|
||||||
switch err := c.writeToKernel(msg); err {
|
switch err := c.WriteToKernel(msg); err {
|
||||||
case syscall.ENOENT:
|
case syscall.ENOENT:
|
||||||
return ErrNotCached
|
return ErrNotCached
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue