Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Sep 2015 00:03:56 +0000 (UTC)
From:      Steven Hartland <smh@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r287886 - head/sys/sys
Message-ID:  <201509170003.t8H03uSf070155@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: smh
Date: Thu Sep 17 00:03:55 2015
New Revision: 287886
URL: https://svnweb.freebsd.org/changeset/base/287886

Log:
  Fix kqueue write events for files > 2GB
  
  Due to the use of int's for file offsets in the VOP_WRITE_(PRE|POST)
  macros, kqueue write events for files greater 2GB where never fired.
  
  This caused tail -f on a file greater 2GB to never see updates.
  
  MFC after:	1 week
  Relnotes:	YES
  Sponsored by:	Multiplay

Modified:
  head/sys/sys/vnode.h

Modified: head/sys/sys/vnode.h
==============================================================================
--- head/sys/sys/vnode.h	Wed Sep 16 23:59:53 2015	(r287885)
+++ head/sys/sys/vnode.h	Thu Sep 17 00:03:55 2015	(r287886)
@@ -797,7 +797,8 @@ void	vop_rename_fail(struct vop_rename_a
 
 #define	VOP_WRITE_PRE(ap)						\
 	struct vattr va;						\
-	int error, osize, ooffset, noffset;				\
+	int error;							\
+	off_t osize, ooffset, noffset;					\
 									\
 	osize = ooffset = noffset = 0;					\
 	if (!VN_KNLIST_EMPTY((ap)->a_vp)) {				\
@@ -805,7 +806,7 @@ void	vop_rename_fail(struct vop_rename_a
 		if (error)						\
 			return (error);					\
 		ooffset = (ap)->a_uio->uio_offset;			\
-		osize = va.va_size;					\
+		osize = (off_t)va.va_size;				\
 	}
 
 #define VOP_WRITE_POST(ap, ret)						\



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