kernel-hacking-2024-linux-s.../fs/xfs
Dave Chinner d4f3512b08 xfs: flush outstanding buffers on log mount failure
When we fail to mount the log in xfs_mountfs(), we tear down all the
infrastructure we have already allocated. However, the process of
mounting the log may have progressed to the point of reading,
caching and modifying buffers in memory. Hence before we can free
all the infrastructure, we have to flush and remove all the buffers
from memory.

Problem first reported by Eric Sandeen, later a different incarnation
was reported by Ben Myers.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>
2012-05-14 16:21:02 -05:00
..
Kconfig
kmem.c
kmem.h
Makefile xfs: move xfs_do_force_shutdown() and kill xfs_rw.c 2012-05-14 16:20:59 -05:00
mrlock.h
time.h
uuid.c
uuid.h
xfs.h
xfs_acl.c
xfs_acl.h
xfs_ag.h xfs: move busy extent handling to it's own file 2012-05-14 16:20:55 -05:00
xfs_alloc.c xfs: clean up busy extent naming 2012-05-14 16:20:56 -05:00
xfs_alloc.h xfs: move busy extent handling to it's own file 2012-05-14 16:20:55 -05:00
xfs_alloc_btree.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_alloc_btree.h
xfs_aops.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_aops.h xfs: log file size updates at I/O completion time 2012-03-13 16:30:49 -05:00
xfs_attr.c xfs: move xfs_get_extsz_hint() and kill xfs_rw.h 2012-05-14 16:20:58 -05:00
xfs_attr.h
xfs_attr_leaf.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_attr_leaf.h
xfs_attr_sf.h
xfs_bit.c
xfs_bit.h
xfs_bmap.c xfs: move xfs_get_extsz_hint() and kill xfs_rw.h 2012-05-14 16:20:58 -05:00
xfs_bmap.h xfs: move xfs_fsb_to_db to xfs_bmap.h 2012-05-14 16:20:57 -05:00
xfs_bmap_btree.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_bmap_btree.h
xfs_btree.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_btree.h
xfs_buf.c xfs: Properly exclude IO type flags from buffer flags 2012-05-14 16:21:01 -05:00
xfs_buf.h xfs: kill XBF_DONTBLOCK 2012-05-14 16:20:52 -05:00
xfs_buf_item.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_buf_item.h
xfs_da_btree.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_da_btree.h
xfs_dfrag.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_dfrag.h
xfs_dinode.h
xfs_dir2.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_dir2.h
xfs_dir2_block.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_dir2_data.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_dir2_format.h
xfs_dir2_leaf.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_dir2_node.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_dir2_priv.h
xfs_dir2_sf.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_discard.c xfs: clean up busy extent naming 2012-05-14 16:20:56 -05:00
xfs_discard.h
xfs_dquot.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_dquot.h xfs: on-stack delayed write buffer lists 2012-05-14 16:20:31 -05:00
xfs_dquot_item.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_dquot_item.h
xfs_error.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_error.h
xfs_export.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_export.h
xfs_extent_busy.c xfs: clean up busy extent naming 2012-05-14 16:20:56 -05:00
xfs_extent_busy.h xfs: clean up busy extent naming 2012-05-14 16:20:56 -05:00
xfs_extfree_item.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_extfree_item.h
xfs_file.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_filestream.c
xfs_filestream.h
xfs_fs.h
xfs_fs_subr.c
xfs_fsops.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_fsops.h
xfs_globals.c
xfs_ialloc.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_ialloc.h xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_ialloc_btree.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_ialloc_btree.h
xfs_iget.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_inode.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_inode.h xfs: move xfs_get_extsz_hint() and kill xfs_rw.h 2012-05-14 16:20:58 -05:00
xfs_inode_item.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_inode_item.h xfs: pass shutdown method into xfs_trans_ail_delete_bulk 2012-05-14 16:20:33 -05:00
xfs_inum.h xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_ioctl.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_ioctl.h
xfs_ioctl32.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_ioctl32.h
xfs_iomap.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_iomap.h
xfs_iops.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_iops.h
xfs_itable.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_itable.h
xfs_linux.h
xfs_log.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_log.h xfs: allow assigning the tail lsn with the AIL lock held 2012-05-14 16:20:26 -05:00
xfs_log_cil.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_log_priv.h xfs: Do background CIL flushes via a workqueue 2012-05-14 16:20:34 -05:00
xfs_log_recover.c xfs: move xfs_get_extsz_hint() and kill xfs_rw.h 2012-05-14 16:20:58 -05:00
xfs_log_recover.h
xfs_message.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_message.h
xfs_mount.c xfs: flush outstanding buffers on log mount failure 2012-05-14 16:21:02 -05:00
xfs_mount.h xfs: Do background CIL flushes via a workqueue 2012-05-14 16:20:34 -05:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_qm.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_qm.h xfs: remove the global xfs_Gqm structure 2012-03-14 12:06:32 -05:00
xfs_qm_bhv.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_qm_syscalls.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_quota.h
xfs_quota_priv.h xfs: use per-filesystem radix trees for dquot lookup 2012-03-14 11:09:06 -05:00
xfs_quotaops.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_rename.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_rtalloc.c xfs: move xfs_get_extsz_hint() and kill xfs_rw.h 2012-05-14 16:20:58 -05:00
xfs_rtalloc.h
xfs_sb.h
xfs_stats.c xfs: use common code for quota statistics 2012-03-14 11:09:06 -05:00
xfs_stats.h xfs: use common code for quota statistics 2012-03-14 11:09:06 -05:00
xfs_super.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_super.h xfs: remove the global xfs_Gqm structure 2012-03-14 12:06:32 -05:00
xfs_sync.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_sync.h xfs: log timestamp updates 2012-03-13 17:01:15 -05:00
xfs_sysctl.c
xfs_sysctl.h
xfs_trace.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_trace.h xfs: clean up busy extent naming 2012-05-14 16:20:56 -05:00
xfs_trans.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_trans.h xfs: on-stack delayed write buffer lists 2012-05-14 16:20:31 -05:00
xfs_trans_ail.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_trans_buf.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_trans_dquot.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_trans_extfree.c xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_trans_inode.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_trans_priv.h xfs: pass shutdown method into xfs_trans_ail_delete_bulk 2012-05-14 16:20:33 -05:00
xfs_trans_space.h
xfs_types.h xfs: move xfsagino_t to xfs_types.h 2012-05-14 16:20:54 -05:00
xfs_utils.c xfs: clean up xfs_bit.h includes 2012-05-14 16:21:00 -05:00
xfs_utils.h
xfs_vnode.h xfs: remove remaining scraps of struct xfs_iomap 2012-03-15 13:40:16 -05:00
xfs_vnodeops.c xfs: move xfs_get_extsz_hint() and kill xfs_rw.h 2012-05-14 16:20:58 -05:00
xfs_vnodeops.h xfs: remove remaining scraps of struct xfs_iomap 2012-03-15 13:40:16 -05:00
xfs_xattr.c