** NOTE **
This still doesn't fix the underlying linux problems with 2.4.15,
please wait 'til 2.4.16 is merged before running CVS kernels.
** NOTE **
Linux 2.4.15/16 added a clear_inode in one path through iput().
xfs_unmount() was calling VN_RELE, then vn_remove on the same vnode.
But VN_RELE calls iput, calls clear_inode, calls linvfs_clear_inode, calls
vn_remove. Attempting 2 vn_removes in a row on the same vnode will result
in an oops due to a null pointer dereference.
This adds a sanity check to vn_remove to make sure we don't
vn_remove 2x on a vnode.
Date: Tue Nov 27 13:55:56 PST 2001
Workarea: stout.americas.sgi.com:/localhome/eric/2.4.x-xfs/workarea-reallyclean
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:107369a
linux/fs/xfs/linux/xfs_vnode.c - 1.68
- Avoid double vn_removes
|