Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Nov 2017 13:49:08 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r325320 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201711021349.vA2Dn8Yg063559@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Thu Nov  2 13:49:08 2017
New Revision: 325320
URL: https://svnweb.freebsd.org/changeset/base/325320

Log:
  Disable posix_fallocate(2) for ZFS
  
  The generic (naive) implementation of posix_fallocate cannot provide the
  standard mandated guarantee that overwrites would never fail due to the lack
  of free space.  The fundamental reason is the copy-on-write architecture
  of ZFS.  Other features like compression and deduplication can also
  increase the size difference between the (pre-)allocated dummy content
  and the future content.
  
  So, until ZFS can properly implement the feature it's better to report
  that it is unsupported rather than providing an ersatz implementation.
  Please note that EINVAL is used to report that the underlying file system
  does not support the operation (POSIX.1-2008).
  
  illumos and ZoL seem to do the same.
  
  MFC after:	3 weeks
  Sponsored by:	Panzura

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Thu Nov  2 12:16:50 2017	(r325319)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Thu Nov  2 13:49:08 2017	(r325320)
@@ -6009,6 +6009,7 @@ struct vop_vector zfs_vnodeops = {
 	.vop_inactive =		zfs_freebsd_inactive,
 	.vop_reclaim =		zfs_freebsd_reclaim,
 	.vop_access =		zfs_freebsd_access,
+	.vop_allocate =		VOP_EINVAL,
 	.vop_lookup =		zfs_cache_lookup,
 	.vop_cachedlookup =	zfs_freebsd_lookup,
 	.vop_getattr =		zfs_freebsd_getattr,



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