Use truncate_setsize in zfs_setattr
[zfs.git] / module / zfs / zfs_ioctl.c
index 994d65f..39c6091 100644 (file)
@@ -1441,7 +1441,7 @@ zfs_ioc_pool_get_history(zfs_cmd_t *zc)
                return (ENOTSUP);
        }
 
-       hist_buf = kmem_alloc(size, KM_SLEEP);
+       hist_buf = vmem_alloc(size, KM_SLEEP);
        if ((error = spa_history_get(spa, &zc->zc_history_offset,
            &zc->zc_history_len, hist_buf)) == 0) {
                error = ddi_copyout(hist_buf,
@@ -1450,7 +1450,7 @@ zfs_ioc_pool_get_history(zfs_cmd_t *zc)
        }
 
        spa_close(spa, FTAG);
-       kmem_free(hist_buf, size);
+       vmem_free(hist_buf, size);
        return (error);
 }
 
@@ -3455,7 +3455,7 @@ zfs_check_clearable(char *dataset, nvlist_t *props, nvlist_t **errlist)
 
        VERIFY(nvlist_alloc(&errors, NV_UNIQUE_NAME, KM_SLEEP) == 0);
 
-       zc = kmem_alloc(sizeof (zfs_cmd_t), KM_SLEEP);
+       zc = kmem_alloc(sizeof (zfs_cmd_t), KM_SLEEP | KM_NODEBUG);
        (void) strcpy(zc->zc_name, dataset);
        pair = nvlist_next_nvpair(props, NULL);
        while (pair != NULL) {
@@ -4094,7 +4094,7 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc)
        if (error)
                return (error);
 
-       buf = kmem_alloc(bufsize, KM_SLEEP);
+       buf = vmem_alloc(bufsize, KM_SLEEP);
 
        error = zfs_userspace_many(zsb, zc->zc_objset_type, &zc->zc_cookie,
            buf, &zc->zc_nvlist_dst_size);
@@ -4104,7 +4104,7 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc)
                    (void *)(uintptr_t)zc->zc_nvlist_dst,
                    zc->zc_nvlist_dst_size);
        }
-       kmem_free(buf, bufsize);
+       vmem_free(buf, bufsize);
        zfs_sb_rele(zsb, FTAG);
 
        return (error);
@@ -5047,7 +5047,7 @@ zfsdev_ioctl(struct file *filp, unsigned cmd, unsigned long arg)
                error = EFAULT;
 
        if ((error == 0) && !(flag & FKIOCTL))
-               error = zfs_ioc_vec[vec].zvec_secpolicy(zc, NULL);
+               error = zfs_ioc_vec[vec].zvec_secpolicy(zc, CRED());
 
        /*
         * Ensure that all pool/dataset names are valid before we pass down to
@@ -5178,8 +5178,10 @@ _init(void)
        mutex_init(&zfs_share_lock, NULL, MUTEX_DEFAULT, NULL);
 #endif /* HAVE_SHARE */
 
-       printk(KERN_NOTICE "ZFS: Loaded ZFS Filesystem v%s%s\n",
-              ZFS_META_VERSION, ZFS_DEBUG_STR);
+       printk(KERN_NOTICE "ZFS: Loaded module v%s%s, "
+              "ZFS pool version %s, ZFS filesystem version %s\n",
+              ZFS_META_VERSION, ZFS_DEBUG_STR,
+              SPA_VERSION_STRING, ZPL_VERSION_STRING);
 
        return (0);
 
@@ -5214,7 +5216,7 @@ _fini(void)
        tsd_destroy(&zfs_fsyncer_key);
        tsd_destroy(&rrw_tsd_key);
 
-       printk(KERN_NOTICE "ZFS: Unloaded ZFS Filesystem v%s%s\n",
+       printk(KERN_NOTICE "ZFS: Unloaded module v%s%s\n",
               ZFS_META_VERSION, ZFS_DEBUG_STR);
 
        return (0);