On Tue, Jul 03, 2018 at 10:53:22PM +0100, David Howells wrote: > - if (s) { > - up_write(&s->s_umount); > + if (s) > destroy_unused_super(s); static void destroy_unused_super(struct super_block *s) { if (!s) return; ... } IOW, all of those should be unconditional.