Merge pull request #5936 from ipfs/fix/mfs-flush

mfs: make sure to flush after mv and chcid
This commit is contained in:
Steven Allen 2019-01-22 04:58:57 -08:00 committed by GitHub
commit 2c2d2e2ad7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -636,6 +636,8 @@ Example:
return err
}
flush, _ := req.Options[filesFlushOptionName].(bool)
src, err := checkPath(req.Arguments[0])
if err != nil {
return err
@ -645,7 +647,11 @@ Example:
return err
}
return mfs.Mv(nd.FilesRoot, src, dst)
err = mfs.Mv(nd.FilesRoot, src, dst)
if err == nil && flush {
err = mfs.FlushPath(nd.FilesRoot, "/")
}
return err
},
}
@ -908,11 +914,15 @@ Change the cid version or hash function of the root node of a given path.
return err
}
return updatePath(nd.FilesRoot, path, prefix, flush)
err = updatePath(nd.FilesRoot, path, prefix)
if err == nil && flush {
err = mfs.FlushPath(nd.FilesRoot, path)
}
return err
},
}
func updatePath(rt *mfs.Root, pth string, builder cid.Builder, flush bool) error {
func updatePath(rt *mfs.Root, pth string, builder cid.Builder) error {
if builder == nil {
return nil
}
@ -929,10 +939,6 @@ func updatePath(rt *mfs.Root, pth string, builder cid.Builder, flush bool) error
return fmt.Errorf("can only update directories")
}
if flush {
nd.Flush()
}
return nil
}