- os.link(os.path.join(tmpdir, tmpmessagename),
- os.path.join(newdir, messagename))
- os.unlink(os.path.join(tmpdir, tmpmessagename))
+ if tmpmessagename != messagename: # then rename it
+ os.link(os.path.join(tmpdir, tmpmessagename),
+ os.path.join(tmpdir, messagename))
+ os.unlink(os.path.join(tmpdir, tmpmessagename))
+
+ if self.dofsync:
+ try:
+ # fsync the directory (safer semantics in Linux)
+ fd = os.open(tmpdir, os.O_RDONLY)
+ os.fsync(fd)
+ os.close(fd)
+ except:
+ pass
+