Print this page
OS-5148 ftruncate at offset should emit proper events
Reviewed by: Bryan Cantrill <bryan@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-3294 add support for inotify
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 24,34 **** * Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T. * All rights reserved. */ /* ! * Copyright (c) 2013, Joyent, Inc. All rights reserved. * Copyright 2015 Nexenta Systems, Inc. All rights reserved. */ #include <sys/param.h> #include <sys/types.h> --- 24,34 ---- * Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T. * All rights reserved. */ /* ! * Copyright (c) 2014, Joyent, Inc. All rights reserved. * Copyright 2015 Nexenta Systems, Inc. All rights reserved. */ #include <sys/param.h> #include <sys/types.h>
*** 1172,1183 **** if (error) return (error); error = nfssetattr(vp, vap, flags, cr); ! if (error == 0 && (mask & AT_SIZE) && vap->va_size == 0) vnevent_truncate(vp, ct); return (error); } static int --- 1172,1188 ---- if (error) return (error); error = nfssetattr(vp, vap, flags, cr); ! if (error == 0 && (mask & AT_SIZE)) { ! if (vap->va_size == 0) { vnevent_truncate(vp, ct); + } else { + vnevent_resize(vp, ct); + } + } return (error); } static int
*** 2686,2700 **** if (error == 0) { if (nvp) vnevent_rename_dest(nvp, ndvp, nnm, ct); - if (odvp != ndvp) - vnevent_rename_dest_dir(ndvp, ct); - ASSERT(ovp != NULL); vnevent_rename_src(ovp, odvp, onm, ct); } if (nvp) { VN_RELE(nvp); } --- 2691,2703 ---- if (error == 0) { if (nvp) vnevent_rename_dest(nvp, ndvp, nnm, ct); ASSERT(ovp != NULL); vnevent_rename_src(ovp, odvp, onm, ct); + vnevent_rename_dest_dir(ndvp, ovp, nnm, ct); } if (nvp) { VN_RELE(nvp); }
*** 4618,4629 **** return (error); va.va_mask = AT_SIZE; va.va_size = bfp->l_start; error = nfssetattr(vp, &va, 0, cr); ! if (error == 0 && bfp->l_start == 0) vnevent_truncate(vp, ct); } else error = EINVAL; } return (error); --- 4621,4637 ---- return (error); va.va_mask = AT_SIZE; va.va_size = bfp->l_start; error = nfssetattr(vp, &va, 0, cr); ! if (error == 0) { ! if (bfp->l_start == 0) { vnevent_truncate(vp, ct); + } else { + vnevent_resize(vp, ct); + } + } } else error = EINVAL; } return (error);