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