From 6cbf4b92cfd857ed76f5d46689bd68c517cdcb81 Mon Sep 17 00:00:00 2001
From: Christoph Hellwig <hch@lst.de>
Date: Thu, 24 Mar 2016 16:42:26 +0100
Subject: [PATCH] Ensure internal buffers are flushed json after dumping json
 to disk

A power-outage, unexpected reboot, etc can lead to zero byte file
after a saveconfig.

Based on a rtslib-fb patch from Jon Magrini <jmagrini@redhat.com>.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 nvmet/nvme.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nvmet/nvme.py b/nvmet/nvme.py
index fb8dcbd..a05e50c 100644
--- a/nvmet/nvme.py
+++ b/nvmet/nvme.py
@@ -240,7 +240,9 @@ class Root(CFSNode):
             os.fchmod(f.fileno(), stat.S_IRUSR | stat.S_IWUSR)
             f.write(json.dumps(self.dump(), sort_keys=True, indent=2))
             f.write("\n")
+            f.flush()
             os.fsync(f.fileno())
+            f.close()
 
         os.rename(savefile + ".temp", savefile)
 
-- 
GitLab