erasure: Commit data before xl.meta in RenameData() (#10734)

This will reduce the chance to have updated xl.meta without data.
master
Anis Elleuch 4 years ago committed by GitHub
parent 2c32c2149e
commit 00124c56d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      cmd/xl-storage.go

@ -2224,10 +2224,7 @@ func (s *xlStorage) RenameData(ctx context.Context, srcVolume, srcPath, dataDir,
return err return err
} }
if err = renameAll(srcFilePath, dstFilePath); err != nil { // Commit data
return osErrToFileErr(err)
}
if srcDataPath != "" { if srcDataPath != "" {
removeAll(oldDstDataPath) removeAll(oldDstDataPath)
removeAll(dstDataPath) removeAll(dstDataPath)
@ -2236,6 +2233,11 @@ func (s *xlStorage) RenameData(ctx context.Context, srcVolume, srcPath, dataDir,
} }
} }
// Commit meta-file
if err = renameAll(srcFilePath, dstFilePath); err != nil {
return osErrToFileErr(err)
}
// Remove parent dir of the source file if empty // Remove parent dir of the source file if empty
if parentDir := slashpath.Dir(srcFilePath); isDirEmpty(parentDir) { if parentDir := slashpath.Dir(srcFilePath); isDirEmpty(parentDir) {
deleteFile(srcVolumeDir, parentDir, false) deleteFile(srcVolumeDir, parentDir, false)

Loading…
Cancel
Save