{"push_id":609510591,"size":27,"distinct_size":27,"ref":"refs/heads/dehacked-wip","head":"50e7a273a19387bf9aeb0827a7c86050e896a519","before":"afae959a9aa1a2e8aa5b4798c3f0d30dc04fd9cc","commits":[{"sha":"a1d3450e947c4399cfa9cd3b0840de55d63b3023","author":{"email":"88bbb1a6348c0e478ee5d2e4d72565d1825e28c5@gmail.com","name":"Hajo Möller"},"message":"Fix warning about AM_INIT_AUTOMAKE arguments\n\nAs of automake 1.14.2, currently shipped with Ubuntu 14.04, automake\nwarns about AM_INIT_AUTOMAKE having more than one argument:\n\nconfigure.ac:41: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more info, see:\nconfigure.ac:41: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation\n\nThis commit fixes the warnings by following above link's advice, so\nAM_INIT gets called with the package's name and version. As both are\ndefined in the META file we're parsing it with `grep`, `cut` and `tr`.\n\nNOTE: autoconf < 1.14 not supporting m4_esyscmd_s so m4_esyscmd was\nused and modified `tr` to truncate newlines, too.\n\nSigned-off-by: Hajo M<C3><B6>ller <dasjoe@gmail.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3174","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/a1d3450e947c4399cfa9cd3b0840de55d63b3023"},{"sha":"40749aa7a6318e5588d4be1c40165e8d0ef6c44f","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Use MUTEX_FSTRANS on l2arc_buflist_mtx\n\nUse MUTEX_FSTRANS on l2arc_buflist_mtx to prevent the following deadlock\nscenario:\n1. arc_release() -> hash_lock -> l2arc_buflist_mtx\n2. l2arc_write_buffers() -> l2arc_buflist_mtx -> (direct reclaim) ->\n   arc_buf_remove_ref() -> hash_lock\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Signed-off-by: Tim Chase <tim@chase2k.com>\nIssue #3160","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/40749aa7a6318e5588d4be1c40165e8d0ef6c44f"},{"sha":"b1a3e93217e6e474e86345010469994c066cf875","author":{"email":"ae7481973e6c9f63ea91e7cd1b77d8821b8e072d@bayour.com","name":"Turbo Fredriksson"},"message":"Move duplicate information about the 'zfs send -e' option.\n\nThe extra one was under the 'zfs receive' command (which isn't relevant).\nInstead, it should have been further up (still in the 'zfs send' option).\n\nSigned-off-by: Turbo Fredriksson <turbo@bayour.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3194","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/b1a3e93217e6e474e86345010469994c066cf875"},{"sha":"5c3f61eb498e8124858b1369096bf64b86a938e7","author":{"email":"0e6295540f566aad05a0dc0d8facf057c9f8e443@clusterhq.com","name":"Richard Yao"},"message":"Increase Linux pipe buffer size on 'zfs receive'\n\nI noticed when reviewing documentation that it is possible for user\nspace to use fctnl(fd, F_SETPIPE_SZ, (unsigned long) size) to change\nthe kernel pipe buffer size on Linux to increase the pipe size up to\nthe value specified in /proc/sys/fs/pipe-max-size. There are users using\nmbuffer to improve zfs recv performance when piping over the network, so\nit seems advantageous to integrate such functionality directly into the\nzfs recv tool. This avoids the addition of two buffers and two copies\n(one for the buffer mbuffer adds and another for the additional pipe),\nso it should be more efficient.\n\nThis could have been made configurable and/or this could have changed\nthe value back to the original after we were done with the file\ndescriptor, but I do not see a strong case for doing either, so I\nwent with a simple implementation.\n\nSigned-off-by: Richard Yao <ryao@gentoo.org>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nIssue #1161","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/5c3f61eb498e8124858b1369096bf64b86a938e7"},{"sha":"285addd683f0d8be6c983213f750df2c3214c9da","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Fix arc_meta_max accounting\n\nThe arc_meta_max value should be increased when space it consumed not when\nit is returned.  This ensure's that arc_meta_max is always up to date.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Pavel Snajdr <snajpa@snajpa.net>\nIssue #3160","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/285addd683f0d8be6c983213f750df2c3214c9da"},{"sha":"3715e7958b994ada53cf660610a70ba4c3b66ed9","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Restructure per-filesystem reclaim\n\nOriginally when the ARC prune callback was introduced the idea was\nto register a single callback for the ZPL.  The ARC could invoke this\ncall back if it needed the ZPL to drop dentries, inodes, or other\ncache objects which might be pinning buffers in the ARC.  The ZPL\nwould iterate over all ZFS super blocks and perform the reclaim.\n\nFor the most part this design has worked well but due to limitations\nin 2.6.35 and earlier kernels there were some problems.  This patch\nis designed to address those issues.\n\n1) iterate_supers_type() is not provided by all kernels which makes\nit impossible to safely iterate over all zpl_fs_type filesystems in\na single callback.  The most straight forward and portable way to\nresolve this is to register a callback per-filesystem during mount.\nThe arc_*_prune_callback() functions have always supported multiple\ncallbacks so this is functionally a very small change.\n\n2) Commit 050d22b removed the non-portable shrink_dcache_memory()\nand shrink_icache_memory() functions and didn't replace them with\nequivalent functionality.  This meant that for Linux 3.1 and older\nkernels the ARC had no mechanism to drop dentries and inodes from\nthe caches if needed.  This patch adds that missing functionality\nby calling shrink_dcache_parent() to release dentries which may be\npinning inodes.  This will result in all unused cache entries being\ndropped which is a bit heavy handed but it's the only interface\navailable for old kernels.\n\n3) A zpl_drop_inode() callback is registered for kernels older than\n2.6.35 which do not support the .evict_inode callback.  This ensures\nthat when the last reference on an inode is dropped it is immediately\nremoved from the cache.  If this isn't done than inode can end up on\nthe global unused LRU with no mechanism available to ZFS to drop them.\nSince the ARC buffers are not dropped the hottest inodes can still\nbe recreated without performing disk IO.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Pavel Snajdr <snajpa@snajpa.net>\nIssue #3160","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/3715e7958b994ada53cf660610a70ba4c3b66ed9"},{"sha":"ccab4b99232203e8285266c9af3131f619fa7b40","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Fix arc_adjust_meta() behavior\n\nThe goal of this function is to evict enough meta data buffers from the\nARC in order to enforce the arc_meta_limit.  Achieving this is slightly\nmore complicated than it appears because it is common for data buffers\nto have holds on meta data buffers.  In addition, dnode meta data buffers\nwill be held by the dnodes in the block preventing them from being freed.\nThis means we can't simply traverse the ARC and expect to always find\nenough unheld meta data buffer to release.\n\nTherefore, this function has been updated to make alternating passes\nover the ARC releasing data buffers and then newly unheld meta data\nbuffers.  This ensures forward progress is maintained and arc_meta_used\nwill decrease.  Normally this is sufficient, but if required the ARC\nwill call the registered prune callbacks causing dentry and inodes to\nbe dropped from the VFS cache.  This will make dnode meta data buffers\navailable for reclaim.  The number of total restarts in limited by\nzfs_arc_meta_adjust_restarts to prevent spinning in the rare case\nwhere all meta data is pinned.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Pavel Snajdr <snajpa@snajpa.net>\nIssue #3160","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/ccab4b99232203e8285266c9af3131f619fa7b40"},{"sha":"833369d5c13c88d884e9e81b5d62ede85c59b499","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Add compatibility layer for {kmap,kunmap}_atomic\n\nStarting from linux-2.6.37, {kmap,kunmap}_atomic takes 1 argument instead of 2.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/833369d5c13c88d884e9e81b5d62ede85c59b499"},{"sha":"b65d1a03c86faa87fe71f6d81f837df807758086","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Introduce ABD: linear/scatter dual typed buffer for ARC\n\nzfsolinux currently uses vmalloc backed slab for ARC buffers. There are some\nmajor problems with this approach. One is that 32-bit system have only a\nhandful of vmalloc space. Another is that the fragmentation in slab will easily\ntrigger OOM in busy system.\n\nWith ABD, we use scatterlist to allocate data buffers. In this approach we can\nallocate in HIGHMEM, which alleviates vmalloc space pressure on 32-bit. Also,\nwe don't have to rely on slab, so there's no fragmentation issue.\n\nBut for metadata buffers, we still uses linear buffer from slab. The reason for\nthis is that there are a lot of *_phys pointers directly point to metadata\nbuffers. So it's kind of impractical to change all those code.\n\nCurrently, ABD is not enabled and its API will treat them as normal buffers.\nWe will enable it once all relevant code is modified to use the API.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/b65d1a03c86faa87fe71f6d81f837df807758086"},{"sha":"57c155f0c3be373fbe22e98e77e59e65195899e6","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Modify/Add incremental checksum function for abd_iterate_rfunc\n\nModify/Add incremental fletcher function prototype to match abd_iterate_rfunc\ncallback type. Also, reduce duplicated code a bit in zfs_fletcher.c.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/57c155f0c3be373fbe22e98e77e59e65195899e6"},{"sha":"f9f6b9f8137359d75426c94d86a622783377364a","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Use abd_t in arc.h, ddt.h, dmu.h and zio.h\n\n1. Use abd_t in arc_buf_t->b_data, dmu_buf_t->db_data, zio_t->io_data and\nzio_transform_t->zt_orig_data\n2. zio_* function take abd_t for data\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/f9f6b9f8137359d75426c94d86a622783377364a"},{"sha":"62c60d6985797a9efe14101d156eed590308836a","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Convert zio_checksum to ABD version\n\n1. Add checksum function for abd_t\n2. Use abd_t version checksum function in zio_checksum_table\n3. Make zio_checksum_compute and zio_checksum_error handle abd_t\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/62c60d6985797a9efe14101d156eed590308836a"},{"sha":"c9953867250c5bb083acc27fbf57ab737308b84b","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in arc.c, bpobj.c and bptree.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/c9953867250c5bb083acc27fbf57ab737308b84b"},{"sha":"92306f4d6196fdea4aa64b223c6a848a1eb295c4","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in dbuf.c, ddt.c, dmu*.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/92306f4d6196fdea4aa64b223c6a848a1eb295c4"},{"sha":"e378c05c839708147d70c53afa9391e779a7a819","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in dnode*.c, dsl_*.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/e378c05c839708147d70c53afa9391e779a7a819"},{"sha":"00a0ed6a4918fe09b45590c81d26de3bfd5fd9cd","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in sa_impl.h, sa.c, space_map.c, spa.c, spa_history.c and zil.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/00a0ed6a4918fe09b45590c81d26de3bfd5fd9cd"},{"sha":"f49eb7922bfc8cad50609e1ac162ff86a4fe5e48","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in zap*.c, zfs_fuid.c, zfs_sa.c and zfs_vnops.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/f49eb7922bfc8cad50609e1ac162ff86a4fe5e48"},{"sha":"33435df919bffcd7b7487ab31922042f1de28177","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in zio.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/33435df919bffcd7b7487ab31922042f1de28177"},{"sha":"f4602d1b7edae45a373bc117d3759e7b84e872bf","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in vdev*.c sans vdev_raidz.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/f4602d1b7edae45a373bc117d3759e7b84e872bf"},{"sha":"7197f07e6ee835c86611821ba8f7750d82d4b0db","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in vdev_raidz.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/DeHackEd/zfs/commits/7197f07e6ee835c86611821ba8f7750d82d4b0db"}]}