Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jun 2020 15:22:25 +0000 (UTC)
From:      Niclas Zeising <zeising@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r538811 - in head/databases/rrdtool: . files
Message-ID:  <202006141522.05EFMPFa038270@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: zeising
Date: Sun Jun 14 15:22:25 2020
New Revision: 538811
URL: https://svnweb.freebsd.org/changeset/ports/538811

Log:
  databases/rrdtool: Fix resize on ZFS
  
  Add an upstream patch that fixes resize on ZFS.  Since ZFS does not support
  posix_fallocate(), returning EINVAL, the patch simply ignores this error
  from posix_fallocate().
  
  PR:		245898
  Reported by:	Tomohiro Hosaka
  MFH:		2020Q2

Added:
  head/databases/rrdtool/files/patch-8829fa7.c   (contents, props changed)
Modified:
  head/databases/rrdtool/Makefile

Modified: head/databases/rrdtool/Makefile
==============================================================================
--- head/databases/rrdtool/Makefile	Sun Jun 14 15:19:27 2020	(r538810)
+++ head/databases/rrdtool/Makefile	Sun Jun 14 15:22:25 2020	(r538811)
@@ -3,7 +3,7 @@
 
 PORTNAME=	rrdtool
 PORTVERSION=	1.7.2
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	databases graphics
 MASTER_SITES=	http://oss.oetiker.ch/rrdtool/pub/
 

Added: head/databases/rrdtool/files/patch-8829fa7.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/rrdtool/files/patch-8829fa7.c	Sun Jun 14 15:22:25 2020	(r538811)
@@ -0,0 +1,35 @@
+From 8829fa758f3e585f20094cff69b32489f4cce3e7 Mon Sep 17 00:00:00 2001
+From: Niclas Zeising
+Date: Sun, 14 Jun 2020 11:31:33 +0200
+Subject: [PATCH] rrd_open: Ignore EINVAL from posix_fallocate()
+
+ZFS on FreeBSD (at least) does not support posix_fallocate(),
+returning EINVAL instead.  Ignore this error and continue normally.
+Without this change, it is not possible to resize rrd files on ZFS.
+
+This fixes #1082
+
+Signed-off-by: Niclas Zeising
+---
+ src/rrd_open.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/rrd_open.c b/src/rrd_open.c
+index d8005fe4..00dfb8ca 100644
+--- src/rrd_open.c
++++ src/rrd_open.c
+@@ -363,7 +363,13 @@ rrd_file_t *rrd_open(
+          */
+         int       fret =
+             posix_fallocate(rrd_simple_file->fd, 0, newfile_size);
+-        if (fret) {
++        /* ZFS (on FreeBSD) does not support posix_fallocate(), always returning
++         * EINVAL.  Ignore this error and continue anyway.
++         * Without this, resize isn't possible on ZFS filesystems.
++         */
++        if (fret == EINVAL) {
++            /* DO NOTHING */
++        } else if (fret) {
+             rrd_set_error("posix_fallocate '%s': %s", file_name,
+                           rrd_strerror(fret));
+             goto out_close;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202006141522.05EFMPFa038270>