Illumos #3137 L2ARC compression
[zfs.git] / module / zfs / dmu_objset.c
index ca75e52..52d55d5 100644 (file)
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  */
 
 /* Portions Copyright 2010 Robert Milkowski */
@@ -274,6 +275,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,
@@ -1119,9 +1122,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