PERFORCE change 131879 for review
Roman Divacky
rdivacky at FreeBSD.org
Fri Dec 28 06:50:51 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=131879
Change 131879 by rdivacky at rdivacky_witten on 2007/12/28 14:49:50
Mostly cosmetic changes to shrink the diff a little.
Affected files ...
.. //depot/projects/soc2007/rdivacky/linux_at/sys/kern/vfs_syscalls.c#55 edit
Differences ...
==== //depot/projects/soc2007/rdivacky/linux_at/sys/kern/vfs_syscalls.c#55 (text+ko) ====
@@ -1020,7 +1020,6 @@
kern_openat(struct thread *td, int fd, const char *path, enum uio_seg pathseg,
int flags, int mode)
{
- struct nameidata nd;
struct proc *p = td->td_proc;
struct filedesc *fdp = p->p_fd;
struct file *fp;
@@ -1031,23 +1030,22 @@
struct file *nfp;
int type, indx, error;
struct flock lf;
+ struct nameidata nd;
int vfslocked;
AUDIT_ARG(fflags, flags);
AUDIT_ARG(mode, mode);
/* XXX: audit dirfd */
+ if ((flags & O_ACCMODE) == O_ACCMODE)
+ return (EINVAL);
NDINIT_AT(&nd, LOOKUP, 0 | FOLLOW | AUDITVNODE1 |
MPSAFE, pathseg, path, td, fd);
- if ((flags & O_ACCMODE) == O_ACCMODE) {
- error = EINVAL;
- goto out;
- }
flags = FFLAGS(flags);
error = falloc(td, &nfp, &indx);
if (error)
- goto out;
+ return (error);
/* An extra reference on `nfp' has been held for us by falloc(). */
fp = nfp;
cmode = ((mode &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT;
@@ -1062,8 +1060,7 @@
if (error == ENXIO && fp->f_ops != &badfileops) {
fdrop(fp, td);
td->td_retval[0] = indx;
- error = 0;
- goto out;
+ return (0);
}
/*
@@ -1077,8 +1074,7 @@
dupfdopen(td, fdp, indx, td->td_dupfd, flags, error)) == 0) {
td->td_retval[0] = indx;
fdrop(fp, td);
- error = 0;
- goto out;
+ return (0);
}
/*
* Clean up the descriptor, but only if another thread hadn't
@@ -1089,7 +1085,7 @@
if (error == ERESTART)
error = EINTR;
- goto out;
+ return (error);
}
td->td_dupfd = 0;
vfslocked = NDHASGIANT(&nd);
@@ -1149,8 +1145,6 @@
fdrop(fp, td);
td->td_retval[0] = indx;
return (0);
-out:
- return (error);
bad:
VFS_UNLOCK_GIANT(vfslocked);
fdclose(fdp, fp, indx, td);
@@ -1257,8 +1251,8 @@
}
if (error)
return (error);
+restart:
bwillwrite();
-restart:
NDINIT_AT(&nd, CREATE, 0 | LOCKPARENT |
SAVENAME | MPSAFE | AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
@@ -1382,8 +1376,8 @@
int vfslocked;
AUDIT_ARG(mode, mode);
+restart:
bwillwrite();
-restart:
NDINIT_AT(&nd, CREATE, 0 | LOCKPARENT |
SAVENAME | MPSAFE | AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
@@ -1532,9 +1526,9 @@
kern_linkat(struct thread *td, int fd1, int fd2, const char *path1, const char *path2,
enum uio_seg segflg, int follow)
{
- struct nameidata nd;
struct vnode *vp;
struct mount *mp;
+ struct nameidata nd;
int vfslocked;
int lvfslocked;
int error;
@@ -1544,20 +1538,19 @@
AUDITVNODE1, segflg, path1, td, fd1);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
NDFREE(&nd, NDF_ONLY_PNBUF);
vp = nd.ni_vp;
if (vp->v_type == VDIR) {
vrele(vp);
VFS_UNLOCK_GIANT(vfslocked);
- error = EPERM; /* POSIX */
- goto out;
+ return (EPERM); /* POSIX */
}
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
vrele(vp);
VFS_UNLOCK_GIANT(vfslocked);
- goto out;
+ return (error);
}
NDINIT_AT(&nd, CREATE, 0 | LOCKPARENT |
SAVENAME | MPSAFE | AUDITVNODE1, segflg, path2, td, fd2);
@@ -1591,8 +1584,6 @@
vrele(vp);
vn_finished_write(mp);
VFS_UNLOCK_GIANT(vfslocked);
-
-out:
return (error);
}
@@ -1656,8 +1647,8 @@
goto out;
}
AUDIT_ARG(text, syspath);
+restart:
bwillwrite();
-restart:
NDINIT_AT(&nd, CREATE, 0 | LOCKPARENT |
SAVENAME | MPSAFE | AUDITVNODE1, segflg, path2, td, fd);
if ((error = namei(&nd)) != 0)
@@ -1821,8 +1812,8 @@
struct nameidata nd;
int vfslocked;
+restart:
bwillwrite();
-restart:
NDINIT_AT(&nd, DELETE, 0 | LOCKPARENT |
LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
@@ -2091,9 +2082,9 @@
kern_accessat(struct thread *td, int fd, const char *path, enum uio_seg pathseg,
int flags)
{
- struct nameidata nd;
struct ucred *cred, *tmpcred;
struct vnode *vp;
+ struct nameidata nd;
int vfslocked;
int error;
@@ -2330,7 +2321,7 @@
LOCKLEAF | AUDITVNODE1 | MPSAFE, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
error = vn_stat(nd.ni_vp, &sb, td->td_ucred, NOCRED, td);
NDFREE(&nd, NDF_ONLY_PNBUF);
@@ -2340,7 +2331,6 @@
printf("stat(%d): %s\n", vfslocked, path);
if (error == 0)
*sbp = sb;
-out:
return (error);
}
@@ -2388,7 +2378,7 @@
NDINIT_AT(&nd, LOOKUP, 0 | NOFOLLOW | LOCKLEAF |
LOCKSHARED | MPSAFE | AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
vp = nd.ni_vp;
error = vn_stat(vp, &sb, td->td_ucred, NOCRED, td);
@@ -2397,7 +2387,6 @@
VFS_UNLOCK_GIANT(vfslocked);
if (error == 0)
*sbp = sb;
-out:
return (error);
}
@@ -2577,17 +2566,18 @@
kern_readlinkat(struct thread *td, int fd, const char *path, enum uio_seg pathseg,
char *buf, enum uio_seg bufseg, int count)
{
- struct nameidata nd;
struct vnode *vp;
struct iovec aiov;
struct uio auio;
- int error, vfslocked;
+ int error;
+ struct nameidata nd;
+ int vfslocked;
NDINIT_AT(&nd, LOOKUP, 0 | NOFOLLOW | LOCKLEAF |
MPSAFE | AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
NDFREE(&nd, NDF_ONLY_PNBUF);
vfslocked = NDHASGIANT(&nd);
vp = nd.ni_vp;
@@ -2596,7 +2586,7 @@
if (error) {
vput(vp);
VFS_UNLOCK_GIANT(vfslocked);
- goto out;
+ return (error);
}
#endif
if (vp->v_type != VLNK)
@@ -2616,7 +2606,6 @@
vput(vp);
VFS_UNLOCK_GIANT(vfslocked);
td->td_retval[0] = count - auio.uio_resid;
-out:
return (error);
}
@@ -2853,13 +2842,12 @@
AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
NDFREE(&nd, NDF_ONLY_PNBUF);
error = setfmode(td, nd.ni_vp, mode);
vrele(nd.ni_vp);
VFS_UNLOCK_GIANT(vfslocked);
-out:
return (error);
}
@@ -2896,13 +2884,12 @@
NDINIT_AT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNODE1, pathseg,
path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
NDFREE(&nd, NDF_ONLY_PNBUF);
error = setfmode(td, nd.ni_vp, mode);
vrele(nd.ni_vp);
VFS_UNLOCK_GIANT(vfslocked);
-out:
return (error);
}
@@ -3036,13 +3023,12 @@
AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
NDFREE(&nd, NDF_ONLY_PNBUF);
error = setfown(td, nd.ni_vp, uid, gid);
vrele(nd.ni_vp);
VFS_UNLOCK_GIANT(vfslocked);
-out:
return (error);
}
@@ -3087,13 +3073,12 @@
AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
NDFREE(&nd, NDF_ONLY_PNBUF);
error = setfown(td, nd.ni_vp, uid, gid);
vrele(nd.ni_vp);
VFS_UNLOCK_GIANT(vfslocked);
-out:
return (error);
}
@@ -3265,15 +3250,14 @@
AUDITVNODE1, pathseg, path, td, fd);
if ((error = getutimes(tptr, tptrseg, ts)) != 0)
- goto out;
+ return (error);
if ((error = namei(&nd)) != 0)
- goto out;
+ return (error);
vfslocked = NDHASGIANT(&nd);
NDFREE(&nd, NDF_ONLY_PNBUF);
error = setutimes(td, nd.ni_vp, ts, 2, tptr == NULL);
vrele(nd.ni_vp);
VFS_UNLOCK_GIANT(vfslocked);
-out:
return (error);
}
@@ -3668,15 +3652,14 @@
kern_renameat(struct thread *td, int oldfd, const char *old, int newfd,
const char *new, enum uio_seg pathseg)
{
- struct nameidata fromnd, tond;
struct mount *mp = NULL;
struct vnode *tvp, *fvp, *tdvp;
+ struct nameidata fromnd, tond;
int tvfslocked;
int fvfslocked;
int error;
bwillwrite();
-
#ifdef MAC
NDINIT_AT(&fromnd, DELETE, 0 | LOCKPARENT |
LOCKLEAF | SAVESTART | MPSAFE | AUDITVNODE1, pathseg, old, td, oldfd);
@@ -3689,7 +3672,7 @@
pathseg, new, td, newfd);
if ((error = namei(&fromnd)) != 0)
- goto out2;
+ return (error);
fvfslocked = NDHASGIANT(&fromnd);
tvfslocked = 0;
#ifdef MAC
@@ -3777,8 +3760,6 @@
vrele(fromnd.ni_startdir);
VFS_UNLOCK_GIANT(fvfslocked);
VFS_UNLOCK_GIANT(tvfslocked);
-
-out2:
/* Nothing to do, return success. */
if (error == -1)
return (0);
@@ -3837,8 +3818,8 @@
int vfslocked;
AUDIT_ARG(mode, mode);
+restart:
bwillwrite();
-restart:
NDINIT_AT(&nd, CREATE, 0 | LOCKPARENT |
SAVENAME | MPSAFE | AUDITVNODE1, segflg, path, td, fd);
nd.ni_cnd.cn_flags |= WILLBEDIR;
@@ -3928,8 +3909,8 @@
struct nameidata nd;
int vfslocked;
+restart:
bwillwrite();
-restart:
NDINIT_AT(&nd, DELETE, 0 | LOCKPARENT |
LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td, fd);
if ((error = namei(&nd)) != 0)
More information about the p4-projects
mailing list