linux/fs/xfs
Lachlan McIlroy 2abdb8c881 [XFS] Prevent xfs_bmap_check_leaf_extents() referencing unmapped memory.
While investigating the extent corruption bug I ran into this bug in debug
only code. xfs_bmap_check_leaf_extents() loops through the leaf blocks of
the extent btree checking that every extent is entirely before the next
extent. It also compares the last extent in the previous block to the
first extent in the current block when the previous block has been
released and potentially unmapped. So take a copy of the last extent
instead of a pointer. Also move the last extent check out of the loop
because we only need to do it once.

SGI-PV: 976035
SGI-Modid: xfs-linux-melb:xfs-kern:30718a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
2008-04-18 11:49:51 +10:00
..
linux-2.6 [XFS] split xfs_ioc_xattr 2008-04-18 11:44:03 +10:00
quota [XFS] remove most calls to VN_RELE 2008-04-18 11:49:08 +10:00
support [XFS] Use power-of-2 sized buffers to reduce overhead 2008-04-18 11:40:04 +10:00
Kconfig [PATCH] BLOCK: Make it possible to disable the block layer [try #6] 2006-09-30 20:52:31 +02:00
Makefile [XFS] Added quota targets and removed dmapi directory 2008-02-18 13:06:17 +11:00
xfs.h [XFS] clean up vnode/inode tracing 2008-02-07 16:42:19 +11:00
xfs_acl.c [XFS] use generic_permission 2008-02-07 18:22:38 +11:00
xfs_acl.h [XFS] use generic_permission 2008-02-07 18:22:38 +11:00
xfs_ag.h [XFS] Unwrap pagb_lock. 2008-02-07 16:46:39 +11:00
xfs_alloc.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_alloc.h [XFS] Lazy Superblock Counters 2007-07-14 15:28:50 +10:00
xfs_alloc_btree.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_alloc_btree.h [XFS] Remove unused arguments from the XFS_BTREE_*_ADDR macros. 2007-02-10 18:37:33 +11:00
xfs_arch.h xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_attr.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_attr.h [XFS] kill struct bhv_vnode 2007-10-16 11:40:24 +10:00
xfs_attr_leaf.c [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_attr_leaf.h [XFS] Add EA list callbacks for xfs kernel use. Cleanup some namespace 2006-09-28 11:01:37 +10:00
xfs_attr_sf.h [XFS] endianess annotations for xfs_attr_shortform_t 2006-03-17 17:29:25 +11:00
xfs_bit.c [XFS] Undo bit ops cleanup mod due to regression on 32-bit powermac 2008-02-26 17:05:44 +11:00
xfs_bit.h [XFS] Undo bit ops cleanup mod due to regression on 32-bit powermac 2008-02-26 17:05:44 +11:00
xfs_bmap.c [XFS] Prevent xfs_bmap_check_leaf_extents() referencing unmapped memory. 2008-04-18 11:49:51 +10:00
xfs_bmap.h [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_bmap_btree.c [XFS] Ensure a btree insert returns a valid cursor. 2008-04-18 11:42:21 +10:00
xfs_bmap_btree.h [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_btree.c [XFS] endianess annotations for xfs_bmbt_key Trivial as there are no 2006-09-28 10:58:17 +10:00
xfs_btree.h [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_buf_item.c [XFS] Unwrap AIL_LOCK 2008-02-07 16:44:23 +11:00
xfs_buf_item.h [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_clnt.h [XFS] If you mount an XFS filesystem with no mount options at all, then 2008-02-28 20:37:56 -08:00
xfs_da_btree.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_da_btree.h [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_dfrag.c [XFS] stop re-checking permissions in xfs_swapext 2008-02-07 18:22:24 +11:00
xfs_dfrag.h [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_dinode.h [XFS] Remove CFORK macros and use code directly in IFORK and DFORK macros. 2008-02-07 18:19:24 +11:00
xfs_dir2.c [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_dir2.h [XFS] decontaminate vnode operations from behavior details 2007-10-15 16:54:29 +10:00
xfs_dir2_block.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_dir2_block.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_data.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_dir2_data.h [XFS] Reduce shouting by removing unnecessary macros from dir2 code. 2007-07-14 15:37:02 +10:00
xfs_dir2_leaf.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_dir2_leaf.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_node.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_dir2_node.h [XFS] Reduce shouting by removing unnecessary macros from dir2 code. 2007-07-14 15:37:02 +10:00
xfs_dir2_sf.c [XFS] Put the correct offset in dirent d_off 2007-12-18 17:16:23 +11:00
xfs_dir2_sf.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_dir2_trace.c [XFS] Remove version 1 directory code. Never functioned on Linux, just 2006-06-20 13:04:51 +10:00
xfs_dir2_trace.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_dmapi.h [XFS] kill the vfs_flags member in struct bhv_vfs 2007-10-16 11:45:57 +10:00
xfs_dmops.c [XFS] fixups after behavior removal merge into mainline git 2007-10-19 17:14:45 +10:00
xfs_error.c [XFS] lose xfs_hex_dump in favor of print_hex_dump 2008-02-07 18:13:05 +11:00
xfs_error.h [XFS] lose xfs_hex_dump in favor of print_hex_dump 2008-02-07 18:13:05 +11:00
xfs_extfree_item.c [XFS] Unwrap AIL_LOCK 2008-02-07 16:44:23 +11:00
xfs_extfree_item.h [XFS] cleanup the field types of some item format structures 2006-09-28 10:55:43 +10:00
xfs_filestream.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_filestream.h [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00
xfs_fs.h [XFS] fix 32-bit compat ioctls for GETXFLAGS, SETXFLAGS, GETVERSION 2008-02-07 18:13:17 +11:00
xfs_fsops.c [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_fsops.h [XFS] Write log dummy record when freezing filesystem 2006-01-11 15:30:08 +11:00
xfs_ialloc.c [XFS] Account for inode cluster alignment in all allocations 2008-04-18 11:42:09 +10:00
xfs_ialloc.h [XFS] Pick a single default inode cluster size. 2007-10-15 16:39:35 +10:00
xfs_ialloc_btree.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_ialloc_btree.h [XFS] kill XFS_INOBT_IS_FREE_DISK 2008-02-07 18:12:41 +11:00
xfs_iget.c [XFS] Remove the xfs_icluster structure 2008-04-18 11:37:41 +10:00
xfs_imap.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_inode.c [XFS] Use xfs_inode_clean() in more places 2008-04-18 11:37:51 +10:00
xfs_inode.h [XFS] Remove the xfs_icluster structure 2008-04-18 11:37:41 +10:00
xfs_inode_item.c [XFS] remove shouting-indirection macros from xfs_sb.h 2008-04-10 16:24:45 +10:00
xfs_inode_item.h [XFS] Use xfs_inode_clean() in more places 2008-04-18 11:37:51 +10:00
xfs_inum.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_iomap.c [XFS] optimize XFS_IS_REALTIME_INODE w/o realtime config 2008-02-07 18:16:43 +11:00
xfs_iomap.h [XFS] kill unnessecary ioops indirection 2008-02-07 16:44:14 +11:00
xfs_itable.c [XFS] Don't block pdflush when writing back inodes 2008-04-18 11:37:32 +10:00
xfs_itable.h [XFS] Fix XFS_IOC_FSBULKSTAT{,_SINGLE} & XFS_IOC_FSINUMBERS in compat mode 2007-07-14 15:42:50 +10:00
xfs_log.c [XFS] Use atomics for iclog reference counting 2008-04-18 11:38:10 +10:00
xfs_log.h [XFS] xlog_rec_header/xlog_rec_ext_header endianess annotations 2008-02-07 18:11:47 +11:00
xfs_log_priv.h [XFS] Use atomics for iclog reference counting 2008-04-18 11:38:10 +10:00
xfs_log_recover.c [XFS] remove most calls to VN_RELE 2008-04-18 11:49:08 +10:00
xfs_log_recover.h [XFS] Update license/copyright notices to match the prefered SGI 2005-11-02 14:58:39 +11:00
xfs_mount.c [XFS] remove most calls to VN_RELE 2008-04-18 11:49:08 +10:00
xfs_mount.h [XFS] Replace custom AIL linked-list code with struct list_head 2008-04-18 11:41:57 +10:00
xfs_mru_cache.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_mru_cache.h [XFS] On-demand reaping of the MRU cache 2007-09-17 16:42:02 +10:00
xfs_qmops.c [XFS] Unwrap XFS_SB_LOCK. 2008-02-07 16:47:15 +11:00
xfs_quota.h [XFS] remove dependency of the quota module on behaviors 2007-10-16 11:43:26 +10:00
xfs_refcache.h [XFS] Cleanup cosmetic differences between source trees. 2005-11-03 16:14:31 +11:00
xfs_rename.c [XFS] cleanup vnode use in xfs_symlink and xfs_rename 2008-04-18 11:40:45 +10:00
xfs_rtalloc.c [XFS] remove most calls to VN_RELE 2008-04-18 11:49:08 +10:00
xfs_rtalloc.h [XFS] optimize XFS_IS_REALTIME_INODE w/o realtime config 2008-02-07 18:16:43 +11:00
xfs_rw.c [XFS] decontaminate vfs operations from behavior details 2007-10-16 11:43:55 +10:00
xfs_rw.h [XFS] optimize XFS_IS_REALTIME_INODE w/o realtime config 2008-02-07 18:16:43 +11:00
xfs_sb.h [XFS] Ensure "both" features2 slots are consistent 2008-04-10 16:25:26 +10:00
xfs_trans.c xfs: convert beX_add to beX_add_cpu (new common API) 2008-02-13 16:21:19 -08:00
xfs_trans.h [XFS] Replace custom AIL linked-list code with struct list_head 2008-04-18 11:41:57 +10:00
xfs_trans_ail.c [XFS] Replace custom AIL linked-list code with struct list_head 2008-04-18 11:41:57 +10:00
xfs_trans_buf.c [XFS] Don't block pdflush when writing back inodes 2008-04-18 11:37:32 +10:00
xfs_trans_extfree.c [XFS] Radix tree based inode caching 2007-10-15 16:50:50 +10:00
xfs_trans_inode.c [XFS] Remove version 1 directory code. Never functioned on Linux, just 2006-06-20 13:04:51 +10:00
xfs_trans_item.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_trans_priv.h [XFS] Move AIL pushing into it's own thread 2008-02-07 18:22:51 +11:00
xfs_trans_space.h [XFS] Remove version 1 directory code. Never functioned on Linux, just 2006-06-20 13:04:51 +10:00
xfs_types.h [XFS] use filldir internally 2007-10-15 16:49:49 +10:00
xfs_utils.c [XFS] kill xfs_get_dir_entry 2008-04-18 11:39:14 +10:00
xfs_utils.h [XFS] kill xfs_get_dir_entry 2008-04-18 11:39:14 +10:00
xfs_vfsops.c [XFS] remove most calls to VN_RELE 2008-04-18 11:49:08 +10:00
xfs_vfsops.h [XFS] kill xfs_root 2008-02-07 18:24:00 +11:00
xfs_vnodeops.c [XFS] cleanup vnode use in xfs_lookup 2008-04-18 11:40:55 +10:00
xfs_vnodeops.h [XFS] cleanup vnode use in xfs_lookup 2008-04-18 11:40:55 +10:00