Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
go-fuse
Commits
87625729
Commit
87625729
authored
Apr 22, 2011
by
Han-Wen Nienhuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename request.data to request.outData.
parent
eb36f80c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
20 deletions
+20
-20
fuse/fuse.go
fuse/fuse.go
+7
-7
fuse/opcode.go
fuse/opcode.go
+13
-13
No files found.
fuse/fuse.go
View file @
87625729
...
...
@@ -23,9 +23,6 @@ const (
maxRead
=
bufSize
-
PAGESIZE
)
////////////////////////////////////////////////////////////////
// State related to this mount point.
type
request
struct
{
inputBuf
[]
byte
...
...
@@ -35,7 +32,7 @@ type request struct {
arg
[]
byte
// flat data.
// Unstructured data, a pointer to the relevant XxxxOut struct.
d
ata
unsafe
.
Pointer
outD
ata
unsafe
.
Pointer
status
Status
flatData
[]
byte
...
...
@@ -57,6 +54,9 @@ func (me *request) filenames(count int) []string {
return
strings
.
Split
(
string
(
me
.
arg
),
"
\x00
"
,
count
)
}
////////////////////////////////////////////////////////////////
// State related to this mount point.
type
MountState
struct
{
// Empty if unmounted.
mountPoint
string
...
...
@@ -337,7 +337,7 @@ func serialize(req *request, debug bool) {
req
.
status
=
ENOSYS
return
}
if
req
.
d
ata
==
nil
||
req
.
status
!=
OK
{
if
req
.
outD
ata
==
nil
||
req
.
status
!=
OK
{
dataLength
=
0
}
...
...
@@ -349,9 +349,9 @@ func serialize(req *request, debug bool) {
outHeader
.
Status
=
-
req
.
status
outHeader
.
Length
=
uint32
(
sizeOfOutHeader
+
dataLength
+
len
(
req
.
flatData
))
copy
(
req
.
outHeaderBytes
[
sizeOfOutHeader
:
],
asSlice
(
req
.
d
ata
,
dataLength
))
copy
(
req
.
outHeaderBytes
[
sizeOfOutHeader
:
],
asSlice
(
req
.
outD
ata
,
dataLength
))
if
debug
{
val
:=
fmt
.
Sprintf
(
"%v"
,
replyString
(
req
.
inHeader
.
Opcode
,
req
.
d
ata
))
val
:=
fmt
.
Sprintf
(
"%v"
,
replyString
(
req
.
inHeader
.
Opcode
,
req
.
outD
ata
))
max
:=
1024
if
len
(
val
)
>
max
{
val
=
val
[
:
max
]
+
fmt
.
Sprintf
(
" ...trimmed (response size %d)"
,
outHeader
.
Length
)
...
...
fuse/opcode.go
View file @
87625729
...
...
@@ -42,7 +42,7 @@ func doOpen(state *MountState, req *request) {
OpenFlags
:
flags
,
}
req
.
d
ata
=
unsafe
.
Pointer
(
out
)
req
.
outD
ata
=
unsafe
.
Pointer
(
out
)
}
...
...
@@ -50,7 +50,7 @@ func doCreate(state *MountState, req *request) {
flags
,
handle
,
entry
,
status
:=
state
.
fileSystem
.
Create
(
req
.
inHeader
,
(
*
CreateIn
)(
req
.
inData
),
req
.
filename
())
req
.
status
=
status
if
status
==
OK
{
req
.
d
ata
=
unsafe
.
Pointer
(
&
CreateOut
{
req
.
outD
ata
=
unsafe
.
Pointer
(
&
CreateOut
{
EntryOut
:
*
entry
,
OpenOut
:
OpenOut
{
Fh
:
handle
,
...
...
@@ -74,7 +74,7 @@ func doOpenDir(state *MountState, req *request) {
flags
,
handle
,
status
:=
state
.
fileSystem
.
OpenDir
(
req
.
inHeader
,
(
*
OpenIn
)(
req
.
inData
))
req
.
status
=
status
if
status
==
OK
{
req
.
d
ata
=
unsafe
.
Pointer
(
&
OpenOut
{
req
.
outD
ata
=
unsafe
.
Pointer
(
&
OpenOut
{
Fh
:
handle
,
OpenFlags
:
flags
,
})
...
...
@@ -84,7 +84,7 @@ func doOpenDir(state *MountState, req *request) {
func
doSetattr
(
state
*
MountState
,
req
*
request
)
{
// TODO - if Fh != 0, we should do a FSetAttr instead.
o
,
s
:=
state
.
fileSystem
.
SetAttr
(
req
.
inHeader
,
(
*
SetAttrIn
)(
req
.
inData
))
req
.
d
ata
=
unsafe
.
Pointer
(
o
)
req
.
outD
ata
=
unsafe
.
Pointer
(
o
)
req
.
status
=
s
}
...
...
@@ -93,7 +93,7 @@ func doWrite(state *MountState, req *request) {
o
:=
&
WriteOut
{
Size
:
n
,
}
req
.
d
ata
=
unsafe
.
Pointer
(
o
)
req
.
outD
ata
=
unsafe
.
Pointer
(
o
)
req
.
status
=
status
}
...
...
@@ -116,7 +116,7 @@ func doGetXAttr(state *MountState, req *request) {
out
:=
&
GetXAttrOut
{
Size
:
size
,
}
req
.
d
ata
=
unsafe
.
Pointer
(
out
)
req
.
outD
ata
=
unsafe
.
Pointer
(
out
)
}
if
size
>
input
.
Size
{
...
...
@@ -130,7 +130,7 @@ func doGetAttr(state *MountState, req *request) {
// TODO - if req.inData.Fh is set, do file.GetAttr
attrOut
,
s
:=
state
.
fileSystem
.
GetAttr
(
req
.
inHeader
,
(
*
GetAttrIn
)(
req
.
inData
))
req
.
status
=
s
req
.
d
ata
=
unsafe
.
Pointer
(
attrOut
)
req
.
outD
ata
=
unsafe
.
Pointer
(
attrOut
)
}
func
doForget
(
state
*
MountState
,
req
*
request
)
{
...
...
@@ -141,7 +141,7 @@ func doReadlink(state *MountState, req *request) {
req
.
flatData
,
req
.
status
=
state
.
fileSystem
.
Readlink
(
req
.
inHeader
)
}
func
doInit
(
state
*
MountState
,
req
*
request
)
{
req
.
d
ata
,
req
.
status
=
state
.
init
(
req
.
inHeader
,
(
*
InitIn
)(
req
.
inData
))
req
.
outD
ata
,
req
.
status
=
state
.
init
(
req
.
inHeader
,
(
*
InitIn
)(
req
.
inData
))
}
func
doDestroy
(
state
*
MountState
,
req
*
request
)
{
state
.
fileSystem
.
Destroy
(
req
.
inHeader
,
(
*
InitIn
)(
req
.
inData
))
...
...
@@ -150,19 +150,19 @@ func doDestroy(state *MountState, req *request) {
func
doLookup
(
state
*
MountState
,
req
*
request
)
{
lookupOut
,
s
:=
state
.
fileSystem
.
Lookup
(
req
.
inHeader
,
req
.
filename
())
req
.
status
=
s
req
.
d
ata
=
unsafe
.
Pointer
(
lookupOut
)
req
.
outD
ata
=
unsafe
.
Pointer
(
lookupOut
)
}
func
doMknod
(
state
*
MountState
,
req
*
request
)
{
entryOut
,
s
:=
state
.
fileSystem
.
Mknod
(
req
.
inHeader
,
(
*
MknodIn
)(
req
.
inData
),
req
.
filename
())
req
.
status
=
s
req
.
d
ata
=
unsafe
.
Pointer
(
entryOut
)
req
.
outD
ata
=
unsafe
.
Pointer
(
entryOut
)
}
func
doMkdir
(
state
*
MountState
,
req
*
request
)
{
entryOut
,
s
:=
state
.
fileSystem
.
Mkdir
(
req
.
inHeader
,
(
*
MkdirIn
)(
req
.
inData
),
req
.
filename
())
req
.
status
=
s
req
.
d
ata
=
unsafe
.
Pointer
(
entryOut
)
req
.
outD
ata
=
unsafe
.
Pointer
(
entryOut
)
}
func
doUnlink
(
state
*
MountState
,
req
*
request
)
{
...
...
@@ -176,7 +176,7 @@ func doRmdir(state *MountState, req *request) {
func
doLink
(
state
*
MountState
,
req
*
request
)
{
entryOut
,
s
:=
state
.
fileSystem
.
Link
(
req
.
inHeader
,
(
*
LinkIn
)(
req
.
inData
),
req
.
filename
())
req
.
status
=
s
req
.
d
ata
=
unsafe
.
Pointer
(
entryOut
)
req
.
outD
ata
=
unsafe
.
Pointer
(
entryOut
)
}
func
doRead
(
state
*
MountState
,
req
*
request
)
{
req
.
flatData
,
req
.
status
=
state
.
fileSystem
.
Read
((
*
ReadIn
)(
req
.
inData
),
state
.
buffers
)
...
...
@@ -214,7 +214,7 @@ func doSymlink(state *MountState, req *request) {
if
len
(
filenames
)
>=
2
{
entryOut
,
s
:=
state
.
fileSystem
.
Symlink
(
req
.
inHeader
,
filenames
[
1
],
filenames
[
0
])
req
.
status
=
s
req
.
d
ata
=
unsafe
.
Pointer
(
entryOut
)
req
.
outD
ata
=
unsafe
.
Pointer
(
entryOut
)
}
else
{
req
.
status
=
EIO
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment