linux/fs/ocfs2
Mark Fasheh 9517bac6cc ocfs2: teach ocfs2_file_aio_write() about sparse files
Unfortunately, ocfs2 can no longer make use of generic_file_aio_write_nlock()
because allocating writes will require zeroing of pages adjacent to the I/O
for cluster sizes greater than page size.

Implement a custom file write here, which can order page locks for zeroing.
This also has the advantage that cluster locks can easily be ordered outside
of the page locks.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-04-26 15:02:08 -07:00
..
cluster ocfs2: Remove delete inode vote 2007-04-26 14:39:48 -07:00
dlm ocfs2: Silence compiler warnings 2007-04-26 13:38:55 -07:00
alloc.c ocfs2: teach extend/truncate about sparse files 2007-04-26 15:01:56 -07:00
alloc.h ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
aops.c ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
aops.h ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
buffer_head_io.c ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
buffer_head_io.h ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
dcache.c ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock() 2006-09-24 13:50:45 -07:00
dcache.h ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock() 2006-09-24 13:50:45 -07:00
dir.c ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
dir.h ocfs2: Remove struct ocfs2_journal_handle in favor of handle_t 2006-12-01 18:28:28 -08:00
dlmglue.c ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
dlmglue.h ocfs2: Remove delete inode vote 2007-04-26 14:39:48 -07:00
endian.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
export.c ocfs2: cleanup ocfs2_iget() errors 2007-01-21 16:19:12 -08:00
export.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
extent_map.c ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
extent_map.h ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
file.c ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
file.h ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
heartbeat.c ocfs2: Proper cleanup in case of error in ocfs2_register_hb_callbacks() 2007-03-14 14:37:09 -07:00
heartbeat.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
inode.c ocfs2: teach extend/truncate about sparse files 2007-04-26 15:01:56 -07:00
inode.h ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
ioctl.c ocfs2: Remove struct ocfs2_journal_handle in favor of handle_t 2006-12-01 18:28:28 -08:00
ioctl.h ocfs2: add ext2 attributes 2006-09-20 15:48:39 -07:00
journal.c ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
journal.h ocfs2: ocfs2_link() journal credits update 2007-02-01 12:03:19 -08:00
localalloc.c [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() 2006-12-13 09:05:52 -08:00
localalloc.h ocfs2: Remove struct ocfs2_journal_handle in favor of handle_t 2006-12-01 18:28:28 -08:00
Makefile ocfs2: add ext2 attributes 2006-09-20 15:48:39 -07:00
mmap.c ocfs2: Turn off shared writeable mmap for local files systems with holes. 2007-04-26 15:02:01 -07:00
mmap.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
namei.c ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
namei.h [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
ocfs1_fs_compat.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
ocfs2_fs.h ocfs2: sparse b-tree support 2007-04-26 14:44:03 -07:00
ocfs2_lockid.h ocfs2: Remove delete inode vote 2007-04-26 14:39:48 -07:00
ocfs2.h ocfs2: teach ocfs2_file_aio_write() about sparse files 2007-04-26 15:02:08 -07:00
slot_map.c ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
slot_map.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
suballoc.c [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() 2006-12-13 09:05:52 -08:00
suballoc.h ocfs2: Remove struct ocfs2_journal_handle in favor of handle_t 2006-12-01 18:28:28 -08:00
super.c ocfs2: temporarily remove extent map caching 2007-04-26 15:01:31 -07:00
super.h ocfs2: use __attribute__ format 2006-03-24 14:58:24 -08:00
symlink.c [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
symlink.h [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
sysfile.c ocfs2: Remove i_generation from inode lock names 2006-09-24 13:50:46 -07:00
sysfile.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
uptodate.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
uptodate.h ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
ver.c [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
ver.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
vote.c ocfs2: remove unused code 2007-04-26 14:40:16 -07:00
vote.h ocfs2: remove unused code 2007-04-26 14:40:16 -07:00