Software / code / prosody
Changeset
6997:0ab228bc21c6
util.datamanager: Handle potential issues from fallocate
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 11 Dec 2015 20:24:36 +0100 |
| parents | 6996:644b1bddc676 |
| children | 6998:86607fe755b6 |
| files | util/datamanager.lua |
| diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/util/datamanager.lua Fri Dec 11 20:22:54 2015 +0100 +++ b/util/datamanager.lua Fri Dec 11 20:24:36 2015 +0100 @@ -222,7 +222,16 @@ end local pos = f:seek("end"); ok, msg = fallocate(f, pos, #data); - f:seek("set", pos); + if not ok then + log("warn", "fallocate() failed: %s", tostring(msg)); + -- This doesn't work on every file system + end + + if f:seek() ~= pos then + log("debug", "fallocate() changed file position"); + f:seek("set", pos); + end + if ok then f:write(data); else