summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_vnodeops.h
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-03-26 09:13:08 +1100
committerDave Chinner <david@fromorbit.com>2011-03-26 09:13:08 +1100
commit8287889742940cf3c416e755322090d09f2829be (patch)
tree50d67d48b4375a80b5ed04cc6d4cc88912c270f6 /fs/xfs/xfs_vnodeops.h
parent0c9ba97318fc9a905bcc1419b6966de061203a70 (diff)
downloadlinux-8287889742940cf3c416e755322090d09f2829be.tar.gz
linux-8287889742940cf3c416e755322090d09f2829be.tar.bz2
linux-8287889742940cf3c416e755322090d09f2829be.zip
xfs: preallocation transactions do not need to be synchronous
Preallocation and hole punch transactions are currently synchronous and this is causing performance problems in some cases. The transactions don't need to be synchronous as we don't need to guarantee the preallocation is persistent on disk until a fdatasync, fsync, sync operation occurs. If the file is opened O_SYNC or O_DATASYNC, only then should the transaction be issued synchronously. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_vnodeops.h')
-rw-r--r--fs/xfs/xfs_vnodeops.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h
index f6702927eee4..3bcd23353d6c 100644
--- a/fs/xfs/xfs_vnodeops.h
+++ b/fs/xfs/xfs_vnodeops.h
@@ -18,6 +18,7 @@ int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags);
#define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */
#define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */
#define XFS_ATTR_NOACL 0x08 /* Don't call xfs_acl_chmod */
+#define XFS_ATTR_SYNC 0x10 /* synchronous operation required */
int xfs_readlink(struct xfs_inode *ip, char *link);
int xfs_release(struct xfs_inode *ip);