summaryrefslogtreecommitdiff
path: root/frontend/file.go
diff options
context:
space:
mode:
authorJakob Unterwurzacher2015-09-05 20:11:20 +0200
committerJakob Unterwurzacher2015-09-05 20:11:20 +0200
commit7e564f928fef80b0485210603a8aa58b14ca5109 (patch)
treee011e362d47ae35bf55cc7709a8b47017ec51cca /frontend/file.go
parent199d3fd79ff03222cf7498418b40e1263f8aa104 (diff)
Fix size reporting
Diffstat (limited to 'frontend/file.go')
-rw-r--r--frontend/file.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/frontend/file.go b/frontend/file.go
index 8014753..ef74491 100644
--- a/frontend/file.go
+++ b/frontend/file.go
@@ -56,12 +56,12 @@ func (f *File) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenR
}
func (f *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error {
- iblocks := f.crfs.SplitRange(req.Offset, int64(req.Size))
+ iblocks := f.crfs.SplitRange(uint64(req.Offset), uint64(req.Size))
for _, ib := range iblocks {
var partReq fuse.ReadRequest
var partResp fuse.ReadResponse
o, l := ib.CiphertextRange()
- partReq.Offset = o
+ partReq.Offset = int64(o)
partReq.Size = int(l)
partResp.Data = make([]byte, int(l))
err := f.File.Read(ctx, &partReq, &partResp)
@@ -82,7 +82,7 @@ func (f *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadR
func (f *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error {
fmt.Printf("File.Write\n")
resp.Size = 0
- iblocks := f.crfs.SplitRange(req.Offset, int64(len(req.Data)))
+ iblocks := f.crfs.SplitRange(uint64(req.Offset), uint64(len(req.Data)))
var blockData []byte
for _, ib := range iblocks {
if ib.IsPartial() {
@@ -91,7 +91,7 @@ func (f *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.Wri
var readReq fuse.ReadRequest
var readResp fuse.ReadResponse
o, l := ib.PlaintextRange()
- readReq.Offset = o
+ readReq.Offset = int64(o)
readReq.Size = int(l)
err := f.Read(ctx, &readReq, &readResp)
if err != nil {
@@ -109,7 +109,7 @@ func (f *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.Wri
var partResp fuse.WriteResponse
o, _ := ib.CiphertextRange()
partReq.Data = ciphertext
- partReq.Offset = o
+ partReq.Offset = int64(o)
err := f.File.Write(ctx, &partReq, &partResp)
if err != nil {
fmt.Printf("Write failure: %s\n", err.Error())
@@ -121,3 +121,13 @@ func (f *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.Wri
}
return nil
}
+
+func (f *File) Attr(ctx context.Context, attr *fuse.Attr) error {
+ fmt.Printf("Attr\n")
+ err := f.File.Node.Attr(ctx, attr)
+ if err != nil {
+ return err
+ }
+ attr.Size = f.crfs.PlainSize(attr.Size)
+ return nil
+}