X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/fe8ab488e9161c46dd9885d58fc52996dc0249ff..d190cdc3f5544636abb56dc1874be391d3e1b148:/bsd/vfs/vfs_xattr.c?ds=sidebyside diff --git a/bsd/vfs/vfs_xattr.c b/bsd/vfs/vfs_xattr.c index a6fc32251..bd38c5f51 100644 --- a/bsd/vfs/vfs_xattr.c +++ b/bsd/vfs/vfs_xattr.c @@ -254,9 +254,11 @@ vn_setxattr(vnode_t vp, const char *name, uio_t uio, int options, vfs_context_t error = default_setxattr(vp, name, uio, options, context); } #if CONFIG_MACF - if ((error == 0) && !(options & XATTR_NOSECURITY) && - (vfs_flags(vnode_mount(vp)) & MNT_MULTILABEL)) - mac_vnode_label_update_extattr(vnode_mount(vp), vp, name); + if ((error == 0) && !(options & XATTR_NOSECURITY)) { + mac_vnode_notify_setextattr(context, vp, name, uio); + if (vfs_flags(vnode_mount(vp)) & MNT_MULTILABEL) + mac_vnode_label_update_extattr(vnode_mount(vp), vp, name); + } #endif out: return (error); @@ -313,9 +315,11 @@ vn_removexattr(vnode_t vp, const char * name, int options, vfs_context_t context #endif /* DUAL_EAS */ } #if CONFIG_MACF - if ((error == 0) && !(options & XATTR_NOSECURITY) && - (vfs_flags(vnode_mount(vp)) & MNT_MULTILABEL)) - mac_vnode_label_update_extattr(vnode_mount(vp), vp, name); + if ((error == 0) && !(options & XATTR_NOSECURITY)) { + mac_vnode_notify_deleteextattr(context, vp, name); + if (vfs_flags(vnode_mount(vp)) & MNT_MULTILABEL) + mac_vnode_label_update_extattr(vnode_mount(vp), vp, name); + } #endif out: return (error); @@ -598,7 +602,7 @@ vnode_flushnamedstream(vnode_t vp, vnode_t svp, vfs_context_t context) } iosize = bufsize = MIN(datasize, NS_IOBUFSIZE); - if (kmem_alloc(kernel_map, (vm_offset_t *)&bufptr, bufsize)) { + if (kmem_alloc(kernel_map, (vm_offset_t *)&bufptr, bufsize, VM_KERN_MEMORY_FILE)) { return (ENOMEM); } auio = uio_create(1, 0, UIO_SYSSPACE, UIO_READ); @@ -941,7 +945,7 @@ retry: size_t iosize; iosize = bufsize = MIN(datasize, NS_IOBUFSIZE); - if (kmem_alloc(kernel_map, (vm_offset_t *)&bufptr, bufsize)) { + if (kmem_alloc(kernel_map, (vm_offset_t *)&bufptr, bufsize, VM_KERN_MEMORY_FILE)) { error = ENOMEM; goto out; } @@ -3215,7 +3219,7 @@ shift_data_down(vnode_t xvp, off_t start, size_t len, off_t delta, vfs_context_t } orig_chunk = chunk; - if (kmem_alloc(kernel_map, (vm_offset_t *)&buff, chunk)) { + if (kmem_alloc(kernel_map, (vm_offset_t *)&buff, chunk, VM_KERN_MEMORY_FILE)) { return ENOMEM; } @@ -3270,7 +3274,7 @@ shift_data_up(vnode_t xvp, off_t start, size_t len, off_t delta, vfs_context_t c orig_chunk = chunk; end = start + len; - if (kmem_alloc(kernel_map, (vm_offset_t *)&buff, chunk)) { + if (kmem_alloc(kernel_map, (vm_offset_t *)&buff, chunk, VM_KERN_MEMORY_FILE)) { return ENOMEM; }