X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fzfs_vnops.c;h=00534d845ca6cd9e8ad8ee5f4373cd8ed9c54c39;hb=0d3ac5e7356d29fbb7d2880c0a0c457656355ca0;hp=cb66741c2adf2d4d1be31f6c07fd75570c4ebed0;hpb=126400a1ca656d41dea9d2ad88afbec3ed32d391;p=zfs.git diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c index cb66741..00534d8 100644 --- a/module/zfs/zfs_vnops.c +++ b/module/zfs/zfs_vnops.c @@ -2335,7 +2335,7 @@ zfs_setattr(struct inode *ip, vattr_t *vap, int flags, cred_t *cr) zfs_acl_t *aclp; boolean_t skipaclchk = (flags & ATTR_NOACLCHECK) ? B_TRUE : B_FALSE; boolean_t fuid_dirtied = B_FALSE; - sa_bulk_attr_t bulk[7], xattr_bulk[7]; + sa_bulk_attr_t *bulk, *xattr_bulk; int count = 0, xattr_count = 0; if (mask == 0) @@ -2378,6 +2378,9 @@ zfs_setattr(struct inode *ip, vattr_t *vap, int flags, cred_t *cr) tmpxvattr = kmem_alloc(sizeof(xvattr_t), KM_SLEEP); xva_init(tmpxvattr); + bulk = kmem_alloc(sizeof(sa_bulk_attr_t) * 7, KM_SLEEP); + xattr_bulk = kmem_alloc(sizeof(sa_bulk_attr_t) * 7, KM_SLEEP); + /* * Immutable files can only alter immutable bit and atime */ @@ -2918,6 +2921,8 @@ out2: zil_commit(zilog, 0); out3: + kmem_free(xattr_bulk, sizeof(sa_bulk_attr_t) * 7); + kmem_free(bulk, sizeof(sa_bulk_attr_t) * 7); kmem_free(tmpxvattr, sizeof(xvattr_t)); ZFS_EXIT(zsb); return (err);