Option 2) becomes quite complicated because buf_flush_remove() may be called with different mutexes being held from different contexts (and even more so after the bug 1086680 fix). Option 3) starts looking more attractive. The zip_clean list maintenance does not seem to enforce anything vital.
Option 2) becomes quite complicated because buf_flush_remove() may be called with different mutexes being held from different contexts (and even more so after the bug 1086680 fix). Option 3) starts looking more attractive. The zip_clean list maintenance does not seem to enforce anything vital.