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:
parent
1e3b21b1b8
commit
b732ceb6ca
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=333311
@ -297,7 +297,7 @@ deupdat(struct denode *dep, int waitfor)
|
|||||||
DE_MODIFIED);
|
DE_MODIFIED);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
getnanotime(&ts);
|
vfs_timestamp(&ts);
|
||||||
DETIMES(dep, &ts, &ts, &ts);
|
DETIMES(dep, &ts, &ts, &ts);
|
||||||
if ((dep->de_flag & DE_MODIFIED) == 0 && waitfor == 0)
|
if ((dep->de_flag & DE_MODIFIED) == 0 && waitfor == 0)
|
||||||
return (0);
|
return (0);
|
||||||
|
@ -178,7 +178,7 @@ msdosfs_create(struct vop_create_args *ap)
|
|||||||
ndirent.de_FileSize = 0;
|
ndirent.de_FileSize = 0;
|
||||||
ndirent.de_pmp = pdep->de_pmp;
|
ndirent.de_pmp = pdep->de_pmp;
|
||||||
ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE;
|
ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE;
|
||||||
getnanotime(&ts);
|
vfs_timestamp(&ts);
|
||||||
DETIMES(&ndirent, &ts, &ts, &ts);
|
DETIMES(&ndirent, &ts, &ts, &ts);
|
||||||
error = createde(&ndirent, pdep, &dep, cnp);
|
error = createde(&ndirent, pdep, &dep, cnp);
|
||||||
if (error)
|
if (error)
|
||||||
@ -216,7 +216,7 @@ msdosfs_close(struct vop_close_args *ap)
|
|||||||
|
|
||||||
VI_LOCK(vp);
|
VI_LOCK(vp);
|
||||||
if (vp->v_usecount > 1) {
|
if (vp->v_usecount > 1) {
|
||||||
getnanotime(&ts);
|
vfs_timestamp(&ts);
|
||||||
DETIMES(dep, &ts, &ts, &ts);
|
DETIMES(dep, &ts, &ts, &ts);
|
||||||
}
|
}
|
||||||
VI_UNLOCK(vp);
|
VI_UNLOCK(vp);
|
||||||
@ -266,7 +266,7 @@ msdosfs_getattr(struct vop_getattr_args *ap)
|
|||||||
u_long dirsperblk = pmp->pm_BytesPerSec / sizeof(struct direntry);
|
u_long dirsperblk = pmp->pm_BytesPerSec / sizeof(struct direntry);
|
||||||
uint64_t fileid;
|
uint64_t fileid;
|
||||||
|
|
||||||
getnanotime(&ts);
|
vfs_timestamp(&ts);
|
||||||
DETIMES(dep, &ts, &ts, &ts);
|
DETIMES(dep, &ts, &ts, &ts);
|
||||||
vap->va_fsid = dev2udev(pmp->pm_dev);
|
vap->va_fsid = dev2udev(pmp->pm_dev);
|
||||||
/*
|
/*
|
||||||
@ -1330,7 +1330,7 @@ msdosfs_mkdir(struct vop_mkdir_args *ap)
|
|||||||
memset(&ndirent, 0, sizeof(ndirent));
|
memset(&ndirent, 0, sizeof(ndirent));
|
||||||
ndirent.de_pmp = pmp;
|
ndirent.de_pmp = pmp;
|
||||||
ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE;
|
ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE;
|
||||||
getnanotime(&ts);
|
vfs_timestamp(&ts);
|
||||||
DETIMES(&ndirent, &ts, &ts, &ts);
|
DETIMES(&ndirent, &ts, &ts, &ts);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user