summaryrefslogtreecommitdiffstats
path: root/module/zfs/zfs_sa.c
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2014-12-16 11:44:24 -0800
committerBrian Behlendorf <[email protected]>2015-01-16 14:41:28 -0800
commit81971b137ada2097ed73a4364cb896a99d71f578 (patch)
treef4b2a6557308bea2cc3d851e728d1a4585dc4427 /module/zfs/zfs_sa.c
parent285b29d959d3792e45d75c2ce228552d396b445f (diff)
Revert "SA spill block cache"
The SA spill_cache was originally introduced to avoid the need to perform large kmem or vmem allocations. Instead a small dedicated cache of preallocated SA buffers was kept. This solution was viable while the maximum block size was limited to 128K. But with the planned increase of the maximum block size to 16M callers need to migrate to the zio_buf_alloc(). However, they should be aware this interface is expected to change again once the zio buffers are fully backed by scatter-gather lists. Alternately, if the callers know these buffers will never be large or be infrequently accessed they may kmem_alloc() or vmem_alloc() the needed temporary space. This change has the additional benegit of bringing the code back inline with the upstream Illumos source. Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'module/zfs/zfs_sa.c')
-rw-r--r--module/zfs/zfs_sa.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/module/zfs/zfs_sa.c b/module/zfs/zfs_sa.c
index ebe92bb3a..257ab4254 100644
--- a/module/zfs/zfs_sa.c
+++ b/module/zfs/zfs_sa.c
@@ -205,13 +205,13 @@ zfs_sa_get_xattr(znode_t *zp)
return (error);
}
- obj = sa_spill_alloc(KM_SLEEP);
+ obj = zio_buf_alloc(size);
error = sa_lookup(zp->z_sa_hdl, SA_ZPL_DXATTR(zsb), obj, size);
if (error == 0)
error = nvlist_unpack(obj, size, &zp->z_xattr_cached, KM_SLEEP);
- sa_spill_free(obj);
+ zio_buf_free(obj, size);
return (error);
}
@@ -233,7 +233,7 @@ zfs_sa_set_xattr(znode_t *zp)
if (error)
goto out;
- obj = sa_spill_alloc(KM_SLEEP);
+ obj = zio_buf_alloc(size);
error = nvlist_pack(zp->z_xattr_cached, &obj, &size,
NV_ENCODE_XDR, KM_SLEEP);
@@ -256,7 +256,7 @@ zfs_sa_set_xattr(znode_t *zp)
dmu_tx_commit(tx);
}
out_free:
- sa_spill_free(obj);
+ zio_buf_free(obj, size);
out:
return (error);
}