vfs: add missing unlock in sget()

In sget(), destroy_super(s) is called with s->s_umount held, which makes
lockdep unhappy.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Menage <menage@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Li Zefan and committed by Linus Torvalds a3cfbb53 e5bc49ba

+4 -1
+4 -1
fs/super.c
··· 371 371 continue; 372 372 if (!grab_super(old)) 373 373 goto retry; 374 - if (s) 374 + if (s) { 375 + up_write(&s->s_umount); 375 376 destroy_super(s); 377 + } 376 378 return old; 377 379 } 378 380 } ··· 389 387 err = set(s, data); 390 388 if (err) { 391 389 spin_unlock(&sb_lock); 390 + up_write(&s->s_umount); 392 391 destroy_super(s); 393 392 return ERR_PTR(err); 394 393 }