Fix an inode use-after-free durin an unpin.
When reclaiming inodes that have been unlinked, we may
need to execute transactions during reclaim. By the time
the transaction has hit the disk, the linux inode and xfs
vnode may already have been freed so we can't reference
them safely. Use the known xfs inode state to determine
if it is safe to reference the vnode and linux inode
during the unpin operation.
Date: Wed Apr 5 15:06:48 AEST 2006
Workarea: chook.melbourne.sgi.com:/build/dgc/isms/2.6.x-xfs
Inspected by: nathans
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:25687a
fs/xfs/xfs_inode.c - 1.436 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.436&r2=text&tr2=1.435&f=h
- Don't try to mark an inode dirty during an unpin
if it is being reclaimed. If it is being reclaimed,
the inode may have already been freed.
|