aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/super.c')
-rw-r--r--fs/nfs/super.c9
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
408void nfs_sb_active(struct super_block *sb) 408bool 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}
415EXPORT_SYMBOL_GPL(nfs_sb_active); 418EXPORT_SYMBOL_GPL(nfs_sb_active);
416 419