kernel-ark/fs/xfs
Yingping Lu d210a28cd8 [XFS] In actual allocation of file system blocks and freeing extents, the
transaction within each such operation may involve multiple locking of AGF
buffer. While the freeing extent function has sorted the extents based on
AGF number before entering into transaction, however, when the file system
space is very limited, the allocation of space would try every AGF to get
space allocated, this could potentially cause out-of-order locking, thus
deadlock could happen. This fix mitigates the scarce space for allocation
by setting aside a few blocks without reservation, and avoid deadlock by
maintaining ascending order of AGF locking.

SGI-PV: 947395
SGI-Modid: xfs-linux-melb:xfs-kern:210801a

Signed-off-by: Yingping Lu <yingping@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
2006-06-09 14:55:18 +10:00
..
linux-2.6 [XFS] Add degframentation exclusion support 2006-06-09 14:54:19 +10:00
quota [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
support [XFS] Fixup naming inconsistencies found by Pekka Enberg and one from Jan 2006-03-22 12:47:28 +11:00
Kbuild
Kconfig
Makefile
Makefile-linux-2.6 [XFS] Sync up one/two other minor changes missed in previous merges. 2006-03-22 14:12:12 +11:00
xfs_acl.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_acl.h [XFS] Fixup naming inconsistencies found by Pekka Enberg and one from Jan 2006-03-22 12:47:28 +11:00
xfs_ag.h [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_alloc_btree.c
xfs_alloc_btree.h
xfs_alloc.c [XFS] In actual allocation of file system blocks and freeing extents, the 2006-06-09 14:55:18 +10:00
xfs_alloc.h [XFS] In actual allocation of file system blocks and freeing extents, the 2006-06-09 14:55:18 +10:00
xfs_arch.h [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_attr_leaf.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_attr_leaf.h [XFS] endianess annotations for xfs_attr_leaf_name_remote_t 2006-03-17 17:29:18 +11:00
xfs_attr_sf.h [XFS] endianess annotations for xfs_attr_shortform_t 2006-03-17 17:29:25 +11:00
xfs_attr.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_attr.h
xfs_behavior.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_behavior.h [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_bit.c
xfs_bit.h
xfs_bmap_btree.c [XFS] In actual allocation of file system blocks and freeing extents, the 2006-06-09 14:55:18 +10:00
xfs_bmap_btree.h [XFS] 929045 567344 This mod introduces multi-level in-core file extent 2006-03-14 13:30:23 +11:00
xfs_bmap.c [XFS] In actual allocation of file system blocks and freeing extents, the 2006-06-09 14:55:18 +10:00
xfs_bmap.h [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_btree.c
xfs_btree.h
xfs_buf_item.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_buf_item.h
xfs_cap.h [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_clnt.h [XFS] Implement the silent parameter to fill_super, previously ignored. 2006-03-31 13:04:17 +10:00
xfs_da_btree.c [XFS] endianess annotations for xfs_dir_leaf_entry_t 2006-06-09 14:50:37 +10:00
xfs_da_btree.h [XFS] endianess annotations for xfs_da_node_hdr_t 2006-03-17 17:29:56 +11:00
xfs_dfrag.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10: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] Add degframentation exclusion support 2006-06-09 14:54:19 +10:00
xfs_dir2_block.c [XFS] endianess annotations for xfs_dir2_data_entry_t 2006-06-09 14:48:37 +10:00
xfs_dir2_block.h [XFS] endianess annotations for xfs_dir2_block_tail_t 2006-03-17 17:27:56 +11:00
xfs_dir2_data.c [XFS] endianess annotations for xfs_dir2_data_entry_t 2006-06-09 14:48:37 +10:00
xfs_dir2_data.h [XFS] endianess annotations for xfs_dir2_data_entry_t 2006-06-09 14:48:37 +10:00
xfs_dir2_leaf.c [XFS] endianess annotations for xfs_dir2_data_entry_t 2006-06-09 14:48:37 +10:00
xfs_dir2_leaf.h [XFS] endianess annotations for xfs_dir2_leaf_entry_t 2006-03-17 17:28:18 +11:00
xfs_dir2_node.c [XFS] endianess annotations for xfs_dir2_data_entry_t 2006-06-09 14:48:37 +10:00
xfs_dir2_node.h [XFS] endianess annotations for xfs_dir2_free_hdr_t 2006-03-17 17:27:07 +11:00
xfs_dir2_sf.c [XFS] endianess annotations for xfs_dir2_data_entry_t 2006-06-09 14:48:37 +10:00
xfs_dir2_sf.h
xfs_dir2_trace.c
xfs_dir2_trace.h
xfs_dir2.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_dir2.h [XFS] Make headers compile for more compiler variants; minor cleanup. 2006-03-14 13:20:33 +11:00
xfs_dir_leaf.c [XFS] endianess annotations for xfs_dir_leaf_entry_t 2006-06-09 14:50:37 +10:00
xfs_dir_leaf.h [XFS] endianess annotations for xfs_dir_leaf_entry_t 2006-06-09 14:50:37 +10:00
xfs_dir_sf.h [XFS] Make headers compile for more compiler variants; minor cleanup. 2006-03-14 13:20:33 +11:00
xfs_dir.c [XFS] endianess annotations for xfs_dir_leaf_entry_t 2006-06-09 14:50:37 +10:00
xfs_dir.h [XFS] Sort out cosmetic differences between user and kernel copies of some 2006-01-11 15:33:02 +11:00
xfs_dmapi.h [XFS] Sync up one/two other minor changes missed in previous merges. 2006-03-22 14:12:12 +11:00
xfs_dmops.c
xfs_error.c [XFS] Merge in trivial changes, sync up headers with userspace 2006-01-12 10:29:53 +11:00
xfs_error.h [XFS] Implement the silent parameter to fill_super, previously ignored. 2006-03-31 13:04:17 +10:00
xfs_extfree_item.c
xfs_extfree_item.h
xfs_fs.h [XFS] Add degframentation exclusion support 2006-06-09 14:54:19 +10:00
xfs_fsops.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_fsops.h [XFS] Write log dummy record when freezing filesystem 2006-01-11 15:30:08 +11:00
xfs_ialloc_btree.c
xfs_ialloc_btree.h
xfs_ialloc.c [XFS] Fix a problem in aligning inode allocations to stripe unit 2006-04-11 15:45:05 +10:00
xfs_ialloc.h
xfs_iget.c [XFS] Fix inode reclaim scalability regression. When a filesystem has 2006-04-11 15:11:12 +10:00
xfs_imap.h
xfs_inode_item.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_inode_item.h
xfs_inode.c [XFS] Add degframentation exclusion support 2006-06-09 14:54:19 +10:00
xfs_inode.h [XFS] Fix inode reclaim scalability regression. When a filesystem has 2006-04-11 15:11:12 +10:00
xfs_inum.h
xfs_iocore.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_iomap.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_iomap.h
xfs_itable.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_itable.h [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_log_priv.h [XFS] remove XFS_LOG_RES_DEBUG and turn on the res history all the time to 2006-01-11 21:02:47 +11:00
xfs_log_recover.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_log_recover.h
xfs_log.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_log.h [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_mac.h
xfs_mount.c [XFS] In actual allocation of file system blocks and freeing extents, the 2006-06-09 14:55:18 +10:00
xfs_mount.h [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_qmops.c
xfs_quota.h [XFS] Make project quota enforcement return an error code consistent with 2006-03-31 13:04:49 +10:00
xfs_refcache.h
xfs_rename.c [XFS] Fix a project quota space accounting leak on rename. 2006-05-08 19:51:42 +10:00
xfs_rtalloc.c [XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report 2006-06-09 14:48:12 +10:00
xfs_rtalloc.h
xfs_rw.c [XFS] Complete the pagebuf -> xfs_buf naming convention transition, 2006-01-11 15:39:08 +11:00
xfs_rw.h [XFS] Sync up one/two other minor changes missed in previous merges. 2006-03-22 14:12:12 +11:00
xfs_sb.h [XFS] Sort out cosmetic differences between user and kernel copies of some 2006-01-11 15:33:02 +11:00
xfs_trans_ail.c
xfs_trans_buf.c
xfs_trans_extfree.c
xfs_trans_inode.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_trans_item.c return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
xfs_trans_priv.h
xfs_trans_space.h
xfs_trans.c [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_trans.h [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all 2006-03-29 08:55:14 +10:00
xfs_types.h
xfs_utils.c [XFS] add helper to get xfs_inode from vnode 2006-01-11 20:58:44 +11:00
xfs_utils.h
xfs_vfsops.c [XFS] Fix a possible forced shutdown due to mishandling write barriers 2006-05-08 19:51:28 +10:00
xfs_vnodeops.c [XFS] Add degframentation exclusion support 2006-06-09 14:54:19 +10:00
xfs.h