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