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
This commit is contained in:
smh 2015-09-17 00:03:55 +00:00
parent 7d0caaa827
commit 512d79f0ab

View File

@ -797,7 +797,8 @@ void vop_rename_fail(struct vop_rename_args *ap);
#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_args *ap);
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) \