diff options
Diffstat (limited to 'fs/nfs/super.c')
-rw-r--r-- | fs/nfs/super.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 31a11b0e885d..368d9395d2e7 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
@@ -405,12 +405,15 @@ void __exit unregister_nfs_fs(void) | |||
405 | unregister_filesystem(&nfs_fs_type); | 405 | unregister_filesystem(&nfs_fs_type); |
406 | } | 406 | } |
407 | 407 | ||
408 | void nfs_sb_active(struct super_block *sb) | 408 | bool nfs_sb_active(struct super_block *sb) |
409 | { | 409 | { |
410 | struct nfs_server *server = NFS_SB(sb); | 410 | struct nfs_server *server = NFS_SB(sb); |
411 | 411 | ||
412 | if (atomic_inc_return(&server->active) == 1) | 412 | if (!atomic_inc_not_zero(&sb->s_active)) |
413 | atomic_inc(&sb->s_active); | 413 | return false; |
414 | if (atomic_inc_return(&server->active) != 1) | ||
415 | atomic_dec(&sb->s_active); | ||
416 | return true; | ||
414 | } | 417 | } |
415 | EXPORT_SYMBOL_GPL(nfs_sb_active); | 418 | EXPORT_SYMBOL_GPL(nfs_sb_active); |
416 | 419 | ||