Lookings at this a bit more I'm not sure my fix is enough as the error handling is really complex. Also given that some discard callers are from kernel threads messing with interruptibility I'm not entirely sure that having this check in the common helper is a good idea. Let me think of a better way to deal with this.