{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":437011,"defaultBranch":"master","name":"zfs","ownerLogin":"openzfs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2009-12-14T20:20:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4510897?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714690604.0","currentOid":""},"activityList":{"items":[{"before":"5f220c62e1c24d9fdb2e9beb7d2796eaf4ef6a74","after":"fd51786f86e4e39ce3aa0a4ab8c44935496ff7c2","ref":"refs/heads/master","pushedAt":"2024-06-28T18:21:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tonyhutter","name":"Tony Hutter","path":"/tonyhutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11469457?s=80&v=4"},"commit":{"message":"zfs.4: Document the actual default for zfs_txg_history (#16305)\n\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\n\r\nSigned-off-by: Mateusz Piotrowski <0mp@FreeBSD.org>\r\nReviewed-by: Tony Hutter ","shortMessageHtmlLink":"zfs.4: Document the actual default for zfs_txg_history (#16305)"}},{"before":"49f3ce338587410cabc078646b76152685ae102d","after":"5f220c62e1c24d9fdb2e9beb7d2796eaf4ef6a74","ref":"refs/heads/master","pushedAt":"2024-06-28T17:38:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tonyhutter","name":"Tony Hutter","path":"/tonyhutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11469457?s=80&v=4"},"commit":{"message":"Fix a mis-merge in the zdb man page (#16304)\n\nSponsored-by: Klara, Inc.\r\nSponsored-By: Wasabi Technology, Inc.\r\n\r\nSigned-off-by: Allan Jude \r\nReviewed-by: Paul Dagnelie \r\nReviewed-by: Tony Hutter ","shortMessageHtmlLink":"Fix a mis-merge in the zdb man page (#16304)"}},{"before":"c98295eed2687cee704ef5f8f3218d3d44a6a1d8","after":"49f3ce338587410cabc078646b76152685ae102d","ref":"refs/heads/master","pushedAt":"2024-06-28T16:52:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tonyhutter","name":"Tony Hutter","path":"/tonyhutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11469457?s=80&v=4"},"commit":{"message":"Linux 6.9: Call add_disk() from workqueue to fix zfs_allow_010_pos (#16282)\n\nThe 6.9 kernel behaves differently in how it releases block devices. In\r\nthe common case it will async release the device only after the return\r\nto userspace. This is different from the 6.8 and older kernels which\r\nrelease the block devices synchronously. To get around this, call\r\nadd_disk() from a workqueue so that the kernel uses a different\r\ncodepath to release our zvols in the way we expect. This stops\r\nzfs_allow_010_pos from hanging.\r\n\r\nFixes: #16089\r\n\r\nSigned-off-by: Tony Hutter \r\nReviewed-by: Tino Reichardt \r\nReviewed-by: Rob Norris ","shortMessageHtmlLink":"Linux 6.9: Call add_disk() from workqueue to fix zfs_allow_010_pos (#…"}},{"before":"121a2d335414fe294c948795ee9406bab966588f","after":"c98295eed2687cee704ef5f8f3218d3d44a6a1d8","ref":"refs/heads/master","pushedAt":"2024-06-14T01:08:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"disable automatic dependency tracking for dkms builds\n\nPreviously the dkms build left some unwanted files\r\nin `/usr/lib/modules` which could cause package\r\nmanagers to not properly clean up old kernels.\r\n\r\nReviewed-by: Tony Hutter \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Martin Wagner \r\nCloses #16221 \r\nCloses #16241","shortMessageHtmlLink":"disable automatic dependency tracking for dkms builds"}},{"before":"20c8bdd85ef4716d5e59d9f6f61347c0e4566750","after":"121a2d335414fe294c948795ee9406bab966588f","ref":"refs/heads/master","pushedAt":"2024-06-14T00:49:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"FreeBSD: unregister mountroot eventhandler on unload\n\nOtherwise if zfs is unloaded and reroot is being used it trips over a\r\nstale pointer.\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nSponsored by:\tRubicon Communications, LLC (\"Netgate\")\r\nSigned-off-by: Mateusz Guzik \r\nCloses #16242","shortMessageHtmlLink":"FreeBSD: unregister mountroot eventhandler on unload"}},{"before":"4de260efe3375fe62b9d80452b9203c89ab0c045","after":"20c8bdd85ef4716d5e59d9f6f61347c0e4566750","ref":"refs/heads/master","pushedAt":"2024-06-07T01:11:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"FreeBSD: Update use of UMA-related symbols in arc_available_memory\n\nRecent UMA changes repurposed the use of UMA_MD_SMALL_ALLOC in a way\r\nthat breaks arc_available_memory on -CURRENT. This change\r\nensures that arc_available_memory uses the new symbol\r\nwhile maintaining compatibility with older FreeBSD releases.\r\n \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Bojan Novković \r\nCloses #16230","shortMessageHtmlLink":"FreeBSD: Update use of UMA-related symbols in arc_available_memory"}},{"before":"b558f0a9d65c3bdb8310504184a82e9802551168","after":"4de260efe3375fe62b9d80452b9203c89ab0c045","ref":"refs/heads/master","pushedAt":"2024-06-07T00:37:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"contrib/bash_completion.d: squelch FreeBSD seq when first < last\n\nWith seq x -1 z and x is less than z FreeBSD seq will print the error:\r\n\r\n\t$ seq 1 -1 2\r\n\tseq: needs positive increment\r\n\r\nHide this error. Alternatively $COMP_CWORD could be checked for < 2.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Derek Schrock \r\nCloses #16234","shortMessageHtmlLink":"contrib/bash_completion.d: squelch FreeBSD seq when first < last"}},{"before":"23a489a41167890cdd227366a5f950170df8cc9b","after":"b558f0a9d65c3bdb8310504184a82e9802551168","ref":"refs/heads/master","pushedAt":"2024-06-07T00:01:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zdb: fix FreeBSD build failure \n\nThis fixes FreeBSD build failure with clang-18 after 23a489a got merged.\r\n\r\nReviewed-by: Alexander Motin \r\nReviewed-by: Rob Norris \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Ameer Hamza \r\nCloses #16252","shortMessageHtmlLink":"zdb: fix FreeBSD build failure"}},{"before":"a72751a34265492efc115bb6a773e961bb9be82d","after":"23a489a41167890cdd227366a5f950170df8cc9b","ref":"refs/heads/master","pushedAt":"2024-06-03T23:28:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zdb: detect cachefile automatically otherwise force import\n\nIf a pool is created with the cache file located in a non-default \r\npath /etc/default/zpool.cache, removed, or the cachefile property \r\nis set to none, zdb fails to show the pool unless we specify the \r\ncache file or use the -e option. This PR automates this process.\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nReviewed-by: Akash B \r\nSigned-off-by: Ameer Hamza \r\nCloses #16071","shortMessageHtmlLink":"zdb: detect cachefile automatically otherwise force import"}},{"before":"a301dc364c336bee58950f88e040f825df840b60","after":"a72751a34265492efc115bb6a773e961bb9be82d","ref":"refs/heads/master","pushedAt":"2024-05-31T22:25:37.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"icp: remove redundant FreeBSD check\n\nWe don't build illumos-crypto for FreeBSD.\n\nSponsored-by: Klara, Inc.\nSponsored-by: Wasabi Technology, Inc.\nReviewed-by: Brian Behlendorf \nSigned-off-by: Rob Norris \nCloses #16209","shortMessageHtmlLink":"icp: remove redundant FreeBSD check"}},{"before":"e2357561b9499296bff758afe4868dbc39735675","after":"a301dc364c336bee58950f88e040f825df840b60","ref":"refs/heads/master","pushedAt":"2024-05-31T22:11:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"ZTS: Fix redacted_send failures on FreeBSD\n\nWe're seeing failures for redacted_deleted and redacted_mount\r\non FreeBSD 13-15:\r\n\r\n 09:58:34.74 diff: /dev/fd/3: No such file or directory\r\n 09:58:34.74 ERROR: diff /dev/fd/3 /dev/fd/4 exited 2\r\n\r\nThe test was trying to diff the file listings between two directories to\r\nsee if they are the same. The workaround is to do a string comparison\r\nof the directory listings instead of using `diff`.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Tony Hutter \r\nCloses #16224","shortMessageHtmlLink":"ZTS: Fix redacted_send failures on FreeBSD"}},{"before":"5137c132a5e82b2e799ad3ee5d82fb32b500e5a4","after":"e2357561b9499296bff758afe4868dbc39735675","ref":"refs/heads/master","pushedAt":"2024-05-30T16:58:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"FreeBSD: Add const qualifier to members of struct opensolaris_utsname\n\nThese members have directly references to the global variables\r\nexposed by the kernel. They are not going to be changed by this\r\nkernel module.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Zhenlei Huang \r\nCloses #16210","shortMessageHtmlLink":"FreeBSD: Add const qualifier to members of struct opensolaris_utsname"}},{"before":"4c0fbd8d6d1565ba2dd3d403a2bb42e2b6c64ec0","after":"2eab4f7b396a1abb9adf7cab82d6ff47f9d78e9b","ref":"refs/heads/zfs-2.2.5-staging","pushedAt":"2024-05-29T20:35:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Fix assertion in Persistent L2ARC\n\nAt the end of l2arc_evict() fix an assertion in the case that l2ad_hand\r\n+ distance == l2ad_end.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: George Amanakis \r\nCloses #16202\r\nCloses #16207","shortMessageHtmlLink":"Fix assertion in Persistent L2ARC"}},{"before":"ae22044da998e27497c3ad6724a0c64c89cfd87f","after":"5137c132a5e82b2e799ad3ee5d82fb32b500e5a4","ref":"refs/heads/master","pushedAt":"2024-05-29T20:34:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zpool import output is not formated properly.\n\nThe 'zpool status' output assumes that the longest prefix is six\r\ncharacter long plus colon plus space, eg. 'status: ', 'action: '\r\nor 'config: ' (so eight in total). This works well even when we have\r\nmessages that requires more than one line, as '\\t' is exactly eight\r\ncharacters, just like the longest prefix.\r\n\r\nThe 'zpool import' output is a bit different, as it may display the\r\ncomment pool property, then the longest prefix is 'comment: ', which is\r\nnine characters long, not eight.\r\nAll the prefixes were given an extra space in front, but:\r\n- 'status: ' did not get an extra space.\r\n- Messages that require more than one line should use nine spaces of\r\n indentation, not eight.\r\n- The extra space in front looks redundant if there is no comment\r\n property set on the given pool.\r\n\r\nFix it by adding an extra space to all prefixes, but only if the comment\r\nproperty is defined. Also, when we need to continue the message in a new\r\nline, use '\\t ' for indentation.\r\n\r\nWhile here, apply small corrections to a couple messages.\r\n\r\nBefore:\r\n\r\n pool: tank\r\n id: 7412636063178848859\r\n state: ONLINE\r\nstatus: Some supported features are not enabled on the pool.\r\n\t(Note that they may be intentionally disabled if the\r\n\t'compatibility' property is set.)\r\n action: The pool can be imported using its name or numeric identif[...]\r\n\tsome features will not be available without an explicit 'zp[...]\r\ncomment: Example comment.\r\n config:\r\n\r\n\tbclone ONLINE\r\n\t ada0 ONLINE\r\n\r\nAfter:\r\n\r\n pool: tank\r\n id: 10180960571062436759\r\n state: ONLINE\r\nstatus: Some supported features are not enabled on the pool.\r\n\t(Note that they may be intentionally disabled if the\r\n\t'compatibility' property is set.)\r\naction: The pool can be imported using its name or numeric identifi[...]\r\n\tsome features will not be available without an explicit 'zp[...]\r\nconfig:\r\n\r\n\ttank ONLINE\r\n\t ada3 ONLINE\r\n\r\n pool: dozer\r\n id: 11028319538368222579\r\n state: ONLINE\r\n status: Some supported features are not enabled on the pool.\r\n\t (Note that they may be intentionally disabled if the\r\n\t 'compatibility' property is set.)\r\n action: The pool can be imported using its name or numeric identif[...]\r\n\t some features will not be available without an explicit 'z[...]\r\ncomment: Example comment.\r\n config:\r\n\r\n\tdozer ONLINE\r\n\t ada1 ONLINE\r\n\r\nReviewed-by: Tony Hutter \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Pawel Dawidek \r\nCloses #16128","shortMessageHtmlLink":"zpool import output is not formated properly."}},{"before":"01c8efdd59b540eb6ea21e339d2dbd0283095130","after":"ae22044da998e27497c3ad6724a0c64c89cfd87f","ref":"refs/heads/master","pushedAt":"2024-05-29T17:51:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"spl: fix compilation without HAVE_BACKTRACE\n\nThe __maybe_unused macro is defined in spl/sys/debug.h\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Martin Matuska \r\nCloses #16229","shortMessageHtmlLink":"spl: fix compilation without HAVE_BACKTRACE"}},{"before":"6b95031f5642f54bab063da84dd4009df2bc0b5e","after":"01c8efdd59b540eb6ea21e339d2dbd0283095130","ref":"refs/heads/master","pushedAt":"2024-05-29T17:49:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Simplify issig().\n\nWe always call it twice with JUSTLOOKING and then FORREAL.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Pawel Jakub Dawidek \r\nCloses #16225","shortMessageHtmlLink":"Simplify issig()."}},{"before":"800d59d5771806459a23f10f3c9ee8f2d178b9ed","after":"6b95031f5642f54bab063da84dd4009df2bc0b5e","ref":"refs/heads/master","pushedAt":"2024-05-29T17:46:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zed: Add deadman-slot_off.sh zedlet\n\nOptionally turn off disk's enclosure slot if an I/O is hung\r\ntriggering the deadman.\r\n\r\nIt's possible for outstanding I/O to a misbehaving SCSI disk to\r\nneither promptly complete or return an error. This can occur due\r\nto retry and recovery actions taken by the SCSI layer, driver, or\r\ndisk. When it occurs the pool will be unresponsive even though\r\nthere may be sufficient redundancy configured to proceeded without\r\nthis single disk.\r\n\r\nWhen a hung I/O is detected by the kmods it will be posted as a\r\ndeadman event. By default an I/O is considered to be hung after\r\n5 minutes. This value can be changed with the zfs_deadman_ziotime_ms\r\nmodule parameter. If ZED_POWER_OFF_ENCLOSURE_SLOT_ON_DEADMAN is set\r\nthe disk's enclosure slot will be powered off causing the outstanding\r\nI/O to fail. The ZED will then handle this like a normal disk failure.\r\nBy default ZED_POWER_OFF_ENCLOSURE_SLOT_ON_DEADMAN is not set.\r\n\r\nAs part of this change `zfs_deadman_events_per_second` is added\r\nto control the ratelimitting of deadman events independantly of\r\ndelay events. In practice, a single deadman event is sufficient\r\nand more aren't particularly useful.\r\n\r\nAlphabetize the zfs_deadman_* entries in zfs.4.\r\n\r\nReviewed-by: Tony Hutter \r\nSigned-off-by: Brian Behlendorf \r\nCloses #16226","shortMessageHtmlLink":"zed: Add deadman-slot_off.sh zedlet"}},{"before":"9edf6af4aed14948925588eb4d2171d229c9713a","after":"4c0fbd8d6d1565ba2dd3d403a2bb42e2b6c64ec0","ref":"refs/heads/zfs-2.2.5-staging","pushedAt":"2024-05-29T15:54:19.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"FreeBSD: Add zfs_link_create() error handling\n\nOriginally Solaris didn't expect errors there, but they may happen\r\nif we fail to add entry into ZAP. Linux fixed it in #7421, but it\r\nwas never fully ported to FreeBSD.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Alexander Motin \r\nSponsored-By: iXsystems, Inc.\r\nCloses #13215\r\nCloses #16138","shortMessageHtmlLink":"FreeBSD: Add zfs_link_create() error handling"}},{"before":"02c5aa9b092818785ed8db4e2246a828278138e3","after":"800d59d5771806459a23f10f3c9ee8f2d178b9ed","ref":"refs/heads/master","pushedAt":"2024-05-29T15:53:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Some improvements to metaslabs eviction\n\n- Add old eviction for special and dedup metaslab classes. Those\r\nvdevs may be potentially big and fragmented with large metaslabs,\r\nwhile their asynchronous write pattern is not really different\r\nfrom normal class. It seems an omission to not evict old metaslabs\r\nfrom them.\r\n - If we have metaslab preload enabled, which means we are not too\r\nlow on memory, do not evict active metaslabs even if they are not\r\nused for some time. Eviction of active metaslabs means we won't\r\nbe able to write anything until we load them, that may take some\r\ntime, that is straight opposite to metaslab preload goals. For\r\nsmall systems the memory saving should be less important after\r\nrecent reduction in number of allocators and so open metaslabs.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16214","shortMessageHtmlLink":"Some improvements to metaslabs eviction"}},{"before":"8865dfbcaad44a1056f35be60d3058dd3b1e9145","after":"02c5aa9b092818785ed8db4e2246a828278138e3","ref":"refs/heads/master","pushedAt":"2024-05-25T02:11:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Destroy ARC buffer in case of fill error\n\nIn case of error dmu_buf_fill_done() returns the buffer back into\r\nDB_UNCACHED state. Since during transition from DB_UNCACHED into\r\nDB_FILL state dbuf_noread() allocates an ARC buffer, we must free\r\nit here, otherwise it will be leaked.\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Jorgen Lundman \r\nSigned-off-by: Alexander Motin \r\nSponsored by: iXsystems, Inc.\r\nCloses #15665\r\nCloses #15802\r\nCloses #16216","shortMessageHtmlLink":"Destroy ARC buffer in case of fill error"}},{"before":"d0aa9dbccfb06778ca336732ee4e627f50475ad3","after":"8865dfbcaad44a1056f35be60d3058dd3b1e9145","ref":"refs/heads/master","pushedAt":"2024-05-25T02:02:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Fix assertion in Persistent L2ARC\n\nAt the end of l2arc_evict() fix an assertion in the case that l2ad_hand\r\n+ distance == l2ad_end.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: George Amanakis \r\nCloses #16202\r\nCloses #16207","shortMessageHtmlLink":"Fix assertion in Persistent L2ARC"}},{"before":"34906f8bbee337ee5aa9b79c141517bff0a4e0ab","after":"d0aa9dbccfb06778ca336732ee4e627f50475ad3","ref":"refs/heads/master","pushedAt":"2024-05-25T02:00:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Use memset to zero stack allocations containing unions\n\nC99 6.7.8.17 says that when an undesignated initialiser is used, only\r\nthe first element of a union is initialised. If the first element is not\r\nthe largest within the union, how the remaining space is initialised is\r\nup to the compiler.\r\n\r\nGCC extends the initialiser to the entire union, while Clang treats the\r\nremainder as padding, and so initialises according to whatever\r\nautomatic/implicit initialisation rules are currently active.\r\n\r\nWhen Linux is compiled with CONFIG_INIT_STACK_ALL_PATTERN,\r\n-ftrivial-auto-var-init=pattern is added to the kernel CFLAGS. This flag\r\nsets the policy for automatic/implicit initialisation of variables on\r\nthe stack.\r\n\r\nTaken together, this means that when compiling under\r\nCONFIG_INIT_STACK_ALL_PATTERN on Clang, the \"zero\" initialiser will only\r\nzero the first element in a union, and the rest will be filled with a\r\npattern. This is significant for aes_ctx_t, which in\r\naes_encrypt_atomic() and aes_decrypt_atomic() is initialised to zero,\r\nbut then used as a gcm_ctx_t, which is the fifth element in the union,\r\nand thus gets pattern initialisation. Later, it's assumed to be zero,\r\nresulting in a hang.\r\n\r\nAs confusing and undiscoverable as it is, by the spec, we are at fault\r\nwhen we initialise a structure containing a union with the zero\r\ninitializer. As such, this commit replaces these uses with an explicit\r\nmemset(0).\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\nReviewed-by: Tino Reichardt \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Rob Norris \r\nCloses #16135\r\nCloses #16206","shortMessageHtmlLink":"Use memset to zero stack allocations containing unions"}},{"before":"708be0f415c83c941d3ed5153fafc5d3766e4cdd","after":"34906f8bbee337ee5aa9b79c141517bff0a4e0ab","ref":"refs/heads/master","pushedAt":"2024-05-25T01:55:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zap: reuse zap_leaf_t on dbuf reuse after shrink\n\nIf a shrink or truncate had recently freed a portion of the ZAP, the\r\ndbuf could still be sitting on the dbuf cache waiting for eviction. If\r\nit is then allocated for a new leaf before it can be evicted, the\r\nzap_leaf_t is still attached as userdata, tripping the VERIFY.\r\n\r\nInstead, just check for the userdata, and if we find it, reuse it.\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: iXsystems, Inc.\r\nReviewed-by: Alexander Motin \r\nSigned-off-by: Rob Norris \r\nCloses #16157.\r\nCloses #16204","shortMessageHtmlLink":"zap: reuse zap_leaf_t on dbuf reuse after shrink"}},{"before":"7572e8ca04adda7af207dd27d643d241351680e7","after":"708be0f415c83c941d3ed5153fafc5d3766e4cdd","ref":"refs/heads/master","pushedAt":"2024-05-25T01:54:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Linux 6.7 compat: detect if kernel defines intptr_t\n\nSince Linux 6.7 the kernel has defined intptr_t. Clang has\r\n-Wtypedef-redefinition by default, which causes the build to fail\r\nbecause we also have a typedef for intptr_t.\r\n\r\nSince its better to use the kernel's if it exists, detect it and skip\r\nour own.\r\n\r\nSponsored-by: https://despairlabs.com/sponsor/\r\nReviewed-by: Tino Reichardt \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Rob Norris \r\nCloses #16201","shortMessageHtmlLink":"Linux 6.7 compat: detect if kernel defines intptr_t"}},{"before":"08648cf0da381fb667fa413ba95407ae4c3f8a8f","after":"7572e8ca04adda7af207dd27d643d241351680e7","ref":"refs/heads/master","pushedAt":"2024-05-25T01:45:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Avoid a gcc -Wint-to-pointer-cast warning\n\nOn 32-bit platforms long long is generally 64-bits. Sufficiently modern\r\nversions of gcc (13 in my testing) complains when casting a pointer to\r\nan integer of a different width so cast to uintptr_t first to avoid the\r\nwarning.\r\n\r\nFixes: c183d164aa Parallel pool import\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Don Brady \r\nSigned-off-by: Brooks Davis \r\nCloses #16203","shortMessageHtmlLink":"Avoid a gcc -Wint-to-pointer-cast warning"}},{"before":"efbef9e6cc1e14cc19a24b76175f7ec86610161a","after":"08648cf0da381fb667fa413ba95407ae4c3f8a8f","ref":"refs/heads/master","pushedAt":"2024-05-25T01:45:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Allow block cloning to be interrupted by a signal.\n\nEven though block cloning is much faster than regular copying,\r\nit is not instantaneous - the file might be large and the recordsize\r\nsmall. It would be nice to be able to interrupt it with a signal\r\n(e.g., SIGINFO on FreeBSD to see the progress).\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Pawel Jakub Dawidek \r\nCloses #16208","shortMessageHtmlLink":"Allow block cloning to be interrupted by a signal."}},{"before":"fec16b93c46d80ae60a4f20632932601030b6fc0","after":"efbef9e6cc1e14cc19a24b76175f7ec86610161a","ref":"refs/heads/master","pushedAt":"2024-05-17T00:56:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"FreeBSD: Add zfs_link_create() error handling\n\nOriginally Solaris didn't expect errors there, but they may happen\r\nif we fail to add entry into ZAP. Linux fixed it in #7421, but it\r\nwas never fully ported to FreeBSD.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Alexander Motin \r\nSponsored-By: iXsystems, Inc.\r\nCloses #13215\r\nCloses #16138","shortMessageHtmlLink":"FreeBSD: Add zfs_link_create() error handling"}},{"before":"a043b60f1eabcdd72f30b692565a2c982b1a1e8a","after":"fec16b93c46d80ae60a4f20632932601030b6fc0","ref":"refs/heads/master","pushedAt":"2024-05-17T00:55:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"config/zfs-build.m4: add Alpine Linux bash-completion path\n\nReviewed-by: Brian Behlendorf \nSigned-off-by: omni \nCloses #16164","shortMessageHtmlLink":"config/zfs-build.m4: add Alpine Linux bash-completion path"}},{"before":"e675852bc1d50404fcbe4fa0e1f57b6c318e6349","after":"a043b60f1eabcdd72f30b692565a2c982b1a1e8a","ref":"refs/heads/master","pushedAt":"2024-05-16T22:37:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Correct level handling in zstream recompress.\n\nsscanf returns number of items parsed on success and EOF on failure.\r\n\r\nReviewed-by: Adam Moss \r\nReviewed-by: Paul Dagnelie \r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Rob Norris \r\nSigned-off-by: Rich Ercolani \r\nCloses #16198","shortMessageHtmlLink":"Correct level handling in zstream recompress."}},{"before":"3c941d18183455138f7c5dcc212177bd3cea8afc","after":"e675852bc1d50404fcbe4fa0e1f57b6c318e6349","ref":"refs/heads/master","pushedAt":"2024-05-15T20:03:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"dbuf: separate refcount calls for dbuf and dbuf_user\n\nIn 92dc4ad83 I updated the dbuf_cache accounting to track the size of\r\nuserdata associated with dbufs. This adds the size of the dbuf+userdata\r\ntogether in a single call to zfs_refcount_add_many(), but sometime\r\nremoves them in separate calls to zfs_refcount_remove_many(), if dbuf\r\nand userdata are evicted separately.\r\n\r\nWhat I didn't realise is that when refcount tracking is on,\r\nzfs_refcount_add_many() and zfs_refcount_remove_many() are expected to\r\nbe paired, with their second & third args (count & holder) the same on\r\nboth sides. Splitting the remove part into two calls means the counts\r\ndon't match up, tripping a panic.\r\n\r\nThis commit fixes that, by always adding and removing the dbuf and\r\nuserdata counts separately.\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\nReported-by: Mark Johnston \r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nSigned-off-by: Rob Norris \r\nCloses #16191","shortMessageHtmlLink":"dbuf: separate refcount calls for dbuf and dbuf_user"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEciCg9AA","startCursor":null,"endCursor":null}},"title":"Activity · openzfs/zfs"}