@cryptotaxi247 / kubo / commits / 5440bb0e6

fix WriteAt race condition

Jeromy committed Mar 24, 2015 at 11:41 UTC 5440bb0e6d7a2dcc13662eb53cbe15f65875bc5f
1 file changed +5 -14
fuse/ipns/ipns_unix.go
+5 -14
@@ -296,22 +296,13 @@ func (fi *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.Read
296 }
297
298 func (fi *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error {
299 - errs := make(chan error, 1)
300 - go func() {
301 - wrote, err := fi.fi.WriteAt(req.Data, req.Offset)
302 - if err != nil {
303 - errs <- err
304 - }
305 - resp.Size = wrote
306 - errs <- nil
307 - }()
308 -
309 - select {
310 - case err := <-errs:
299 + // TODO: at some point, ensure that WriteAt here respects the context
300 + wrote, err := fi.fi.WriteAt(req.Data, req.Offset)
301 + if err != nil {
302 return err
312 - case <-ctx.Done():
313 - return ctx.Err()
303 }
304 + resp.Size = wrote
305 + return nil
306 }
307
308 func (fi *File) Flush(ctx context.Context, req *fuse.FlushRequest) error {