summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authormjg <mjg@FreeBSD.org>2015-07-11 16:19:11 +0000
committermjg <mjg@FreeBSD.org>2015-07-11 16:19:11 +0000
commitc71e9ab8634afefe13ecbf6d9f4d812ed55d78fb (patch)
tree741d49ee2f431c27b257f68012810a50396f9ffc /sys/ufs
parentcf5550c91f0ee2c61d9d53dd6cb0c926f95f2a78 (diff)
downloadFreeBSD-src-c71e9ab8634afefe13ecbf6d9f4d812ed55d78fb.zip
FreeBSD-src-c71e9ab8634afefe13ecbf6d9f4d812ed55d78fb.tar.gz
Move chdir/chroot-related fdp manipulation to kern_descrip.c
Prefix exported functions with pwd_. Deduplicate some code by adding a helper for setting fd_cdir. Reviewed by: kib
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_alloc.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index 2b9c334..c587dfb 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -2748,13 +2748,12 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
struct thread *td = curthread;
struct fsck_cmd cmd;
struct ufsmount *ump;
- struct vnode *vp, *vpold, *dvp, *fdvp;
+ struct vnode *vp, *dvp, *fdvp;
struct inode *ip, *dp;
struct mount *mp;
struct fs *fs;
ufs2_daddr_t blkno;
long blkcnt, blksize;
- struct filedesc *fdp;
struct file *fp, *vfp;
cap_rights_t rights;
int filetype, error;
@@ -2968,12 +2967,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
break;
}
VOP_UNLOCK(vp, 0);
- fdp = td->td_proc->p_fd;
- FILEDESC_XLOCK(fdp);
- vpold = fdp->fd_cdir;
- fdp->fd_cdir = vp;
- FILEDESC_XUNLOCK(fdp);
- vrele(vpold);
+ pwd_chdir(td, vp);
break;
case FFS_SET_DOTDOT:
OpenPOWER on IntegriCloud