summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2008-01-10 01:10:58 +0000
committerattilio <attilio@FreeBSD.org>2008-01-10 01:10:58 +0000
commit18d0a0dd51c7995ce9e549616f78ef724096b1bd (patch)
treec4e28d990eaa525916ab09f2bd1d9c6ddf2c8dea /sys/ufs
parent8df9c26bfdf7538c15226c902c07a0fe350ace36 (diff)
downloadFreeBSD-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.c12
-rw-r--r--sys/ufs/ffs/ffs_softdep.c4
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c8
-rw-r--r--sys/ufs/ufs/ufs_extattr.c14
-rw-r--r--sys/ufs/ufs/ufs_lookup.c6
-rw-r--r--sys/ufs/ufs/ufs_quota.c10
-rw-r--r--sys/ufs/ufs/ufs_vnops.c6
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);
OpenPOWER on IntegriCloud