From 08f5bb7cedf71569835e3cd7883f7c44a8682e06 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 6 Mar 2015 05:47:30 +1100 Subject: [PATCH] Added server support for setattr. --- server.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/server.go b/server.go index cc343b9..811c34b 100644 --- a/server.go +++ b/server.go @@ -171,6 +171,34 @@ func (s *server) handleFuseRequest(fuseReq bazilfuse.Request) { s.logger.Println("Responding:", fuseResp) typed.Respond(fuseResp) + case *bazilfuse.SetattrRequest: + // Convert the request. + req := &SetInodeAttributesRequest{ + Header: convertHeader(typed.Header), + Inode: InodeID(typed.Header.Node), + } + + if typed.Valid&bazilfuse.SetattrSize != 0 { + req.Size = &typed.Size + } + + // Call the file system. + resp, err := s.fs.SetInodeAttributes(ctx, req) + if err != nil { + s.logger.Println("Responding:", err) + typed.RespondError(err) + return + } + + // Convert the response. + fuseResp := &bazilfuse.SetattrResponse{ + Attr: convertAttributes(req.Inode, resp.Attributes), + AttrValid: resp.AttributesExpiration.Sub(s.clock.Now()), + } + + s.logger.Println("Responding:", fuseResp) + typed.Respond(fuseResp) + case *bazilfuse.MkdirRequest: // Convert the request. req := &MkDirRequest{