msdosfs_denode.c (13490) | msdosfs_denode.c (16312) |
---|---|
1/* $Id: msdosfs_denode.c,v 1.15 1995/12/07 12:47:19 davidg Exp $ */ | 1/* $Id: msdosfs_denode.c,v 1.16 1996/01/19 03:58:42 dyson Exp $ */ |
2/* $NetBSD: msdosfs_denode.c,v 1.9 1994/08/21 18:44:00 ws Exp $ */ 3 4/*- 5 * Copyright (C) 1994 Wolfgang Solfrank. 6 * Copyright (C) 1994 TooLs GmbH. 7 * All rights reserved. 8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). 9 * --- 210 unchanged lines hidden (view full) --- 220 * deleted file is still open. 221 */ 222 ldep = msdosfs_hashget(dev, dirclust, diroffset); 223 if (ldep) { 224 *depp = ldep; 225 return 0; 226 } 227 | 2/* $NetBSD: msdosfs_denode.c,v 1.9 1994/08/21 18:44:00 ws Exp $ */ 3 4/*- 5 * Copyright (C) 1994 Wolfgang Solfrank. 6 * Copyright (C) 1994 TooLs GmbH. 7 * All rights reserved. 8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). 9 * --- 210 unchanged lines hidden (view full) --- 220 * deleted file is still open. 221 */ 222 ldep = msdosfs_hashget(dev, dirclust, diroffset); 223 if (ldep) { 224 *depp = ldep; 225 return 0; 226 } 227 |
228 /* 229 * Do the MALLOC before the getnewvnode since doing so afterward 230 * might cause a bogus v_data pointer to get dereferenced 231 * elsewhere if MALLOC should block. 232 */ 233 MALLOC(ldep, struct denode *, sizeof(struct denode), M_MSDOSFSNODE, M_WAITOK); |
|
228 229 /* 230 * Directory entry was not in cache, have to create a vnode and 231 * copy it from the passed disk buffer. 232 */ 233 /* getnewvnode() does a VREF() on the vnode */ 234 error = getnewvnode(VT_MSDOSFS, mntp, msdosfs_vnodeop_p, &nvp); 235 if (error) { | 234 235 /* 236 * Directory entry was not in cache, have to create a vnode and 237 * copy it from the passed disk buffer. 238 */ 239 /* getnewvnode() does a VREF() on the vnode */ 240 error = getnewvnode(VT_MSDOSFS, mntp, msdosfs_vnodeop_p, &nvp); 241 if (error) { |
236 *depp = 0; | 242 *depp = NULL; 243 FREE(ldep, M_MSDOSFSNODE); |
237 return error; 238 } | 244 return error; 245 } |
239 MALLOC(ldep, struct denode *, sizeof(struct denode), M_MSDOSFSNODE, M_WAITOK); | |
240 bzero((caddr_t)ldep, sizeof *ldep); 241 nvp->v_data = ldep; 242 ldep->de_vnode = nvp; 243 ldep->de_flag = 0; 244 ldep->de_devvp = 0; 245 ldep->de_lockf = 0; 246 ldep->de_dev = dev; 247 ldep->de_dirclust = dirclust; --- 483 unchanged lines hidden --- | 246 bzero((caddr_t)ldep, sizeof *ldep); 247 nvp->v_data = ldep; 248 ldep->de_vnode = nvp; 249 ldep->de_flag = 0; 250 ldep->de_devvp = 0; 251 ldep->de_lockf = 0; 252 ldep->de_dev = dev; 253 ldep->de_dirclust = dirclust; --- 483 unchanged lines hidden --- |