1
0
Fork 0
alistair23-linux/fs/ocfs2
Christoph Hellwig 2fe17c1075 fallocate should be a file operation
Currently all filesystems except XFS implement fallocate asynchronously,
while XFS forced a commit.  Both of these are suboptimal - in case of O_SYNC
I/O we really want our allocation on disk, especially for the !KEEP_SIZE
case where we actually grow the file with user-visible zeroes.  On the
other hand always commiting the transaction is a bad idea for fast-path
uses of fallocate like for example in recent Samba versions.   Given
that block allocation is a data plane operation anyway change it from
an inode operation to a file operation so that we have the file structure
available that lets us check for O_SYNC.

This also includes moving the code around for a few of the filesystems,
and remove the already unnedded S_ISDIR checks given that we only wire
up fallocate for regular files.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2011-01-17 02:25:31 -05:00
..
cluster Merge branch 'for-2.6.38/core' of git://git.kernel.dk/linux-2.6-block 2011-01-13 10:45:01 -08:00
dlm Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 2011-01-11 11:28:34 -08:00
dlmfs fs: icache RCU free inodes 2011-01-07 17:50:26 +11:00
Kconfig ocfs2: Make OCFS2_FS depend on CONFIGFS_FS 2011-01-16 21:22:40 +00:00
Makefile ocfs2: allocation reservations 2010-05-05 18:17:30 -07:00
acl.c fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
alloc.c ocfs2: Remove unused truncate function from alloc.c 2011-01-07 18:03:00 -08:00
alloc.h ocfs2: Remove unused truncate function from alloc.c 2011-01-07 18:03:00 -08:00
aops.c Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 2011-01-11 11:28:34 -08:00
aops.h Ocfs2: Teach 'coherency=full' O_DIRECT writes to correctly up_read i_alloc_sem. 2010-12-09 15:36:48 -08:00
blockcheck.c ocfs2: Fix metaecc error messages 2010-09-08 14:25:53 +08:00
blockcheck.h ocfs2: Add statistics for the checksum and ecc operations. 2009-06-03 19:15:36 -07:00
buffer_head_io.c Merge branch 'skip_delete_inode' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2-mark into ocfs2-fixes 2010-04-30 13:37:29 -07:00
buffer_head_io.h ocfs2: Take the inode out of the metadata read/write paths. 2009-09-04 16:07:48 -07:00
dcache.c fs: dcache per-inode inode alias locking 2011-01-07 17:50:31 +11:00
dcache.h Track negative entries v3 2010-09-10 09:18:15 -07:00
dir.c ocfs2: Hold ip_lock when set/clear flags for indexed dir. 2010-12-16 00:36:15 -08:00
dir.h ocfs2: Introduce dir free space list 2009-04-03 11:39:16 -07:00
dlmglue.c Track negative entries v3 2010-09-10 09:18:15 -07:00
dlmglue.h ocfs2: Fix lockdep warning in reflink. 2010-09-10 09:19:06 -07:00
export.c switch ocfs2, close races 2011-01-12 20:02:46 -05:00
export.h
extent_map.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
extent_map.h ocfs2: Return extent flags for xattr value tree. 2009-09-22 20:09:39 -07:00
file.c fallocate should be a file operation 2011-01-17 02:25:31 -05:00
file.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
heartbeat.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
heartbeat.h
inode.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
inode.h Track negative entries v3 2010-09-10 09:18:15 -07:00
ioctl.c Ocfs2: Add new OCFS2_IOC_INFO ioctl for ocfs2 v8. 2010-09-10 08:35:41 -07:00
ioctl.h Ocfs2: Move ocfs2 ioctl definitions from ocfs2_fs.h to newly added ocfs2_ioctl.h 2010-03-02 14:10:20 -08:00
journal.c ocfs2: Remove obsolete comments before ocfs2_start_trans. 2010-09-10 08:40:18 -07:00
journal.h Reorganize data elements to reduce struct sizes 2010-09-10 08:39:27 -07:00
localalloc.c ocfs2: Limit default local alloc size within bitmap range. 2010-06-15 16:50:43 -07:00
localalloc.h ocfs2: increase the default size of local alloc windows 2010-05-05 18:18:07 -07:00
locks.c [PATCH] Skip check for mandatory locks when unlocking 2010-03-17 12:07:16 -07:00
locks.h
mmap.c Merge branch 'cow_readahead' of git://oss.oracle.com/git/tma/linux-2.6 into merge-2 2010-09-10 08:41:04 -07:00
mmap.h
namei.c switch ocfs2, close races 2011-01-12 20:02:46 -05:00
namei.h ocfs2: Create reflinked file in orphan dir. 2009-09-22 20:09:48 -07:00
ocfs1_fs_compat.h
ocfs2.h ocfs2: Try to free truncate log when meeting ENOSPC in write. 2010-12-16 00:46:02 -08:00
ocfs2_fs.h ocfs2: Fix system inodes cache overflow. 2010-12-22 02:35:36 -08:00
ocfs2_ioctl.h Merge branch 'globalheartbeat-2' of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-merge-window 2010-10-15 13:03:09 -07:00
ocfs2_lockid.h ocfs2: Add new refcount tree lock resource in dlmglue. 2009-09-22 20:09:28 -07:00
ocfs2_lockingver.h ocfs2_dlmfs: Enable the use of user cluster stacks. 2010-02-26 15:41:18 -08:00
quota.h ocfs2: Fix NULL pointer deref when writing local dquot 2010-05-21 19:30:48 +02:00
quota_global.c ocfs2: Zero the tail cluster when extending past i_size. 2010-07-08 13:25:35 -07:00
quota_local.c ocfs2: Zero the tail cluster when extending past i_size. 2010-07-08 13:25:35 -07:00
refcounttree.c Merge branch 'globalheartbeat-2' of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-merge-window 2010-10-15 13:03:09 -07:00
refcounttree.h Merge branch 'cow_readahead' of git://oss.oracle.com/git/tma/linux-2.6 into merge-2 2010-09-10 08:41:04 -07:00
reservations.c ocfs2: Move 'wanted' into parens of ocfs2_resmap_resv_bits. 2010-09-23 14:16:47 -07:00
reservations.h ocfs2: make ocfs2_adjust_resv_from_alloc simple. 2010-05-05 18:18:09 -07:00
resize.c ocfs2: Make ocfs2_journal_dirty() void. 2010-05-05 18:17:29 -07:00
resize.h
slot_map.c When I tried to compile I got the following warning: 2010-10-11 13:45:52 -07:00
slot_map.h
stack_o2cb.c ocfs2: Print message if user mounts without starting global heartbeat 2010-10-06 17:55:29 -07:00
stack_user.c ocfs2_connection_find() returns pointer to bad structure 2010-11-18 15:41:41 -08:00
stackglue.c ocfs2_dlmfs: Enable the use of user cluster stacks. 2010-02-26 15:41:18 -08:00
stackglue.h ocfs2_dlmfs: Enable the use of user cluster stacks. 2010-02-26 15:41:18 -08:00
suballoc.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
suballoc.h ocfs2: allow return of new inode block location before allocation of the inode 2010-09-08 14:25:59 +08:00
super.c switch ocfs2, close races 2011-01-12 20:02:46 -05:00
super.h ocfs2: Wrap signal blocking in void functions. 2010-05-10 11:50:10 -07:00
symlink.c ocfs2: Don't walk off the end of fast symlinks. 2010-09-29 17:33:05 -07:00
symlink.h
sysfile.c ocfs2: Cache system inodes of other slots. 2010-09-10 08:56:24 -07:00
sysfile.h
uptodate.c ocfs2/trivial: Remove trailing whitespaces 2010-01-25 19:20:51 -08:00
uptodate.h ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
ver.c
ver.h
xattr.c ocfs2: Avoid to evaluate xattr block flags again. 2010-10-15 13:03:43 -07:00
xattr.h ocfs: constify xattr_handler 2010-05-21 18:31:20 -04:00