commit afae00ab45ea71d89086f924ebee6ca51c81e48e Author: Sunil Mushran Date: Wed Apr 12 14:37:00 2006 -0700 ocfs2: fix gfp mask in some file system paths We were using GFP_KERNEL in a handful of places which really wanted GFP_NOFS. Fix this. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit dd4a2c2bfe159cc39e9672e875c8314563699764 Author: Mark Fasheh Date: Wed Apr 12 14:24:05 2006 -0700 ocfs2: Don't populate uptodate cache in ocfs2_force_read_journal() This greatly reduces the amount of memory useded during recovery. Signed-off-by: Mark Fasheh commit c4374f8a6093fbee42ac4368b3ca180d1d0c7c6d Author: Mark Fasheh Date: Fri May 5 19:04:35 2006 -0700 ocfs2: take meta data lock in ocfs2_file_aio_read() Temporarily take the meta data lock in ocfs2_file_aio_read() to allow us to update our inode fields. Signed-off-by: Mark Fasheh commit 53013cba4118a5cfe8f7c7ea5e5bc1c48b160f76 Author: Mark Fasheh Date: Fri May 5 19:04:03 2006 -0700 ocfs2: take data locks around extend We need to take a data lock around extends to protect the pages that ocfs2_zero_extend is going to be pulling into the page cache. Otherwise an extend on one node might populate the page cache with data pages that have no lock coverage. Signed-off-by: Mark Fasheh commit a9e2ae39170d01937725e1fff2e606baaa71346c Author: Mark Fasheh Date: Fri Mar 24 14:20:17 2006 -0800 ocfs2: Better I/O error handling in heartbeat Propagate errors received in o2hb_bio_end_io() back to the heartbeat thread so it can skip re-arming the timer. Signed-off-by: Mark Fasheh commit 2cd9888590c52ac7592e3607d0a3174ccd57ef86 Author: Mark Fasheh Date: Wed Mar 29 16:49:13 2006 -0800 ocfs2: test and set teardown flag early in user_dlm_destroy_lock() Signed-off-by: Mark Fasheh commit f43e6918c0e3906fd4483316f6a1a07bba615908 Author: Mark Fasheh Date: Wed Mar 29 18:24:12 2006 -0800 ocfs2: Handle the DLM_CANCELGRANT case in user_unlock_ast() Remove the code which attempted to catch it via dlmunlock() return status - this never happens there. Signed-off-by: Mark Fasheh commit cc6eb725955efb026007e1d7da8fe5383981afd2 Author: Mark Fasheh Date: Wed Mar 29 10:34:21 2006 -0800 ocfs2: catch an invalid ast case in dlmfs Signed-off-by: Mark Fasheh commit 1f7bc828e30fe3e23ea0968b9595ad20e2785978 Author: Mark Fasheh Date: Wed Mar 29 10:33:35 2006 -0800 ocfs2: remove an overly aggressive BUG() in dlmfs Don't BUG() user_dlm_unblock_lock() on the absence of the USER_LOCK_BLOCKED flag - this turns out to be a valid case. Make some of the related BUG() statements print more useful information. Signed-off-by: Mark Fasheh commit ab0920ce7ebb6d60063c793f227ae198a492251b Author: Mark Fasheh Date: Thu Mar 16 15:06:37 2006 -0800 ocfs2: multi node truncate fix Fix ocfs2_truncate_file() so that it forces a truncate_inode_pages() on all interested nodes in all cases of a truncate(), not just allocation change. Signed-off-by: Mark Fasheh commit 4b6f5d20b04dcbc3d888555522b90ba6d36c4106 Author: Arjan van de Ven Date: Tue Mar 28 01:56:42 2006 -0800 [PATCH] Make most file operations structs in fs/ const This is a conversion to make the various file_operations structs in fs/ const. Basically a regexp job, with a few manual fixups The goal is both to increase correctness (harder to accidentally write to shared datastructures) and reducing the false sharing of cachelines with things that get dirty in .data (while .rodata is nicely read only and thus cache clean) Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1d8fa7a2b9a39d18727acc5c468e870df606c852 Author: Badari Pulavarty Date: Sun Mar 26 01:38:02 2006 -0800 [PATCH] remove ->get_blocks() support Now that get_block() can handle mapping multiple disk blocks, no need to have ->get_blocks(). This patch removes fs specific ->get_blocks() added for DIO and makes it users use get_block() instead. Signed-off-by: Badari Pulavarty Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 205f87f6b342444f722e4559d33318686f7df2ca Author: Badari Pulavarty Date: Sun Mar 26 01:38:00 2006 -0800 [PATCH] change buffer_head.b_size to size_t Increase the size of the buffer_head b_size field (only) for 64 bit platforms. Update some old and moldy comments in and around the structure as well. The b_size increase allows us to perform larger mappings and allocations for large I/O requests from userspace, which tie in with other changes allowing the get_block_t() interface to map multiple blocks at once. Signed-off-by: Nathan Scott Signed-off-by: Badari Pulavarty Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5515eff811cb807f0d3221a6e8cc223c7850d205 Author: Andrew Morton Date: Sun Mar 26 01:37:53 2006 -0800 [PATCH] 2tb-files-add-blkcnt_t-fixes Cc: Takashi Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ea8aa68d36026c4c3d938170b06957aeac9682f4 Author: Mark Fasheh Date: Mon Mar 6 12:33:14 2006 -0800 ocfs2: finally remove MLF* macros Signed-off-by: Mark Fasheh commit b0697053f9e8de9cea3d510d9e290851ece9460b Author: Mark Fasheh Date: Fri Mar 3 10:24:33 2006 -0800 ocfs2: don't use MLF* in the file system Signed-off-by: Mark Fasheh commit 29004858a76ba9e26393dd8a85e653f105a33753 Author: Kurt Hackel Date: Thu Mar 2 16:43:36 2006 -0800 ocfs2: don't use MLF* in dlm/ files Signed-off-by: Kurt Hackel Signed-off-by: Mark Fasheh commit 70bacbdbfa6f63f8cd10432891f9ecee62397ff2 Author: Mark Fasheh Date: Thu Mar 2 11:10:05 2006 -0800 ocfs2: don't use MLF* in cluster/ files Signed-off-by: Mark Fasheh commit c03872f5f50bc10f2a1a485f08879a8d01bcfe49 Author: Kurt Hackel Date: Mon Mar 6 14:08:49 2006 -0800 [PATCH] ocfs2: dlm recovery fixes when starting lock mastery (excepting the recovery lock) wait on any nodes needing recovery. fix one instance where lock resources were left attached to the recovery list after recovery completed. ensure that the node_down code is run uniformly regardless of which node found the dead node first. Signed-off-by: Kurt Hackel Signed-off-by: Mark Fasheh commit 9c6510a5bfe2f1c5f5b93386c06954be02e974e4 Author: Kurt Hackel Date: Thu Mar 2 18:09:26 2006 -0800 [PATCH] ocfs2: fix hang in dlm lock resource mastery fixes hangs in lock mastery related to refcounting on the mle structure Signed-off-by: Kurt Hackel Signed-off-by: Mark Fasheh commit a74e1f0e8a7858c9ba6065480c88d7feba3520ac Author: Mark Fasheh Date: Fri Mar 3 10:18:58 2006 -0800 ocfs2: use __attribute__ format Use the "format" attribute on ocfs2_error() and ocfs2_abort() so that the compiler will warn when we get calls to those functions wrong. Signed-off-by: Mark Fasheh commit fffb60f93ce5880aade88e01d7133b52a4879710 Author: Paul Jackson Date: Fri Mar 24 03:16:06 2006 -0800 [PATCH] cpuset memory spread: slab cache format Rewrap the overly long source code lines resulting from the previous patch's addition of the slab cache flag SLAB_MEM_SPREAD. This patch contains only formatting changes, and no function change. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4b6a9316fab51af611dc8671f296734089f6a22a Author: Paul Jackson Date: Fri Mar 24 03:16:05 2006 -0800 [PATCH] cpuset memory spread: slab cache filesystems Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD memory spreading. If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's in a cpuset with the 'memory_spread_slab' option enabled goes to allocate from such a slab cache, the allocations are spread evenly over all the memory nodes (task->mems_allowed) allowed to that task, instead of favoring allocation on the node local to the current cpu. The following inode and similar caches are marked SLAB_MEM_SPREAD: file cache ==== ===== fs/adfs/super.c adfs_inode_cache fs/affs/super.c affs_inode_cache fs/befs/linuxvfs.c befs_inode_cache fs/bfs/inode.c bfs_inode_cache fs/block_dev.c bdev_cache fs/cifs/cifsfs.c cifs_inode_cache fs/coda/inode.c coda_inode_cache fs/dquot.c dquot fs/efs/super.c efs_inode_cache fs/ext2/super.c ext2_inode_cache fs/ext2/xattr.c (fs/mbcache.c) ext2_xattr fs/ext3/super.c ext3_inode_cache fs/ext3/xattr.c (fs/mbcache.c) ext3_xattr fs/fat/cache.c fat_cache fs/fat/inode.c fat_inode_cache fs/freevxfs/vxfs_super.c vxfs_inode fs/hpfs/super.c hpfs_inode_cache fs/isofs/inode.c isofs_inode_cache fs/jffs/inode-v23.c jffs_fm fs/jffs2/super.c jffs2_i fs/jfs/super.c jfs_ip fs/minix/inode.c minix_inode_cache fs/ncpfs/inode.c ncp_inode_cache fs/nfs/direct.c nfs_direct_cache fs/nfs/inode.c nfs_inode_cache fs/ntfs/super.c ntfs_big_inode_cache_name fs/ntfs/super.c ntfs_inode_cache fs/ocfs2/dlm/dlmfs.c dlmfs_inode_cache fs/ocfs2/super.c ocfs2_inode_cache fs/proc/inode.c proc_inode_cache fs/qnx4/inode.c qnx4_inode_cache fs/reiserfs/super.c reiser_inode_cache fs/romfs/inode.c romfs_inode_cache fs/smbfs/inode.c smb_inode_cache fs/sysv/inode.c sysv_inode_cache fs/udf/super.c udf_inode_cache fs/ufs/super.c ufs_inode_cache net/socket.c sock_inode_cache net/sunrpc/rpc_pipe.c rpc_inode_cache The choice of which slab caches to so mark was quite simple. I marked those already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache, inode_cache, and buffer_head, which were marked in a previous patch. Even though SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same potentially large file system i/o related slab caches as we need for memory spreading. Given that the rule now becomes "wherever you would have used a SLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use the SLAB_MEM_SPREAD flag too", this should be easy enough to maintain. Future file system writers will just copy one of the existing file system slab cache setups and tend to get it right without thinking. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ac2b898ca6fb06196a26869c23b66afe7944e52e Author: Christoph Lameter Date: Wed Mar 22 00:08:15 2006 -0800 [PATCH] slab: Remove SLAB_NO_REAP option SLAB_NO_REAP is documented as an option that will cause this slab not to be reaped under memory pressure. However, that is not what happens. The only thing that SLAB_NO_REAP controls at the moment is the reclaim of the unused slab elements that were allocated in batch in cache_reap(). Cache_reap() is run every few seconds independently of memory pressure. Could we remove the whole thing? Its only used by three slabs anyways and I cannot find a reason for having this option. There is an additional problem with SLAB_NO_REAP. If set then the recovery of objects from alien caches is switched off. Objects not freed on the same node where they were initially allocated will only be reused if a certain amount of objects accumulates from one alien node (not very likely) or if the cache is explicitly shrunk. (Strangely __cache_shrink does not check for SLAB_NO_REAP) Getting rid of SLAB_NO_REAP fixes the problems with alien cache freeing. Signed-off-by: Christoph Lameter Cc: Pekka Enberg Cc: Manfred Spraul Cc: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds