fdesc_vnops.c (89316) | fdesc_vnops.c (89319) |
---|---|
1/* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software donated to Berkeley by 6 * Jan-Simon Pendry. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 21 unchanged lines hidden (view full) --- 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 37 * | 1/* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software donated to Berkeley by 6 * Jan-Simon Pendry. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 21 unchanged lines hidden (view full) --- 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 37 * |
38 * $FreeBSD: head/sys/fs/fdescfs/fdesc_vnops.c 89316 2002-01-13 21:37:49Z alfred $ | 38 * $FreeBSD: head/sys/fs/fdescfs/fdesc_vnops.c 89319 2002-01-14 00:13:45Z alfred $ |
39 */ 40 41/* 42 * /dev/fd Filesystem 43 */ 44 45#include <sys/param.h> 46#include <sys/systm.h> --- 161 unchanged lines hidden (view full) --- 208 while (nlen--) { 209 if (*pname < '0' || *pname > '9') { 210 error = ENOENT; 211 goto bad; 212 } 213 fd = 10 * fd + *pname++ - '0'; 214 } 215 | 39 */ 40 41/* 42 * /dev/fd Filesystem 43 */ 44 45#include <sys/param.h> 46#include <sys/systm.h> --- 161 unchanged lines hidden (view full) --- 208 while (nlen--) { 209 if (*pname < '0' || *pname > '9') { 210 error = ENOENT; 211 goto bad; 212 } 213 fd = 10 * fd + *pname++ - '0'; 214 } 215 |
216 fp = ffind_hold(td, fd); 217 if (fp == NULL) { 218 error = EBADF; | 216 if ((error = fget(td, fd, &fp)) != 0) |
219 goto bad; | 217 goto bad; |
220 } | |
221 222 error = fdesc_allocvp(Fdesc, FD_DESC+fd, dvp->v_mount, &fvp, td); 223 fdrop(fp, td); 224 if (error) 225 goto bad; 226 VTOFDESC(fvp)->fd_fd = fd; 227 vn_lock(fvp, LK_SHARED | LK_RETRY, td); 228 *vpp = fvp; --- 67 unchanged lines hidden (view full) --- 296 vap->va_flags = 0; 297 vap->va_rdev = 0; 298 vap->va_bytes = 0; 299 break; 300 301 case Fdesc: 302 fd = VTOFDESC(vp)->fd_fd; 303 | 218 219 error = fdesc_allocvp(Fdesc, FD_DESC+fd, dvp->v_mount, &fvp, td); 220 fdrop(fp, td); 221 if (error) 222 goto bad; 223 VTOFDESC(fvp)->fd_fd = fd; 224 vn_lock(fvp, LK_SHARED | LK_RETRY, td); 225 *vpp = fvp; --- 67 unchanged lines hidden (view full) --- 293 vap->va_flags = 0; 294 vap->va_rdev = 0; 295 vap->va_bytes = 0; 296 break; 297 298 case Fdesc: 299 fd = VTOFDESC(vp)->fd_fd; 300 |
304 fp = ffind_hold(ap->a_td, fd); 305 if (fp == NULL) 306 return (EBADF); | 301 if ((error = fget(ap->a_td, fd, &fp)) != 0) 302 return (error); |
307 308 bzero(&stb, sizeof(stb)); 309 error = fo_stat(fp, &stb, ap->a_td); 310 fdrop(fp, ap->a_td); 311 if (error == 0) { 312 VATTR_NULL(vap); 313 vap->va_type = IFTOVT(stb.st_mode); 314 vap->va_mode = stb.st_mode; --- 262 unchanged lines hidden --- | 303 304 bzero(&stb, sizeof(stb)); 305 error = fo_stat(fp, &stb, ap->a_td); 306 fdrop(fp, ap->a_td); 307 if (error == 0) { 308 VATTR_NULL(vap); 309 vap->va_type = IFTOVT(stb.st_mode); 310 vap->va_mode = stb.st_mode; --- 262 unchanged lines hidden --- |