Write replies to the kernel.

geesefs-0-30-9
Aaron Jacobs 2015-07-24 11:27:03 +10:00
parent b6ae9475ba
commit 9c2f2652f7
2 changed files with 12 additions and 7 deletions

View File

@ -237,14 +237,19 @@ func (c *Connection) ReadOp() (op fuseops.Op, err error) {
fuseID uint64,
replyMsg []byte,
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.
c.finishOp(m.Hdr.Opcode, m.Hdr.Unique)
// Send the reply to the kernel.
panic("TODO")
// Destroy the message, as required by fuseshim.Connection.ReadMessage.
m.Destroy()
err = c.wrapped.WriteToKernel(replyMsg)
if err != nil {
err = fmt.Errorf("WriteToKernel: %v", err)
return
}
return
}

View File

@ -1061,7 +1061,7 @@ func errorString(err error) string {
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.Len = uint32(len(msg))
@ -1072,7 +1072,7 @@ func (c *Conn) writeToKernel(msg []byte) error {
}
func (c *Conn) respond(msg []byte) {
c.writeToKernel(msg)
c.WriteToKernel(msg)
}
type notCachedError struct{}
@ -1097,7 +1097,7 @@ var (
//
// A returned ENOENT is translated to a friendlier error.
func (c *Conn) sendInvalidate(msg []byte) error {
switch err := c.writeToKernel(msg); err {
switch err := c.WriteToKernel(msg); err {
case syscall.ENOENT:
return ErrNotCached
default: