Author: jhb
Date: Fri Jan 18 18:43:38 2013
New Revision: 245611
URL: http://svnweb.freebsd.org/changeset/base/245611

Log:
  Use vfs_timestamp() to set file timestamps rather than invoking
  getmicrotime() or getnanotime() directly in NFS.
  
  Reviewed by:  rmacklem, bde
  MFC after:    1 week

Modified:
  head/sys/fs/nfsclient/nfs_clvnops.c
  head/sys/fs/nfsserver/nfs_nfsdport.c
  head/sys/nfsclient/nfs_vnops.c
  head/sys/nfsserver/nfs_srvsubs.c

Modified: head/sys/fs/nfsclient/nfs_clvnops.c
==============================================================================
--- head/sys/fs/nfsclient/nfs_clvnops.c Fri Jan 18 18:24:40 2013        
(r245610)
+++ head/sys/fs/nfsclient/nfs_clvnops.c Fri Jan 18 18:43:38 2013        
(r245611)
@@ -3247,7 +3247,7 @@ nfsfifo_read(struct vop_read_args *ap)
         */
        mtx_lock(&np->n_mtx);
        np->n_flag |= NACC;
-       getnanotime(&np->n_atim);
+       vfs_timestamp(&np->n_atim);
        mtx_unlock(&np->n_mtx);
        error = fifo_specops.vop_read(ap);
        return error;   
@@ -3266,7 +3266,7 @@ nfsfifo_write(struct vop_write_args *ap)
         */
        mtx_lock(&np->n_mtx);
        np->n_flag |= NUPD;
-       getnanotime(&np->n_mtim);
+       vfs_timestamp(&np->n_mtim);
        mtx_unlock(&np->n_mtx);
        return(fifo_specops.vop_write(ap));
 }
@@ -3286,7 +3286,7 @@ nfsfifo_close(struct vop_close_args *ap)
 
        mtx_lock(&np->n_mtx);
        if (np->n_flag & (NACC | NUPD)) {
-               getnanotime(&ts);
+               vfs_timestamp(&ts);
                if (np->n_flag & NACC)
                        np->n_atim = ts;
                if (np->n_flag & NUPD)

Modified: head/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdport.c        Fri Jan 18 18:24:40 2013        
(r245610)
+++ head/sys/fs/nfsserver/nfs_nfsdport.c        Fri Jan 18 18:43:38 2013        
(r245611)
@@ -1476,7 +1476,7 @@ nfsvno_updfilerev(struct vnode *vp, stru
        struct vattr va;
 
        VATTR_NULL(&va);
-       getnanotime(&va.va_mtime);
+       vfs_timestamp(&va.va_mtime);
        (void) VOP_SETATTR(vp, &va, cred);
        (void) nfsvno_getattr(vp, nvap, cred, p, 1);
 }
@@ -2248,7 +2248,6 @@ nfsrv_sattr(struct nfsrv_descript *nd, s
 {
        u_int32_t *tl;
        struct nfsv2_sattr *sp;
-       struct timeval curtime;
        int error = 0, toclient = 0;
 
        switch (nd->nd_flag & (ND_NFSV2 | ND_NFSV3 | ND_NFSV4)) {
@@ -2307,9 +2306,7 @@ nfsrv_sattr(struct nfsrv_descript *nd, s
                        toclient = 1;
                        break;
                case NFSV3SATTRTIME_TOSERVER:
-                       NFSGETTIME(&curtime);
-                       nvap->na_atime.tv_sec = curtime.tv_sec;
-                       nvap->na_atime.tv_nsec = curtime.tv_usec * 1000;
+                       vfs_timestamp(&nvap->na_atime);
                        nvap->na_vaflags |= VA_UTIMES_NULL;
                        break;
                };
@@ -2321,9 +2318,7 @@ nfsrv_sattr(struct nfsrv_descript *nd, s
                        nvap->na_vaflags &= ~VA_UTIMES_NULL;
                        break;
                case NFSV3SATTRTIME_TOSERVER:
-                       NFSGETTIME(&curtime);
-                       nvap->na_mtime.tv_sec = curtime.tv_sec;
-                       nvap->na_mtime.tv_nsec = curtime.tv_usec * 1000;
+                       vfs_timestamp(&nvap->na_mtime);
                        if (!toclient)
                                nvap->na_vaflags |= VA_UTIMES_NULL;
                        break;
@@ -2353,7 +2348,6 @@ nfsv4_sattr(struct nfsrv_descript *nd, s
        u_char *cp, namestr[NFSV4_SMALLSTR + 1];
        uid_t uid;
        gid_t gid;
-       struct timeval curtime;
 
        error = nfsrv_getattrbits(nd, attrbitp, NULL, &retnotsup);
        if (error)
@@ -2488,9 +2482,7 @@ nfsv4_sattr(struct nfsrv_descript *nd, s
                            toclient = 1;
                            attrsum += NFSX_V4TIME;
                        } else {
-                           NFSGETTIME(&curtime);
-                           nvap->na_atime.tv_sec = curtime.tv_sec;
-                           nvap->na_atime.tv_nsec = curtime.tv_usec * 1000;
+                           vfs_timestamp(&nvap->na_atime);
                            nvap->na_vaflags |= VA_UTIMES_NULL;
                        }
                        break;
@@ -2515,9 +2507,7 @@ nfsv4_sattr(struct nfsrv_descript *nd, s
                            nvap->na_vaflags &= ~VA_UTIMES_NULL;
                            attrsum += NFSX_V4TIME;
                        } else {
-                           NFSGETTIME(&curtime);
-                           nvap->na_mtime.tv_sec = curtime.tv_sec;
-                           nvap->na_mtime.tv_nsec = curtime.tv_usec * 1000;
+                           vfs_timestamp(&nvap->na_mtime);
                            if (!toclient)
                                nvap->na_vaflags |= VA_UTIMES_NULL;
                        }

Modified: head/sys/nfsclient/nfs_vnops.c
==============================================================================
--- head/sys/nfsclient/nfs_vnops.c      Fri Jan 18 18:24:40 2013        
(r245610)
+++ head/sys/nfsclient/nfs_vnops.c      Fri Jan 18 18:43:38 2013        
(r245611)
@@ -3458,7 +3458,7 @@ nfsfifo_read(struct vop_read_args *ap)
         */
        mtx_lock(&np->n_mtx);
        np->n_flag |= NACC;
-       getnanotime(&np->n_atim);
+       vfs_timestamp(&np->n_atim);
        mtx_unlock(&np->n_mtx);
        error = fifo_specops.vop_read(ap);
        return error;   
@@ -3477,7 +3477,7 @@ nfsfifo_write(struct vop_write_args *ap)
         */
        mtx_lock(&np->n_mtx);
        np->n_flag |= NUPD;
-       getnanotime(&np->n_mtim);
+       vfs_timestamp(&np->n_mtim);
        mtx_unlock(&np->n_mtx);
        return(fifo_specops.vop_write(ap));
 }
@@ -3497,7 +3497,7 @@ nfsfifo_close(struct vop_close_args *ap)
 
        mtx_lock(&np->n_mtx);
        if (np->n_flag & (NACC | NUPD)) {
-               getnanotime(&ts);
+               vfs_timestamp(&ts);
                if (np->n_flag & NACC)
                        np->n_atim = ts;
                if (np->n_flag & NUPD)

Modified: head/sys/nfsserver/nfs_srvsubs.c
==============================================================================
--- head/sys/nfsserver/nfs_srvsubs.c    Fri Jan 18 18:24:40 2013        
(r245610)
+++ head/sys/nfsserver/nfs_srvsubs.c    Fri Jan 18 18:43:38 2013        
(r245611)
@@ -1393,7 +1393,7 @@ nfsm_srvsattr_xx(struct vattr *a, struct
                toclient = 1;
                break;
        case NFSV3SATTRTIME_TOSERVER:
-               getnanotime(&(a)->va_atime);
+               vfs_timestamp(&a->va_atime);
                a->va_vaflags |= VA_UTIMES_NULL;
                break;
        }
@@ -1409,7 +1409,7 @@ nfsm_srvsattr_xx(struct vattr *a, struct
                a->va_vaflags &= ~VA_UTIMES_NULL;
                break;
        case NFSV3SATTRTIME_TOSERVER:
-               getnanotime(&(a)->va_mtime);
+               vfs_timestamp(&a->va_mtime);
                if (toclient == 0)
                        a->va_vaflags |= VA_UTIMES_NULL;
                break;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to