From c21b442e367a2c7e561d473df9ef4c317ea7e850 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 6 Jul 2021 12:02:36 +0300 Subject: [PATCH] Fix directories path fsync --- doc/news.ru.texi | 9 +++++++++ doc/news.texi | 8 ++++++++ src/nncp.go | 2 +- src/toss.go | 8 ++++---- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/doc/news.ru.texi b/doc/news.ru.texi index 3fdf753..86b0ccc 100644 --- a/doc/news.ru.texi +++ b/doc/news.ru.texi @@ -1,6 +1,15 @@ @node Новости @section Новости +@node Релиз 7.1.1 +@subsection Релиз 7.1.1 +@itemize + +@item +Исправлено падение при fsync директорий после создания @file{.seen} файлов. + +@end itemize + @node Релиз 7.1.0 @subsection Релиз 7.1.0 @itemize diff --git a/doc/news.texi b/doc/news.texi index 4bcd03b..731d8ef 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -3,6 +3,14 @@ See also this page @ref{Новости, on russian}. +@node Release 7_1_1 +@section Release 7.1.1 +@itemize + +@item +Fixed failing directories fsync after @file{.seen} file creation. +@end itemize + @node Release 7_1_0 @section Release 7.1.0 @itemize diff --git a/src/nncp.go b/src/nncp.go index d3ad2a7..d2042c3 100644 --- a/src/nncp.go +++ b/src/nncp.go @@ -40,7 +40,7 @@ along with this program. If not, see .` const Base32Encoded32Len = 52 var ( - Version string = "7.1.0" + Version string = "7.1.1" Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding) ) diff --git a/src/toss.go b/src/toss.go index 6f91b43..69ad455 100644 --- a/src/toss.go +++ b/src/toss.go @@ -200,7 +200,7 @@ func jobProcess( if doSeen { if fd, err := os.Create(jobPath + SeenSuffix); err == nil { fd.Close() - if err = DirSync(filepath.Base(jobPath)); err != nil { + if err = DirSync(filepath.Dir(jobPath)); err != nil { ctx.LogE("rx-dirsync", les, err, func(les LEs) string { return fmt.Sprintf( "Tossing file %s/%s (%s): %s: dirsyncing", @@ -393,7 +393,7 @@ func jobProcess( if doSeen { if fd, err := os.Create(jobPath + SeenSuffix); err == nil { fd.Close() - if err = DirSync(filepath.Base(jobPath)); err != nil { + if err = DirSync(filepath.Dir(jobPath)); err != nil { ctx.LogE("rx-dirsync", les, err, func(les LEs) string { return fmt.Sprintf( "Tossing file %s/%s (%s): %s: dirsyncing", @@ -518,7 +518,7 @@ func jobProcess( if doSeen { if fd, err := os.Create(jobPath + SeenSuffix); err == nil { fd.Close() - if err = DirSync(filepath.Base(jobPath)); err != nil { + if err = DirSync(filepath.Dir(jobPath)); err != nil { ctx.LogE("rx-dirsync", les, err, func(les LEs) string { return fmt.Sprintf( "Tossing file %s/%s (%s): %s: dirsyncing", @@ -607,7 +607,7 @@ func jobProcess( if doSeen { if fd, err := os.Create(jobPath + SeenSuffix); err == nil { fd.Close() - if err = DirSync(filepath.Base(jobPath)); err != nil { + if err = DirSync(filepath.Dir(jobPath)); err != nil { ctx.LogE("rx-dirsync", les, err, func(les LEs) string { return fmt.Sprintf( "Tossing file %s/%s (%s): %s: dirsyncing", -- 2.44.0