2fe17c1075
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> |
||
---|---|---|
.. | ||
kmem.c | ||
kmem.h | ||
mrlock.h | ||
time.h | ||
xfs_acl.c | ||
xfs_aops.c | ||
xfs_aops.h | ||
xfs_buf.c | ||
xfs_buf.h | ||
xfs_discard.c | ||
xfs_discard.h | ||
xfs_export.c | ||
xfs_export.h | ||
xfs_file.c | ||
xfs_fs_subr.c | ||
xfs_globals.c | ||
xfs_ioctl32.c | ||
xfs_ioctl32.h | ||
xfs_ioctl.c | ||
xfs_ioctl.h | ||
xfs_iops.c | ||
xfs_iops.h | ||
xfs_linux.h | ||
xfs_quotaops.c | ||
xfs_stats.c | ||
xfs_stats.h | ||
xfs_super.c | ||
xfs_super.h | ||
xfs_sync.c | ||
xfs_sync.h | ||
xfs_sysctl.c | ||
xfs_sysctl.h | ||
xfs_trace.c | ||
xfs_trace.h | ||
xfs_vnode.h | ||
xfs_xattr.c |