summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ufs/ufs_acl.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2012-02-07 09:51:41 +0000
committerkib <kib@FreeBSD.org>2012-02-07 09:51:41 +0000
commit4880454245aabf4bec7e20cfb1b532d93af38e01 (patch)
tree751574d0fc9da2c9e3cbe8d9a9703d4f6e8e1d1a /sys/ufs/ufs/ufs_acl.c
parentc8229e85eb84646131744ce846be3042ff66393a (diff)
downloadFreeBSD-src-4880454245aabf4bec7e20cfb1b532d93af38e01.zip
FreeBSD-src-4880454245aabf4bec7e20cfb1b532d93af38e01.tar.gz
Sprinkle missed calls to asynchronous UFS_UPDATE() in attempt to
guarantee that all UFS inode metadata changes results in the dirtiness of the inodeblock. Due to missed inodeblock updates, syncer was required to fsync each mount point' vnode to guarantee periodic metadata flush. Reviewed by: mckusick Tested by: scottl MFC after: 2 weeks
Diffstat (limited to 'sys/ufs/ufs/ufs_acl.c')
-rw-r--r--sys/ufs/ufs/ufs_acl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/ufs/ufs/ufs_acl.c b/sys/ufs/ufs/ufs_acl.c
index 1179451..76a4186 100644
--- a/sys/ufs/ufs/ufs_acl.c
+++ b/sys/ufs/ufs/ufs_acl.c
@@ -422,7 +422,8 @@ ufs_setacl_nfs4_internal(struct vnode *vp, struct acl *aclp, struct thread *td)
VN_KNOTE_UNLOCKED(vp, NOTE_ATTRIB);
- return (0);
+ error = UFS_UPDATE(vp, 0);
+ return (error);
}
static int
@@ -591,10 +592,11 @@ ufs_setacl_posix1e(struct vop_setacl_args *ap)
*/
ufs_sync_inode_from_acl(ap->a_aclp, ip);
ip->i_flag |= IN_CHANGE;
+ error = UFS_UPDATE(ap->a_vp, 0);
}
VN_KNOTE_UNLOCKED(ap->a_vp, NOTE_ATTRIB);
- return (0);
+ return (error);
}
int
OpenPOWER on IntegriCloud