]> ruderich.org/simon Gitweb - safcm/safcm.git/commitdiff
remote: remove SyncPath()
authorSimon Ruderich <simon@ruderich.org>
Tue, 1 Jun 2021 06:17:49 +0000 (08:17 +0200)
committerSimon Ruderich <simon@ruderich.org>
Tue, 1 Jun 2021 06:19:10 +0000 (08:19 +0200)
Not removed in 2804606 (remote: guard against symlinks in earlier path
components, 2021-06-01) to make the diff more readable.

remote/sync/files.go

index edf81bd2cc795a2630f4b775eca25786ad838c61..24c59ce1d0bac7f560249f718677922a929dfa25 100644 (file)
@@ -456,6 +456,13 @@ reopen:
                unix.Unlinkat(parentFd, tmpBase, 0)
                return err
        }
+       // To guarantee durability fsync must be called on a parent directory
+       // after adding, renaming or removing files therein.
+//
+// Calling sync on the files itself is not enough according to POSIX; man 2
+// fsync: "Calling fsync() does not necessarily ensure that the entry in the
+// directory containing the file has also reached disk. For that an explicit
+// fsync() on a file descriptor for the directory is also needed."
        err = unix.Fsync(parentFd)
        if err != nil {
                return err
@@ -695,24 +702,3 @@ retry:
 
        return os.NewFile(uintptr(fd), ""), tmpBase, nil
 }
-
-// SyncPath syncs path, which should be a directory. To guarantee durability
-// it must be called on a parent directory after adding, renaming or removing
-// files therein.
-//
-// Calling sync on the files itself is not enough according to POSIX; man 2
-// fsync: "Calling fsync() does not necessarily ensure that the entry in the
-// directory containing the file has also reached disk. For that an explicit
-// fsync() on a file descriptor for the directory is also needed."
-func SyncPath(path string) error {
-       x, err := os.Open(path)
-       if err != nil {
-               return err
-       }
-       err = x.Sync()
-       closeErr := x.Close()
-       if err != nil {
-               return err
-       }
-       return closeErr
-}