So while this patch looks correct and very useful to me, that special path reallyirked me. The root cause is that the existing buffer lookup is a mess, so I spent some time this weekend to refactor this before applying a now simplified version of your patch. I'll send out the series in a bit.