Package: opensmtpd
Version: 5.3.3p1-2
Severity: normal
Tags: upstream

Sending mail fails on btrfs systems:

  Sep 20 19:44:09 nymn ue[23033]: warn: not enough inodes: 0% left
  Sep 20 19:44:09 nymn ue[23033]: warn: temporarily rejecting messages

This was fixed upstream in commit 7145d4c596. The (hopefully) attached
diff is the upstream commit with a file rename and fuzzy match update.
It works for me.

http://www.mail-archive.com/misc@opensmtpd.org/msg00141.html
https://github.com/poolpOrg/OpenSMTPD/issues/246
https://github.com/poolpOrg/OpenSMTPD/commit/7145d4c5962a43f339b1d8cc8c540dbfc61eb4f9
commit 7145d4c5962a43f339b1d8cc8c540dbfc61eb4f9
Author: Gilles Chehade <gil...@poolp.org>
Date:   Mon Jun 17 10:31:54 2013 +0200

    cope with filesystems that do not keep track of free blocks/inodes

--- a/smtpd/queue_fsqueue.c
+++ b/smtpd/queue_fsqueue.c
@@ -108,6 +108,19 @@
 		return 0;
 	}
 
+
+	/* XXX */
+	/*
+	 * Queue does not run as root so these can't be == 0.
+	 *
+	 * Also, <= 0 means "undefined for this filesystem",
+	 * the tests should be skipped. Remaining code can
+	 * cope with shortage anyway...
+	 *
+	 */
+	if (buf.f_bfree <= 0 || buf.f_ffree <= 0)
+		return 1;
+
 	used = buf.f_blocks - buf.f_bfree;
 	total = buf.f_bavail + used;
 	if (total != 0)

Reply via email to