Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/vfs.c
          +++ new/usr/src/uts/common/fs/vfs.c
↓ open down ↓ 4323 lines elided ↑ open up ↑
4324 4324          sema_destroy(&vfsp->vfs_reflock);
4325 4325          kmem_cache_free(vfs_cache, vfsp);
4326 4326  }
4327 4327  
4328 4328  /*
4329 4329   * Increments the vfs reference count by one atomically.
4330 4330   */
4331 4331  void
4332 4332  vfs_hold(vfs_t *vfsp)
4333 4333  {
4334      -        atomic_add_32(&vfsp->vfs_count, 1);
     4334 +        atomic_inc_32(&vfsp->vfs_count);
4335 4335          ASSERT(vfsp->vfs_count != 0);
4336 4336  }
4337 4337  
4338 4338  /*
4339 4339   * Decrements the vfs reference count by one atomically. When
4340 4340   * vfs reference count becomes zero, it calls the file system
4341 4341   * specific vfs_freevfs() to free up the resources.
4342 4342   */
4343 4343  void
4344 4344  vfs_rele(vfs_t *vfsp)
4345 4345  {
4346 4346          ASSERT(vfsp->vfs_count != 0);
4347      -        if (atomic_add_32_nv(&vfsp->vfs_count, -1) == 0) {
     4347 +        if (atomic_dec_32_nv(&vfsp->vfs_count) == 0) {
4348 4348                  VFS_FREEVFS(vfsp);
4349 4349                  lofi_remove(vfsp);
4350 4350                  if (vfsp->vfs_zone)
4351 4351                          zone_rele_ref(&vfsp->vfs_implp->vi_zone_ref,
4352 4352                              ZONE_REF_VFS);
4353 4353                  vfs_freemnttab(vfsp);
4354 4354                  vfs_free(vfsp);
4355 4355          }
4356 4356  }
4357 4357  
↓ open down ↓ 454 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX