summaryrefslogtreecommitdiffstats
path: root/sys/fs/msdosfs/msdosfs_vnops.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2014-06-24 08:21:43 +0000
committerkib <kib@FreeBSD.org>2014-06-24 08:21:43 +0000
commit3b207676966493f5897b60f1575ca81297373eb4 (patch)
tree245675f195f5eed0fb417672371ef12b73f813c6 /sys/fs/msdosfs/msdosfs_vnops.c
parentcf140f008f5d28d6463422c17af1c4a6013dd0d6 (diff)
downloadFreeBSD-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.c9
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;
OpenPOWER on IntegriCloud