msdosfs: use vfs_timestamp() to generate timestamps instead of getnanotime().

Most filesystems, with the notable exceptions of msdosfs and autofs use
only vfs_timestamp() to read the current time. This has the benefit of
configurable granularity (using the vfs.timestamp_precision sysctl).

For convenience, use it on msdosfs too.

Submitted by:	Damjan Jovanovic
Differential Revision:	https://reviews.freebsd.org/D15297
This commit is contained in:
Pedro F. Giffuni 2018-05-06 21:29:29 +00:00
parent 1e3b21b1b8
commit b732ceb6ca
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=333311
2 changed files with 5 additions and 5 deletions

View File

@ -297,7 +297,7 @@ deupdat(struct denode *dep, int waitfor)
DE_MODIFIED);
return (0);
}
getnanotime(&ts);
vfs_timestamp(&ts);
DETIMES(dep, &ts, &ts, &ts);
if ((dep->de_flag & DE_MODIFIED) == 0 && waitfor == 0)
return (0);

View File

@ -178,7 +178,7 @@ msdosfs_create(struct vop_create_args *ap)
ndirent.de_FileSize = 0;
ndirent.de_pmp = pdep->de_pmp;
ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE;
getnanotime(&ts);
vfs_timestamp(&ts);
DETIMES(&ndirent, &ts, &ts, &ts);
error = createde(&ndirent, pdep, &dep, cnp);
if (error)
@ -216,7 +216,7 @@ msdosfs_close(struct vop_close_args *ap)
VI_LOCK(vp);
if (vp->v_usecount > 1) {
getnanotime(&ts);
vfs_timestamp(&ts);
DETIMES(dep, &ts, &ts, &ts);
}
VI_UNLOCK(vp);
@ -266,7 +266,7 @@ msdosfs_getattr(struct vop_getattr_args *ap)
u_long dirsperblk = pmp->pm_BytesPerSec / sizeof(struct direntry);
uint64_t fileid;
getnanotime(&ts);
vfs_timestamp(&ts);
DETIMES(dep, &ts, &ts, &ts);
vap->va_fsid = dev2udev(pmp->pm_dev);
/*
@ -1330,7 +1330,7 @@ msdosfs_mkdir(struct vop_mkdir_args *ap)
memset(&ndirent, 0, sizeof(ndirent));
ndirent.de_pmp = pmp;
ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE;
getnanotime(&ts);
vfs_timestamp(&ts);
DETIMES(&ndirent, &ts, &ts, &ts);
/*