summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2013-06-06 23:21:41 +0000
committerdelphij <delphij@FreeBSD.org>2013-06-06 23:21:41 +0000
commitb20363fe596a7e3a55d5b62f4d3fdb482c65c47a (patch)
tree6e9e27018db6d629485ac0084334d82a571523be /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
parent1683685bf450140e432ad4f377563bfdfcfb9e19 (diff)
downloadFreeBSD-src-b20363fe596a7e3a55d5b62f4d3fdb482c65c47a.zip
FreeBSD-src-b20363fe596a7e3a55d5b62f4d3fdb482c65c47a.tar.gz
MFV r251474:
* Illumos zfs issue #3137 L2ARC compression Whether or not to compress buffers entering the L2ARC is controlled by "compression" setting on the dataset, when compression is not "off", L2ARC compression is enabled. The compress method is always LZ4 for L2ARC when enabled because it works best for the scenario. MFC after: 2 weeks
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
index 4f8c265..572b02a 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
@@ -21,6 +21,7 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
*/
/* Portions Copyright 2010 Robert Milkowski */
@@ -276,6 +277,8 @@ dmu_objset_open_impl(spa_t *spa, dsl_dataset_t *ds, blkptr_t *bp,
if (DMU_OS_IS_L2CACHEABLE(os))
aflags |= ARC_L2CACHE;
+ if (DMU_OS_IS_L2COMPRESSIBLE(os))
+ aflags |= ARC_L2COMPRESS;
dprintf_bp(os->os_rootbp, "reading %s", "");
err = arc_read(NULL, spa, os->os_rootbp,
@@ -991,9 +994,10 @@ dmu_objset_sync(objset_t *os, zio_t *pio, dmu_tx_t *tx)
dmu_write_policy(os, NULL, 0, 0, &zp);
zio = arc_write(pio, os->os_spa, tx->tx_txg,
- os->os_rootbp, os->os_phys_buf, DMU_OS_IS_L2CACHEABLE(os), &zp,
- dmu_objset_write_ready, dmu_objset_write_done, os,
- ZIO_PRIORITY_ASYNC_WRITE, ZIO_FLAG_MUSTSUCCEED, &zb);
+ os->os_rootbp, os->os_phys_buf, DMU_OS_IS_L2CACHEABLE(os),
+ DMU_OS_IS_L2COMPRESSIBLE(os), &zp, dmu_objset_write_ready,
+ dmu_objset_write_done, os, ZIO_PRIORITY_ASYNC_WRITE,
+ ZIO_FLAG_MUSTSUCCEED, &zb);
/*
* Sync special dnodes - the parent IO for the sync is the root block
OpenPOWER on IntegriCloud