From 8b217d531305433df01c789dab4dc81d58f05eba Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 5 Jan 2015 20:24:59 +0100 Subject: fs/io/FileOutputStream: use O_TMPFILE if available The Linux feature allows writing new files to an invisible file, and then replace the old file. This preserves the old file if we get interrupted by some event. --- src/fs/io/FileOutputStream.hxx | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/fs/io/FileOutputStream.hxx') diff --git a/src/fs/io/FileOutputStream.hxx b/src/fs/io/FileOutputStream.hxx index 5ac2f9e15..03d062134 100644 --- a/src/fs/io/FileOutputStream.hxx +++ b/src/fs/io/FileOutputStream.hxx @@ -42,6 +42,14 @@ class FileOutputStream final : public OutputStream { int fd; #endif +#ifdef HAVE_LINKAT + /** + * Was O_TMPFILE used? If yes, then linkat() must be used to + * create a link to this file. + */ + bool is_tmpfile; +#endif + public: FileOutputStream(Path _path, Error &error); -- cgit v1.2.3