linux/fs/gfs2
Steven Whitehouse 3af165ac4d GFS2: Fix use-after-free bug on umount
There was a use-after-free with the GFS2 super block during
umount. This patch moves almost all of the umount code from
->put_super into ->kill_sb, the only bit that cannot be moved
being the glock hash clearing which has to remain as ->put_super
due to umount ordering requirements. As a result its now obvious
that the kfree is the final operation, whereas before it was
hidden in ->put_super.

Also gfs2_jindex_free is then only referenced from a single file
so thats moved and marked static too.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2009-01-05 07:39:14 +00:00
..
locking/dlm GFS2: Send some sensible sysfs stuff 2009-01-05 07:39:10 +00:00
acl.c GFS2: Move di_eattr into "proper" inode 2009-01-05 07:38:57 +00:00
acl.h
bmap.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
bmap.h
dir.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
dir.h GFS2: Fix bug in gfs2_lock_fs_check_clean() 2009-01-05 07:39:11 +00:00
eaops.c
eaops.h
eattr.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
eattr.h
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c GFS2: Fix use-after-free bug on umount 2009-01-05 07:39:14 +00:00
glock.h GFS2: Fix use-after-free bug on umount 2009-01-05 07:39:14 +00:00
glops.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
glops.h
incore.h GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
inode.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
inode.h GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
Kconfig [GFS2] No lock_nolock 2008-06-27 09:39:28 +01:00
locking.c [GFS2] Fix ordering of args for list_add 2008-06-27 09:39:34 +01:00
log.c GFS2: Support for I/O barriers 2008-09-26 10:23:22 +01:00
log.h [GFS2] trivial sparse lock annotations 2008-06-27 09:39:31 +01:00
lops.c
lops.h
main.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
Makefile GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
meta_io.c [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
meta_io.h [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
mount.c GFS2: Remove ancient, unused code 2009-01-05 07:39:13 +00:00
mount.h
ops_address.c GFS2: Move i_size from gfs2_dinode_host and rename it to i_disksize 2009-01-05 07:38:58 +00:00
ops_address.h
ops_dentry.c GFS2: Rationalise header files 2009-01-05 07:38:48 +00:00
ops_export.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
ops_file.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
ops_fstype.c GFS2: Fix use-after-free bug on umount 2009-01-05 07:39:14 +00:00
ops_inode.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
ops_super.c GFS2: Fix use-after-free bug on umount 2009-01-05 07:39:14 +00:00
quota.c GFS2: Fix "truncate in progress" hang 2009-01-05 07:39:06 +00:00
quota.h GFS2: Move gfs2_recoverd into recovery.c 2009-01-05 07:39:07 +00:00
recovery.c GFS2: Move four functions from super.c 2009-01-05 07:39:12 +00:00
recovery.h GFS2: Move gfs2_recoverd into recovery.c 2009-01-05 07:39:07 +00:00
rgrp.c GFS2: Banish struct gfs2_rgrpd_host 2009-01-05 07:39:03 +00:00
rgrp.h
super.c GFS2: Fix use-after-free bug on umount 2009-01-05 07:39:14 +00:00
super.h GFS2: Fix use-after-free bug on umount 2009-01-05 07:39:14 +00:00
sys.c GFS2: Remove ancient, unused code 2009-01-05 07:39:13 +00:00
sys.h GFS2: Remove ancient, unused code 2009-01-05 07:39:13 +00:00
trans.c
trans.h
util.c GFS2: Clean up & move gfs2_quotad 2009-01-05 07:39:05 +00:00
util.h GFS2: Clean up & move gfs2_quotad 2009-01-05 07:39:05 +00:00