{"push_id":612796213,"size":68,"distinct_size":9,"ref":"refs/heads/mount-uidgid","head":"72d7e19df49697950b3eef2e388b24d41d8fb140","before":"22e1895a94ff02beb7893bbe05228c63c7961500","commits":[{"sha":"3c832b8cc13bb4e570b317c30b146bb072e08f58","author":{"email":"5ee0edb9e2229c0838f1959779f1949031de0123@chase2k.com","name":"Tim Chase"},"message":"Linux 3.12 compat: split shrinker has s_shrink\n\nThe split count/scan shrinker callbacks introduced in 3.12 broke the\ntest for HAVE_SHRINK, effectively disabling the per-superblock shrinkers.\n\nThis patch re-enables the per-superblock shrinkers when the split shrinker\ncallbacks have been detected.\n\nSigned-off-by: Tim Chase <tim@chase2k.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #2975","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/3c832b8cc13bb4e570b317c30b146bb072e08f58"},{"sha":"841c9d43c725334a0a4b6174b6e1adea24f16cdd","author":{"email":"c64f7f1e6060e851acfe9b5bdea00a17cb81871c@gentoo.org","name":"Richard Yao"},"message":"Use kmem_vasprintf() in log_internal()\n\nAn attempt to debug zfsonlinux/zfs#2781 revealed that this code could be\nsimplified by using kmem_asprintf(). It is not clear that switching to\nkmem_asprintf() addresses zfsonlinux/zfs#2781. However, switching to\nkmem_asprintf() is cleanup that simplifies debugging such that it would\nbecome clear that this is a bug in glibc should the issue persist.\n\nIt also brings this function almost back in sync with Illumos.  This\nwas possible due to the recently reworked kmem code which allows us\nto use KM_SLEEP in the same fashion as Illumos.\n\nSigned-off-by: Richard Yao <ryao@gentoo.org>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #2791\nIssue #2781","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/841c9d43c725334a0a4b6174b6e1adea24f16cdd"},{"sha":"b0cf0676c0beb5dcb149774a3264580a18304ac1","author":{"email":"5ee0edb9e2229c0838f1959779f1949031de0123@chase2k.com","name":"Tim Chase"},"message":"Fix removal of SA in sa_modify_attrs()\n\nThe sa_modify_attrs() function can add, remove or replace an SA.\nThe main loop in the function uses the index \"i\" to iterate over the\nexisting SAs and uses the index \"j\" for writing them into a new buffer\nvia SA_ADD_BULK_ATTR().  The write index, \"j\" is incremented on remove\n(SA_REMOVE) operations which leads to a corruption in the new SA buffer.\nThis patch remove the increment for SA_REMOVE operations.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Tim Chase <tim@chase2k.com>\nSigned-off-by: Ned Bass <bass6@llnl.gov>\nCloses #3028","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/b0cf0676c0beb5dcb149774a3264580a18304ac1"},{"sha":"edd5b80d07544961f8bd184b2d5cc726ea71f5d0","author":{"email":"35c0c104757712978a110a5d6b64d40cc6c261b0@gmail.com","name":"cburroughs"},"message":"Add arc_summary.py from FreeNAS\n\nThe arc_summary script is a useful utility for administrators on\nother ZFS platforms.  It provides a quick and easy way to get a high\nlevel view of the current ARC state.\n\nHistorically this was a perl script but it was rewritten in python\nfor FreeNAS.  We've decided to adopt the python version instead of\nthe perl version for a few reasons.\n\n1) ZoL has no existing perl dependencies, but it does have a python\n   dependency for scripts such as arcstat.py and dbufstat.py.  Using\n   python for arc_summary.py helps us minimize dependencies.\n\n2) Most major Linux distributions already depend heavily on python\n   for their core infrastructure.  This means it's very likely to\n   be available even very early in the boot process.\n\nOriginal source:\n  https://github.com/freenas/freenas/blob/master/gui/tools/arc_summary.py\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: cburroughs <chris.burroughs@gmail.com>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/edd5b80d07544961f8bd184b2d5cc726ea71f5d0"},{"sha":"53dc1139e7de76045b73ff9c72d75b81653b7012","author":{"email":"35c0c104757712978a110a5d6b64d40cc6c261b0@gmail.com","name":"cburroughs"},"message":"Modified arc_summary.py to run on linux\n\n1) Comment out stat sections whose kstats are not currently available\n2) Port most of arc_summary to use spl kstats\n3) Enable l2arc stats\n5) Include compressed l2size\n4) Minor style fixes / cleanup\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: cburroughs <chris.burroughs@gmail.com>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/53dc1139e7de76045b73ff9c72d75b81653b7012"},{"sha":"3bfc7f1b2052a794ffceb6a33f5b21f613a479dc","author":{"email":"6cbdc4b8cddf52bd57954384a4fc411f1c95cb19@llnl.gov","name":"Kyle Blatter"},"message":"Refactor arc_summary to simplify -p processing\n\nThe -p option is used to specify a specific page of output to be\ndisplayed. If omitted, all output pages would be displayed.\n\narc_summary, as it stood, had really kludgy processing code for\nprocessing the -p option. It relied on a try-except block which was\ntreated as an if statement and in normal operation would fail any time a\nuser didn't specify the -p option on the command line. When the\nexception was thrown, the script would then display all output pages.\nThis happened whether the -p option was omitted or malformed. Thus, in\nthe principle use case, an exception would be raised in order to run the\nscript as desired. The same except code would be called regardless of\nthe exception, however, and malformed -p arguments would also cause the\nscript to execute.\n\nAdditionally, this required the function which handles the case where\nall output pages were to be displayed, _call_all, to be potentially\ncalled from several locations within main.\n\nThis commit refactors the option processing code to simplify it and make\nit easier to catch runtime errors in the script. This is done by\nspecializing the try-except block to only have an exception when the -p\nargument is malformed. When the -p option is correctly selected by the\nuser, it calls a function in the unSub array directly, which will only\ndisplay one page of output.\n\nFinally in the context of this refactoring the page breaks have been\nremoved.  Pages seem to have been added into the output in the FreeNAS\nversion of the script. This patch removes pages from the output to more\nclosely resemble the freebsd version of the script.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/3bfc7f1b2052a794ffceb6a33f5b21f613a479dc"},{"sha":"6427f39fe08a14e30525b060d606c59d257af94a","author":{"email":"6cbdc4b8cddf52bd57954384a4fc411f1c95cb19@llnl.gov","name":"Kyle Blatter"},"message":"Add a help option with usage information\n\nAdd a basic help option and usage description which is consistent\nwith arcstat.py and dbufstat.py.  This also adds support for long\nopts.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/6427f39fe08a14e30525b060d606c59d257af94a"},{"sha":"65dc685a1db00d741bf75d9df98c8e0e25bf2a71","author":{"email":"6cbdc4b8cddf52bd57954384a4fc411f1c95cb19@llnl.gov","name":"Kyle Blatter"},"message":"Force all lines to be 80 columns\n\nEnsure this script conforms to the projects style guidelines\nby limiting line length to 80 columns.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/65dc685a1db00d741bf75d9df98c8e0e25bf2a71"},{"sha":"a6445855492faf94b393e8b6cf7d00f6c8c895f0","author":{"email":"6cbdc4b8cddf52bd57954384a4fc411f1c95cb19@llnl.gov","name":"Kyle Blatter"},"message":"Replace sysctl summary with tunables summary.\n\nThe original script displayed tunable parameters using sysctl calls.\nThis patch modifies this by displaying tunable parameters found in\n/sys/modules/zfs/parameters/. modinfo calls are used to capture\ndescriptions.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/a6445855492faf94b393e8b6cf7d00f6c8c895f0"},{"sha":"a485efc4cd7589ec7993aee4b0746a05f42409d5","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Merge branch 'arc_summary_draft_v2'\n\nAdd a port of arc_summary.py to ZFS on Linux, arc_summary.py is a\nstandard tool in FreeBSD and Illumos. The version of the script used\nfor the port originally came from FreeNAS.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Kyle Blatter <kyleblatter@llnl.gov>\nSigned-off-by: Ned Bass <bass6@llnl.gov>\nCloses #2920","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/a485efc4cd7589ec7993aee4b0746a05f42409d5"},{"sha":"6466b61db6b4def6b077882ebbd4c3e83e917613","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Make `zpool import -d|-c` behave consistently\n\nWhen importing pools with zpool import -aN there is inconsistent\nbehavior between '-d /dev/disk/by-id' (or another path) and\n'-c /etc/zfs/zpool.cache'.\n\nThe difference in behavior is caused by zpool_find_import_cached()\nreturning an empty nvlist_t when there are no pools to import but\nzpool_find_import_impl() returns NULL for the same situation. The\nbehavior of zpool_find_import_cached() is arguably more correct\nbecause it allows returning NULL to be used for an error case and\nnot an empty set.\n\nThis change resolves the issue by updating get_configs() such that\nit returns an empty set instead of NULL when no config is found.\nThe updated behavior will now always return 0 for this case.\n\n$ zpool import -aN; echo $?\nno pools available to import\n0\n\n$ zpool import -aN -d /var/tmp/; echo $?\nno pools available to import\n0\n\n$ zpool import -aN -c /etc/zfs/zpool.cache; echo $?\nno pools available to import\n0\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #2080","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/6466b61db6b4def6b077882ebbd4c3e83e917613"},{"sha":"f9f431cd28ed6a78a2659758ce4a83c4c76fc3a1","author":{"email":"c64f7f1e6060e851acfe9b5bdea00a17cb81871c@gentoo.org","name":"Richard Yao"},"message":"Use (void) memcpy(), not (void *) memcpy()\n\nThis was caught by Clang.  Clearly the intent of this code was\nto explicitly ignore the return value.\n\nSigned-off-by: Richard Yao <ryao@gentoo.org>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3054","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/f9f431cd28ed6a78a2659758ce4a83c4c76fc3a1"},{"sha":"a127e841dee20340b300e98b6d4b62f9ad41a47b","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Add zvol_open() error handling for readonly property\n\nRather than ASSERT when for some reason the readonly property of\na zvol can't be read cleanly handle the failure.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #1343","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/a127e841dee20340b300e98b6d4b62f9ad41a47b"},{"sha":"0365064a9726f6bb6e148611a6e42fa80302d083","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Handle closing an unopened ZVOL\n\nThank to commit a4430fce691d492aec382de0dfa937c05ee16500 we're\nnow correctly returning EROFS when opening a zvol on a read-only\npool.  Unfortunately, it looks like this causes us to trigger\nsome unexpected behavior by __blkdev_get().\n\nIn the failure case it's possible __blkdev_get() will call\n__blkdev_put() for a bdev which was never successfully opened.\nThis results in us trying to close the device again and hitting\nthe NULL dereference.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #1343","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/0365064a9726f6bb6e148611a6e42fa80302d083"},{"sha":"854f30a91fc6a2accc6bf49cb7fcc52b498fda2a","author":{"email":"ebf978237c6e59651e11d99d9ffc66072d4c2aa4@llnl.gov","name":"Chris Dunlap"},"message":"Protect against adding duplicate strings in ZED\n\nThe zed_strings container stores strings in an AVL, but does not\ncheck for duplicate strings being added.  Within the AVL, strings\nare indexed by the string value itself.  avl_add() requires the node\nbeing added must not already exist in the tree, and will assert()\nif this is not the case.\n\nThis should not cause problems in practice.  ZED uses this container\nin two places.  In zed_conf.c, it is used to store the names of\nenabled zedlets as zed scans the zedlet directory listing; duplicate\nentries cannot occur here since duplicate names cannot occur within\na directory.  In zed_event.c, it is used to store the environment\nvariables (as \"NAME=VALUE\" strings) that will be passed to zedlets;\nduplicate strings here should never happen unless there is a bug\nresulting in a duplicate nvpair or environment variable.\n\nThis commit protects against adding a duplicate to a zed_strings\ncontainer by first checking for the string being added, and removing\nthe previous entry should one exist.  This implements a \"last one\nwins\" policy.\n\nThis commit also changes the prototype for zed_strings_add() to allow\nthe string key (by which it is indexed in the AVL) to differ from\nthe string value.  By adding zedlet environment variables using the\nvariable name as the key, multiple adds for the same variable name\nwill result in only the last value being stored.\n\nFinally, this commit routes all additions of zedlet environment\nvariables through the updated _zed_event_add_var().  This ensures\nall zedlet environment variable names are properly converted.\n\nSigned-off-by: Chris Dunlap <cdunlap@llnl.gov>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3042","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/854f30a91fc6a2accc6bf49cb7fcc52b498fda2a"},{"sha":"2c41df5bf8327f3bc6ee25cf2aa570bb159cb348","author":{"email":"ebf978237c6e59651e11d99d9ffc66072d4c2aa4@llnl.gov","name":"Chris Dunlap"},"message":"Cleanup _zed_event_add_nvpair()\n\nWhen _zed_event_add_var() was updated to be the common routine\nfor adding zedlet environment variables, an additional snprintf()\nwas added to the processing of each nvpair.  This commit changes\n_zed_event_add_nvpair() to directly call _zed_event_add_var()\nfor nvpair non-array types, thereby removing a superfluous call to\nsnprintf().  For consistency, the helper functions for converting\nnvpair array types are similarly adjusted to add variables.\n\nThe _zed_event_value_is_hex() and _zed_event_add_var() functions have\nbeen moved up in the file since forward declarations are not used,\nbut no changes have been made to these functions.\n\nSigned-off-by: Chris Dunlap <cdunlap@llnl.gov>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3042","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/2c41df5bf8327f3bc6ee25cf2aa570bb159cb348"},{"sha":"19ea3d25df99995d2e62592cd6bc74f883f0e8e0","author":{"email":"32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","name":"Brian Behlendorf"},"message":"Use zio buffers in zil_itx_create()\n\nThe zil_itx_create() function uses the vmem_alloc() allocator for\nits buffers because when logging a write that buffer may be as large\nas 64K.  This is non-optimal because we may need to allocate many of\nof these buffers and this interface has the potential to be slow.\nInstead, use zio_data_buf_alloc() which is specifically designed to\nbe able to efficiently allocate a wide range of buffer sizes.\n\nIn addition, do some cleanup and use the zil_itx_destroy() function\nto always free an itx structure.  This way we're always sure the\nright allocation functions are used.  Notice that in the current\ncode kmem_free() and vmem_free() were both used.  This happened to\nwork because these wrappers map to the same internal SPL function.\n\nThis was identified as a potential problem when a low-end memory\nconstrained system began logging the following warnings.  There\nwas no deadlock here just repeated allocation failures resulting\nin increased latency.\n\nPossible memory allocation deadlock: size=65792 lflags=0x42d0\nPid: 20118, comm: kvm Tainted: P           O 3.2.0-0.bpo.4-amd64\nCall Trace:\n [<ffffffffa040b834>] ? spl_kmem_alloc_impl+0x115/0x127 [spl]\n [<ffffffffa040b84f>] ? spl_kmem_alloc_debug+0x9/0x36 [spl]\n [<ffffffffa05d8a0b>] ? zil_itx_create+0x2d/0x59 [zfs]\n [<ffffffffa05c71e6>] ? zfs_log_write+0x13a/0x2f0 [zfs]\n [<ffffffffa05d41bc>] ? zfs_write+0x85b/0x9bb [zfs]\n [<ffffffffa05e37ec>] ? zpl_aio_write+0xca/0x110 [zfs]\n [<ffffffff811088e5>] ? do_sync_readv_writev+0xa3/0xde\n [<ffffffff81108f41>] ? do_readv_writev+0xaf/0x125\n [<ffffffff81109055>] ? sys_pwritev+0x55/0x9a\n [<ffffffff813721d2>] ? system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nSigned-off-by: Richard Yao <ryao@gentoo.org>\nCloses #3059","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/19ea3d25df99995d2e62592cd6bc74f883f0e8e0"},{"sha":"037763e44e0f6d7284e9328db988a89fdc975a4e","author":{"email":"97e77871b5fcc4941bebceb4338c97c1fd149f8c@FreeBSD.org","name":"avg"},"message":"fix l2arc compression buffers leak\n\nCommit log from FreeBSD:\n\n    We have observed that arc_release() can be called concurrently with a\n    l2arc in-flight write.  Also, we have observed that arc_hdr_destroy()\n    can be called from arc_write_done() for a zio with ZIO_FLAG_IO_REWRITE\n    flag in similar circumstances.\n\n    Previously the l2arc headers would be freed while leaking their\n    associated compression buffers.  Now the buffers are placed on\n    l2arc_free_on_write list for delayed freeing.  This is similar to\n    what was already done to arc buffers that were supposed to be freed\n    concurrently with in-flight writes of those buffers.\n\n    In addition to fixing the discovered leaks this change also adds\n    some protective code to assert that a compression buffer associated\n    with a l2arc header is never leaked.\n\n    A new kstat l2_cdata_free_on_write is added.  It keeps a count\n    of delayed compression buffer frees which previously would have\n    been leaks.\n\n    Tested by:  Vitalij Satanivskij <satan@ukr.net> et al\n    Requested by:       many\n    MFC after:  2 weeks\n    Sponsored by:       HybridCluster / ClusterHQ\n\nReferences:\n    https://illumos.org/issues/5222\n    https://github.com/freebsd/freebsd/commit/b98f85d\n    http://thread.gmane.org/gmane.os.freebsd.current/155757/focus=155781\n    http://lists.open-zfs.org/pipermail/developer/2014-January/000455.html\n    http://lists.open-zfs.org/pipermail/developer/2014-February/000523.html\n\nPorted-by: Tim Chase <tim@chase2k.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3029","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/037763e44e0f6d7284e9328db988a89fdc975a4e"},{"sha":"aa2ef419e46b3ad7c2ad8848b7a308a5a949aba7","author":{"email":"5ee0edb9e2229c0838f1959779f1949031de0123@chase2k.com","name":"Tim Chase"},"message":"Spurious ENOMEM returns when reading dbufs kstat\n\nCommit 7b2d78a046aa4695d434478a439a9438521d73af fixed some improper uses\nof snprintf(), however, in __dbuf_stats_hash_table_data() the return\nvalue of snprintf is propagated to the caller.  This caused spurious\nENOMEM errors when reading the dbufs kstat.\n\nThis commit causes the actual number of characters written to be returned.\n\nSigned-off-by: Tim Chase <tim@chase2k.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3072","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/aa2ef419e46b3ad7c2ad8848b7a308a5a949aba7"},{"sha":"53698a453d1cc318f99477fef596c476b4b0cb47","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Read spl_hostid module parameter before gethostid()\n\nIf spl_hostid is set via module parameter, it's likely different from\ngethostid(). Therefore, the userspace tool should read it first before\nfalling back to gethostid().\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #3034","distinct":false,"url":"https://api.github.com/repos/dweeezil/zfs/commits/53698a453d1cc318f99477fef596c476b4b0cb47"}]}