{"push_id":966452927,"size":1,"distinct_size":1,"ref":"refs/heads/zvol","head":"a771affc3c2ce5fd7d7f5e2aaae95fce6a574d72","before":"2fe2d853a137ea8177eb12747951913e5cfd2f10","commits":[{"sha":"a771affc3c2ce5fd7d7f5e2aaae95fce6a574d72","author":{"email":"c64f7f1e6060e851acfe9b5bdea00a17cb81871c@gentoo.org","name":"Richard Yao"},"message":"Resynchronize zvol_write with illumos-gate\n\nOur `zvol_write` function had severely diverged with illumos-gate in a\nmanner that caused multiple regressions:\n\n1. We did `dnode_hold()` on each IO when we already had a hold.\n2. We would attempt to send writes that exceeded `DMU_MAX_ACCESS` to the\nDMU.\n3. We could call `zil_commit()` twice. In this case, this is because\nLinux uses the `->write` function to send flushes and can aggregate the\nflush with a write. If a synchronous write occurred with the flush, we\neffectively flushed twice when there is no need to do that.\n\nSigned-off-by: Richard Yao <ryao@gentoo.org>","distinct":true,"url":"https://api.github.com/repos/ryao/zfs/commits/a771affc3c2ce5fd7d7f5e2aaae95fce6a574d72"}]}