WriteFileOp

geesefs-0-30-9
Aaron Jacobs 2015-07-24 08:15:52 +10:00
parent 8c9daf83da
commit 5e97b58fcc
1 changed files with 16 additions and 6 deletions

View File

@ -300,13 +300,23 @@ func Convert(
io = to
co = &to.commonOp
case *fuseshim.WriteRequest:
case fusekernel.OpWrite:
in := (*fusekernel.WriteIn)(m.Data())
size := fusekernel.WriteInSize(protocol)
if m.Len() < size {
goto corrupt
}
buf := m.Bytes()[size:]
if len(buf) < int(in.Size) {
goto corrupt
}
to := &WriteFileOp{
bfReq: typed,
Inode: InodeID(typed.Header.Node),
Handle: HandleID(typed.Handle),
Data: typed.Data,
Offset: typed.Offset,
Inode: InodeID(m.Header().Node),
Handle: HandleID(in.Fh),
Data: buf,
Offset: int64(in.Offset),
}
io = to
co = &to.commonOp