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

*** 597,607 **** /* * synchronize w/ufs ioctls */ mutex_enter(&ulp->ul_lock); ! atomic_add_long(&ufs_quiesce_pend, 1); /* * reset options */ ufsvfsp->vfs_nointr = flags & UFSMNT_NOINTR; --- 597,607 ---- /* * synchronize w/ufs ioctls */ mutex_enter(&ulp->ul_lock); ! atomic_inc_ulong(&ufs_quiesce_pend); /* * reset options */ ufsvfsp->vfs_nointr = flags & UFSMNT_NOINTR;
*** 743,753 **** TRANS_MATA_MOUNT(ufsvfsp); fsp->fs_fmod = 0; fsp->fs_ronly = 0; ! atomic_add_long(&ufs_quiesce_pend, -1); cv_broadcast(&ulp->ul_cv); mutex_exit(&ulp->ul_lock); if (TRANS_ISTRANS(ufsvfsp)) { --- 743,753 ---- TRANS_MATA_MOUNT(ufsvfsp); fsp->fs_fmod = 0; fsp->fs_ronly = 0; ! atomic_dec_ulong(&ufs_quiesce_pend); cv_broadcast(&ulp->ul_cv); mutex_exit(&ulp->ul_lock); if (TRANS_ISTRANS(ufsvfsp)) {
*** 772,782 **** return (0); remounterr: if (tpt) brelse(tpt); ! atomic_add_long(&ufs_quiesce_pend, -1); cv_broadcast(&ulp->ul_cv); mutex_exit(&ulp->ul_lock); return (error); } --- 772,782 ---- return (0); remounterr: if (tpt) brelse(tpt); ! atomic_dec_ulong(&ufs_quiesce_pend); cv_broadcast(&ulp->ul_cv); mutex_exit(&ulp->ul_lock); return (error); }
*** 1419,1429 **** * If file system is already hard locked, * unmount the file system, otherwise * hard lock it before unmounting. */ if (!ULOCKFS_IS_HLOCK(ulp)) { ! atomic_add_long(&ufs_quiesce_pend, 1); lockfs.lf_lock = LOCKFS_HLOCK; lockfs.lf_flags = 0; lockfs.lf_key = ulp->ul_lockfs.lf_key + 1; lockfs.lf_comlen = 0; lockfs.lf_comment = NULL; --- 1419,1429 ---- * If file system is already hard locked, * unmount the file system, otherwise * hard lock it before unmounting. */ if (!ULOCKFS_IS_HLOCK(ulp)) { ! atomic_inc_ulong(&ufs_quiesce_pend); lockfs.lf_lock = LOCKFS_HLOCK; lockfs.lf_flags = 0; lockfs.lf_key = ulp->ul_lockfs.lf_key + 1; lockfs.lf_comlen = 0; lockfs.lf_comment = NULL;
*** 1431,1441 **** ULOCKFS_SET_BUSY(ulp); LOCKFS_SET_BUSY(&ulp->ul_lockfs); (void) ufs_quiesce(ulp); (void) ufs_flush(vfsp); (void) ufs_thaw(vfsp, ufsvfsp, ulp); ! atomic_add_long(&ufs_quiesce_pend, -1); ULOCKFS_CLR_BUSY(ulp); LOCKFS_CLR_BUSY(&ulp->ul_lockfs); poll_events |= POLLERR; pollwakeup(&ufs_pollhd, poll_events); } --- 1431,1441 ---- ULOCKFS_SET_BUSY(ulp); LOCKFS_SET_BUSY(&ulp->ul_lockfs); (void) ufs_quiesce(ulp); (void) ufs_flush(vfsp); (void) ufs_thaw(vfsp, ufsvfsp, ulp); ! atomic_dec_ulong(&ufs_quiesce_pend); ULOCKFS_CLR_BUSY(ulp); LOCKFS_CLR_BUSY(&ulp->ul_lockfs); poll_events |= POLLERR; pollwakeup(&ufs_pollhd, poll_events); }
*** 2151,2161 **** ufsvfsp = (struct ufsvfs *)vfsp->vfs_data; ulp = &ufsvfsp->vfs_ulockfs; mutex_enter(&ulp->ul_lock); ! atomic_add_long(&ufs_quiesce_pend, 1); (void) ufs_quiesce(ulp); (void) ufs_flush(vfsp); /* --- 2151,2161 ---- ufsvfsp = (struct ufsvfs *)vfsp->vfs_data; ulp = &ufsvfsp->vfs_ulockfs; mutex_enter(&ulp->ul_lock); ! atomic_inc_ulong(&ufs_quiesce_pend); (void) ufs_quiesce(ulp); (void) ufs_flush(vfsp); /*
*** 2276,2286 **** } rootdev = new_rootdev; rootvp = new_rootvp; ! atomic_add_long(&ufs_quiesce_pend, -1); cv_broadcast(&ulp->ul_cv); mutex_exit(&ulp->ul_lock); vfs_unlock(vfsp); --- 2276,2286 ---- } rootdev = new_rootdev; rootvp = new_rootvp; ! atomic_dec_ulong(&ufs_quiesce_pend); cv_broadcast(&ulp->ul_cv); mutex_exit(&ulp->ul_lock); vfs_unlock(vfsp);