diff options
-rw-r--r-- | src/libserver/rspamd_symcache.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/libserver/rspamd_symcache.c b/src/libserver/rspamd_symcache.c index bd8a5bb91..41aa784b6 100644 --- a/src/libserver/rspamd_symcache.c +++ b/src/libserver/rspamd_symcache.c @@ -952,21 +952,17 @@ rspamd_symcache_save_items (struct rspamd_symcache *cache, const gchar *name) rspamd_snprintf (path, sizeof (path), "%s.new", name); - for (;;) { - fd = open (path, O_CREAT | O_WRONLY | O_EXCL, 00644); + fd = open (path, O_CREAT | O_WRONLY | O_EXCL, 00644); - if (fd == -1) { - if (errno == EEXIST) { - /* Some other process is already writing data, give up silently */ - return TRUE; - } - - msg_err_cache ("cannot open file %s, error %d, %s", path, - errno, strerror (errno)); - return FALSE; + if (fd == -1) { + if (errno == EEXIST) { + /* Some other process is already writing data, give up silently */ + return TRUE; } - break; + msg_err_cache ("cannot open file %s, error %d, %s", path, + errno, strerror (errno)); + return FALSE; } rspamd_file_lock (fd, FALSE); |