diff options
author | kib <kib@FreeBSD.org> | 2014-06-24 08:21:43 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-06-24 08:21:43 +0000 |
commit | 3b207676966493f5897b60f1575ca81297373eb4 (patch) | |
tree | 245675f195f5eed0fb417672371ef12b73f813c6 /sys/fs/msdosfs/msdosfs_vnops.c | |
parent | cf140f008f5d28d6463422c17af1c4a6013dd0d6 (diff) | |
download | FreeBSD-src-3b207676966493f5897b60f1575ca81297373eb4.zip FreeBSD-src-3b207676966493f5897b60f1575ca81297373eb4.tar.gz |
MFC r267564:
In msdosfs_setattr(), add a check for result of the utimes(2) permissions test.
Refactor the permission checks for utimes(2).
Diffstat (limited to 'sys/fs/msdosfs/msdosfs_vnops.c')
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vnops.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c index 856ec7c..622917f 100644 --- a/sys/fs/msdosfs/msdosfs_vnops.c +++ b/sys/fs/msdosfs/msdosfs_vnops.c @@ -501,12 +501,9 @@ msdosfs_setattr(ap) if (vap->va_atime.tv_sec != VNOVAL || vap->va_mtime.tv_sec != VNOVAL) { if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); - if (vap->va_vaflags & VA_UTIMES_NULL) { - error = VOP_ACCESS(vp, VADMIN, cred, td); - if (error) - error = VOP_ACCESS(vp, VWRITE, cred, td); - } else - error = VOP_ACCESS(vp, VADMIN, cred, td); + error = vn_utimes_perm(vp, vap, cred, td); + if (error != 0) + return (error); if ((pmp->pm_flags & MSDOSFSMNT_NOWIN95) == 0 && vap->va_atime.tv_sec != VNOVAL) { dep->de_flag &= ~DE_ACCESS; |