From owner-freebsd-bugs@FreeBSD.ORG Tue Feb 22 05:10:23 2005 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DFD0B16A4CE for ; Tue, 22 Feb 2005 05:10:23 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C605B43D2F for ; Tue, 22 Feb 2005 05:10:23 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.1/8.13.1) with ESMTP id j1M5ANsD082528 for ; Tue, 22 Feb 2005 05:10:23 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.1/8.13.1/Submit) id j1M5ANGH082527; Tue, 22 Feb 2005 05:10:23 GMT (envelope-from gnats) Date: Tue, 22 Feb 2005 05:10:23 GMT Message-Id: <200502220510.j1M5ANGH082527@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Guy Harris Subject: Re: kern/77904: NFS server should set VA_UTIMES_NULL in a v3SETATTR if both the accessed and modified times are NFSV3SATTRTIME_TOSERVER X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Guy Harris List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2005 05:10:24 -0000 The following reply was made to PR kern/77904; it has been noted by GNATS. From: Guy Harris To: freebsd-gnats-submit@FreeBSD.org Cc: Subject: Re: kern/77904: NFS server should set VA_UTIMES_NULL in a v3 SETATTR if both the accessed and modified times are NFSV3SATTRTIME_TOSERVER Date: Mon, 21 Feb 2005 21:05:55 -0800 NetBSD's nfsm_srvsattr() does nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); \ switch (fxdr_unsigned(int, *tl)) { \ case NFSV3SATTRTIME_TOCLIENT: \ nfsm_dissect(tl, u_int32_t *, 2 * NFSX_UNSIGNED); \ fxdr_nfsv3time(tl, &(a)->va_atime); \ break; \ case NFSV3SATTRTIME_TOSERVER: \ (a)->va_atime.tv_sec = time.tv_sec; \ (a)->va_atime.tv_nsec = time.tv_usec * 1000; \ (a)->va_vaflags |= VA_UTIMES_NULL; \ break; \ }; \ nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); \ switch (fxdr_unsigned(int, *tl)) { \ case NFSV3SATTRTIME_TOCLIENT: \ nfsm_dissect(tl, u_int32_t *, 2 * NFSX_UNSIGNED); \ fxdr_nfsv3time(tl, &(a)->va_mtime); \ (a)->va_vaflags &= ~VA_UTIMES_NULL; \ break; \ case NFSV3SATTRTIME_TOSERVER: \ (a)->va_mtime.tv_sec = time.tv_sec; \ (a)->va_mtime.tv_nsec = time.tv_usec * 1000; \ (a)->va_vaflags |= VA_UTIMES_NULL; \ break; \ }; }