diff options
author | mjg <mjg@FreeBSD.org> | 2015-07-11 16:19:11 +0000 |
---|---|---|
committer | mjg <mjg@FreeBSD.org> | 2015-07-11 16:19:11 +0000 |
commit | c71e9ab8634afefe13ecbf6d9f4d812ed55d78fb (patch) | |
tree | 741d49ee2f431c27b257f68012810a50396f9ffc /sys/ufs | |
parent | cf5550c91f0ee2c61d9d53dd6cb0c926f95f2a78 (diff) | |
download | FreeBSD-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.c | 10 |
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: |