diff options
author | attilio <attilio@FreeBSD.org> | 2008-01-10 01:10:58 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2008-01-10 01:10:58 +0000 |
commit | 18d0a0dd51c7995ce9e549616f78ef724096b1bd (patch) | |
tree | c4e28d990eaa525916ab09f2bd1d9c6ddf2c8dea /sys/ufs | |
parent | 8df9c26bfdf7538c15226c902c07a0fe350ace36 (diff) | |
download | FreeBSD-src-18d0a0dd51c7995ce9e549616f78ef724096b1bd.zip FreeBSD-src-18d0a0dd51c7995ce9e549616f78ef724096b1bd.tar.gz |
vn_lock() is currently only used with the 'curthread' passed as argument.
Remove this argument and pass curthread directly to underlying
VOP_LOCK1() VFS method. This modify makes the code cleaner and in
particular remove an annoying dependence helping next lockmgr() cleanup.
KPI results, obviously, changed.
Manpage and FreeBSD_version will be updated through further commits.
As a side note, would be valuable to say that next commits will address
a similar cleanup about VFS methods, in particular vop_lock1 and
vop_unlock.
Tested by: Diego Sardina <siarodx at gmail dot com>,
Andrea Di Pasquale <whyx dot it at gmail dot com>
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ffs/ffs_snapshot.c | 12 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 4 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 8 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_extattr.c | 14 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_lookup.c | 6 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_quota.c | 10 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 6 |
7 files changed, 27 insertions, 33 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c index cac638f..8453305 100644 --- a/sys/ufs/ffs/ffs_snapshot.c +++ b/sys/ufs/ffs/ffs_snapshot.c @@ -406,14 +406,14 @@ restart: vn_finished_write(wrtmp); if ((error = vfs_write_suspend(vp->v_mount)) != 0) { vn_start_write(NULL, &wrtmp, V_WAIT); - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); goto out; } if (mp->mnt_kern_flag & MNTK_SUSPENDED) break; vn_start_write(NULL, &wrtmp, V_WAIT); } - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); if (ip->i_effnlink == 0) { error = ENOENT; /* Snapshot file unlinked */ goto out1; @@ -534,7 +534,7 @@ loop: continue; } vholdl(xvp); - if (vn_lock(xvp, LK_EXCLUSIVE | LK_INTERLOCK, td) != 0) { + if (vn_lock(xvp, LK_EXCLUSIVE | LK_INTERLOCK) != 0) { MNT_ILOCK(mp); MNT_VNODE_FOREACH_ABORT_ILOCKED(mp, mvp); vdrop(xvp); @@ -801,7 +801,7 @@ out1: fsbtodb(fs, ino_to_fsba(fs, ip->i_number)), (int) fs->fs_bsize, NOCRED, &nbp); brelse(nbp); - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); if (ip->i_effnlink == 0) error = ENOENT; /* Snapshot file unlinked */ else @@ -2001,7 +2001,7 @@ ffs_snapshot_mount(mp) auio.uio_segflg = UIO_SYSSPACE; auio.uio_rw = UIO_READ; auio.uio_td = td; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); if ((error = VOP_READ(vp, &auio, IO_UNIT, td->td_ucred)) != 0) { printf("ffs_snapshot_mount: read_1 failed %d\n", error); VOP_UNLOCK(vp, 0, td); @@ -2451,7 +2451,7 @@ process_deferred_inactive(struct mount *mp) } MNT_IUNLOCK(mp); vholdl(vp); - error = vn_lock(vp, LK_EXCLUSIVE | LK_INTERLOCK, td); + error = vn_lock(vp, LK_EXCLUSIVE | LK_INTERLOCK); if (error != 0) { vdrop(vp); MNT_ILOCK(mp); diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index a3cc1a5..60e3de9 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -1029,7 +1029,7 @@ softdep_flushworklist(oldmnt, countp, td) devvp = ump->um_devvp; while ((count = softdep_process_worklist(oldmnt, 1)) > 0) { *countp += count; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY); error = VOP_FSYNC(devvp, MNT_WAIT, td); VOP_UNLOCK(devvp, 0, td); if (error) @@ -5077,7 +5077,7 @@ softdep_fsync(vp) if (ffs_vget(mp, parentino, LK_NOWAIT | LK_EXCLUSIVE, &pvp)) { VOP_UNLOCK(vp, 0, td); error = ffs_vget(mp, parentino, LK_EXCLUSIVE, &pvp); - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); if (error != 0) return (error); } diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index cdead73..93f9e72 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -261,7 +261,7 @@ ffs_mount(struct mount *mp, struct thread *td) * If upgrade to read-write by non-root, then verify * that user has necessary permissions on the device. */ - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY); error = VOP_ACCESS(devvp, VREAD | VWRITE, td->td_ucred, td); if (error) @@ -467,7 +467,7 @@ ffs_reload(struct mount *mp, struct thread *td) * Step 1: invalidate all cached meta-data. */ devvp = VFSTOUFS(mp)->um_devvp; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY); if (vinvalbuf(devvp, 0, td, 0, 0) != 0) panic("ffs_reload: dirty1"); VOP_UNLOCK(devvp, 0, td); @@ -1120,7 +1120,7 @@ ffs_flushfiles(mp, flags, td) /* * Flush filesystem metadata. */ - vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY); error = VOP_FSYNC(ump->um_devvp, MNT_WAIT, td); VOP_UNLOCK(ump->um_devvp, 0, td); return (error); @@ -1270,7 +1270,7 @@ loop: bo = &devvp->v_bufobj; if (waitfor != MNT_LAZY && (bo->bo_numoutput > 0 || bo->bo_dirty.bv_cnt > 0)) { - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY | LK_INTERLOCK, td); + vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY | LK_INTERLOCK); if ((error = VOP_FSYNC(devvp, waitfor, td)) != 0) allerror = error; VOP_UNLOCK(devvp, 0, td); diff --git a/sys/ufs/ufs/ufs_extattr.c b/sys/ufs/ufs/ufs_extattr.c index 3692329..3d6ec2f 100644 --- a/sys/ufs/ufs/ufs_extattr.c +++ b/sys/ufs/ufs/ufs_extattr.c @@ -612,7 +612,7 @@ ufs_extattr_enable(struct ufsmount *ump, int attrnamespace, auio.uio_rw = UIO_READ; auio.uio_td = td; - vn_lock(backing_vnode, LK_SHARED | LK_RETRY, td); + vn_lock(backing_vnode, LK_SHARED | LK_RETRY); error = VOP_READ(backing_vnode, &auio, IO_NODELOCKED, ump->um_extattr.uepm_ucred); @@ -672,8 +672,7 @@ ufs_extattr_disable(struct ufsmount *ump, int attrnamespace, LIST_REMOVE(uele, uele_entries); - vn_lock(uele->uele_backing_vnode, LK_SHARED | LK_RETRY, - td); + vn_lock(uele->uele_backing_vnode, LK_SHARED | LK_RETRY); ASSERT_VOP_LOCKED(uele->uele_backing_vnode, "ufs_extattr_disable"); VOP_UNLOCK(uele->uele_backing_vnode, 0, td); error = vn_close(uele->uele_backing_vnode, FREAD|FWRITE, @@ -875,8 +874,7 @@ ufs_extattr_get(struct vnode *vp, int attrnamespace, const char *name, * being applied to the backing file, as the lock is already held. */ if (attribute->uele_backing_vnode != vp) - vn_lock(attribute->uele_backing_vnode, LK_SHARED | - LK_RETRY, td); + vn_lock(attribute->uele_backing_vnode, LK_SHARED | LK_RETRY); error = VOP_READ(attribute->uele_backing_vnode, &local_aio, IO_NODELOCKED, ump->um_extattr.uepm_ucred); @@ -1085,8 +1083,7 @@ ufs_extattr_set(struct vnode *vp, int attrnamespace, const char *name, * being applied to the backing file, as the lock is already held. */ if (attribute->uele_backing_vnode != vp) - vn_lock(attribute->uele_backing_vnode, - LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(attribute->uele_backing_vnode, LK_EXCLUSIVE | LK_RETRY); ioflag = IO_NODELOCKED; if (ufs_extattr_sync) @@ -1182,8 +1179,7 @@ ufs_extattr_rm(struct vnode *vp, int attrnamespace, const char *name, * modifying is it, as we already hold the lock. */ if (attribute->uele_backing_vnode != vp) - vn_lock(attribute->uele_backing_vnode, - LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(attribute->uele_backing_vnode, LK_EXCLUSIVE | LK_RETRY); error = VOP_READ(attribute->uele_backing_vnode, &local_aio, IO_NODELOCKED, ump->um_extattr.uepm_ucred); diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c index 04863a3..f6e456b 100644 --- a/sys/ufs/ufs/ufs_lookup.c +++ b/sys/ufs/ufs/ufs_lookup.c @@ -562,7 +562,7 @@ found: VOP_UNLOCK(pdp, 0, td); /* race to get the inode */ error = VFS_VGET(pdp->v_mount, saved_ino, cnp->cn_lkflags, &tdp); - vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY); if (error) return (error); *vpp = tdp; @@ -787,7 +787,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp) VOP_UNLOCK(tvp, 0, td); error = VOP_FSYNC(dvp, MNT_WAIT, td); if (tvp != NULL) - vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY); return (error); } if (DOINGASYNC(dvp)) { @@ -950,7 +950,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp) (void) UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_NORMAL | IO_SYNC, cr, td); if (tvp != NULL) - vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY); } return (error); } diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c index 49ee1c8..dee110d 100644 --- a/sys/ufs/ufs/ufs_quota.c +++ b/sys/ufs/ufs/ufs_quota.c @@ -554,7 +554,7 @@ quotaon(td, mp, type, fname) if (*vpp != vp) quotaoff1(td, mp, type); - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); vp->v_vflag |= VV_SYSTEM; VOP_UNLOCK(vp, 0, td); *vpp = vp; @@ -693,7 +693,7 @@ again: UFS_UNLOCK(ump); vfslocked = VFS_LOCK_GIANT(qvp->v_mount); - vn_lock(qvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(qvp, LK_EXCLUSIVE | LK_RETRY); qvp->v_vflag &= ~VV_SYSTEM; VOP_UNLOCK(qvp, 0, td); error = vn_close(qvp, FREAD|FWRITE, td->td_ucred, td); @@ -1087,7 +1087,6 @@ dqget(vp, id, ump, type, dqp) int type; struct dquot **dqp; { - struct thread *td = curthread; /* XXX */ struct dquot *dq, *dq1; struct dqhash *dqh; struct vnode *dqvp; @@ -1154,7 +1153,7 @@ hfound: DQI_LOCK(dq); */ if (vp != dqvp) { DQH_UNLOCK(); - vn_lock(dqvp, LK_SHARED | LK_RETRY, td); + vn_lock(dqvp, LK_SHARED | LK_RETRY); dqvplocked = 1; DQH_LOCK(); /* @@ -1342,7 +1341,6 @@ dqsync(vp, dq) struct vnode *vp; struct dquot *dq; { - struct thread *td = curthread; /* XXX */ struct vnode *dqvp; struct iovec aiov; struct uio auio; @@ -1379,7 +1377,7 @@ dqsync(vp, dq) (void) vn_start_secondary_write(dqvp, &mp, V_WAIT); if (vp != dqvp) - vn_lock(dqvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(dqvp, LK_EXCLUSIVE | LK_RETRY); VFS_UNLOCK_GIANT(vfslocked); DQI_LOCK(dq); diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index c1cbed9..0d2a6a5 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -831,7 +831,7 @@ ufs_remove(ap) */ VOP_UNLOCK(vp, 0, td); (void) VOP_FSYNC(dvp, MNT_WAIT, td); - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); } out: return (error); @@ -1037,7 +1037,7 @@ abortit: goto abortit; } - if ((error = vn_lock(fvp, LK_EXCLUSIVE, td)) != 0) + if ((error = vn_lock(fvp, LK_EXCLUSIVE)) != 0) goto abortit; dp = VTOI(fdvp); ip = VTOI(fvp); @@ -1342,7 +1342,7 @@ bad: out: if (doingdirectory) ip->i_flag &= ~IN_RENAME; - if (vn_lock(fvp, LK_EXCLUSIVE, td) == 0) { + if (vn_lock(fvp, LK_EXCLUSIVE) == 0) { ip->i_effnlink--; ip->i_nlink--; DIP_SET(ip, i_nlink, ip->i_nlink); |