Deleted Added
full compact
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 ---