orangefs_kill_sb(): deal with allocation failures
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 3 Apr 2018 04:13:17 +0000 (00:13 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 16 Apr 2018 03:49:12 +0000 (23:49 -0400)
orangefs_fill_sb() might've failed to allocate ORANGEFS_SB(s); don't
oops in that case.

Cc: stable@kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/orangefs/super.c

index 3ae5fdba0225b5670491b9cbfbf68be7bccf84a9..10796d3fe27d38f4793375deda306ac3187668d3 100644 (file)
@@ -579,6 +579,11 @@ void orangefs_kill_sb(struct super_block *sb)
        /* provided sb cleanup */
        kill_anon_super(sb);
 
+       if (!ORANGEFS_SB(sb)) {
+               mutex_lock(&orangefs_request_mutex);
+               mutex_unlock(&orangefs_request_mutex);
+               return;
+       }
        /*
         * issue the unmount to userspace to tell it to remove the
         * dynamic mount info it has for this superblock