Date: Thu, 28 Mar 2002 14:29:11 -0500 From: "Brian F. Feldman" <green@FreeBSD.org> To: arch@FreeBSD.org Subject: vnode::v_op bugfix / PERFORCE change 8574 for review (fwd) Message-ID: <200203281929.g2SJTBW04780@green.bikeshed.org>
next in thread | raw e-mail | index | archive | help
This seems to fix -CURRENT after the last round of bugs that UMA evidenced. Does anyone have objections to modifying this behavior of VFS? I have a copy of the patch to get between the two up at: http://green.bikeshed.org/~green/v_op-indirection.patch ------- Forwarded Message Date: Thu, 28 Mar 2002 09:09:42 -0800 (PST) Message-Id: <200203281709.g2SH9g038754@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to green@freebsd.org using -f From: Brian Feldman <green@FreeBSD.org> Subject: PERFORCE change 8574 for review To: Perforce Change Reviews <perforce@freebsd.org> http://people.freebsd.org/~peter/p4db/chv.cgi?CH=8574 Change 8574 by green@green_laptop_2 on 2002/03/28 09:09:26 Turn struct vnode {}'s v_op field from a vop_t ** to a vop_t ***. Previously, it pointed to the actual vfs_init.c-generated operation vector being used. However, this vector could be redone at runtime via introduction of new vnode operations and removal of old ones; this would result in the old vnode operation vector being freed from underneath. This didn't show up before since the old kernel malloc(9) coincidentally kept the old vop_t ** in the vnodes valid. Jeff Roberson's UMA commit made this bug apparent due to differently-sized chunks of memory actually being likely to be allocated in different spots than previously allocated at even if the size was grown just by a few bytes. The new vop_t *** actually points to the operation vector pointer the kernel uses and modifies on-the-fly so that old vnodes, and new ones created with getnewvnode(), both call the correct operations. Getnewvnode()'s vop_t **vops argument changes to a vop_t *** to reflect this. -- Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\ <> green@FreeBSD.org <> bfeldman@tislabs.com \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203281929.g2SJTBW04780>