Loading fs/xfs/linux-2.6/xfs_fs_subr.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -117,6 +117,8 @@ fs_flush_pages( if (VN_CACHED(vp)) { if (VN_CACHED(vp)) { filemap_fdatawrite(ip->i_mapping); filemap_fdatawrite(ip->i_mapping); if (flags & XFS_B_ASYNC) return 0; filemap_fdatawait(ip->i_mapping); filemap_fdatawait(ip->i_mapping); } } Loading fs/xfs/linux-2.6/xfs_super.c +13 −0 Original line number Original line Diff line number Diff line Loading @@ -766,6 +766,18 @@ linvfs_show_options( return error; return error; } } STATIC int linvfs_quotasync( struct super_block *sb, int type) { struct vfs *vfsp = LINVFS_GET_VFS(sb); int error; VFS_QUOTACTL(vfsp, Q_XQUOTASYNC, 0, (caddr_t)NULL, error); return -error; } STATIC int STATIC int linvfs_getxstate( linvfs_getxstate( struct super_block *sb, struct super_block *sb, Loading Loading @@ -934,6 +946,7 @@ STATIC struct super_operations linvfs_sops = { }; }; STATIC struct quotactl_ops linvfs_qops = { STATIC struct quotactl_ops linvfs_qops = { .quota_sync = linvfs_quotasync, .get_xstate = linvfs_getxstate, .get_xstate = linvfs_getxstate, .set_xstate = linvfs_setxstate, .set_xstate = linvfs_setxstate, .get_xquota = linvfs_getxquota, .get_xquota = linvfs_getxquota, Loading fs/xfs/quota/xfs_qm_syscalls.c +5 −2 Original line number Original line Diff line number Diff line /* /* * Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. * Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. * * * This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as * under the terms of version 2 of the GNU General Public License as Loading Loading @@ -109,7 +109,7 @@ xfs_qm_quotactl( vfsp = bhvtovfs(bdp); vfsp = bhvtovfs(bdp); mp = XFS_VFSTOM(vfsp); mp = XFS_VFSTOM(vfsp); ASSERT(addr != NULL); ASSERT(addr != NULL || cmd == Q_XQUOTASYNC); /* /* * The following commands are valid even when quotaoff. * The following commands are valid even when quotaoff. Loading Loading @@ -147,6 +147,9 @@ xfs_qm_quotactl( return XFS_ERROR(EROFS); return XFS_ERROR(EROFS); break; break; case Q_XQUOTASYNC: return (xfs_sync_inodes(mp, SYNC_DELWRI, 0, NULL)); default: default: break; break; } } Loading fs/xfs/xfs_mount.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -556,6 +556,7 @@ extern int xfs_readsb(xfs_mount_t *mp); extern void xfs_freesb(xfs_mount_t *); extern void xfs_freesb(xfs_mount_t *); extern void xfs_do_force_shutdown(bhv_desc_t *, int, char *, int); extern void xfs_do_force_shutdown(bhv_desc_t *, int, char *, int); extern int xfs_syncsub(xfs_mount_t *, int, int, int *); extern int xfs_syncsub(xfs_mount_t *, int, int, int *); extern int xfs_sync_inodes(xfs_mount_t *, int, int, int *); extern xfs_agnumber_t xfs_initialize_perag(xfs_mount_t *, xfs_agnumber_t); extern xfs_agnumber_t xfs_initialize_perag(xfs_mount_t *, xfs_agnumber_t); extern void xfs_xlatesb(void *, struct xfs_sb *, int, __int64_t); extern void xfs_xlatesb(void *, struct xfs_sb *, int, __int64_t); Loading fs/xfs/xfs_vfsops.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -903,7 +903,7 @@ xfs_sync( * only available by calling this routine. * only available by calling this routine. * * */ */ STATIC int int xfs_sync_inodes( xfs_sync_inodes( xfs_mount_t *mp, xfs_mount_t *mp, int flags, int flags, Loading Loading @@ -987,7 +987,7 @@ xfs_sync_inodes( ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); fflag = XFS_B_ASYNC; /* default is don't wait */ fflag = XFS_B_ASYNC; /* default is don't wait */ if (flags & SYNC_BDFLUSH) if (flags & (SYNC_BDFLUSH | SYNC_DELWRI)) fflag = XFS_B_DELWRI; fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ fflag = 0; /* synchronous overrides all */ Loading Loading
fs/xfs/linux-2.6/xfs_fs_subr.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -117,6 +117,8 @@ fs_flush_pages( if (VN_CACHED(vp)) { if (VN_CACHED(vp)) { filemap_fdatawrite(ip->i_mapping); filemap_fdatawrite(ip->i_mapping); if (flags & XFS_B_ASYNC) return 0; filemap_fdatawait(ip->i_mapping); filemap_fdatawait(ip->i_mapping); } } Loading
fs/xfs/linux-2.6/xfs_super.c +13 −0 Original line number Original line Diff line number Diff line Loading @@ -766,6 +766,18 @@ linvfs_show_options( return error; return error; } } STATIC int linvfs_quotasync( struct super_block *sb, int type) { struct vfs *vfsp = LINVFS_GET_VFS(sb); int error; VFS_QUOTACTL(vfsp, Q_XQUOTASYNC, 0, (caddr_t)NULL, error); return -error; } STATIC int STATIC int linvfs_getxstate( linvfs_getxstate( struct super_block *sb, struct super_block *sb, Loading Loading @@ -934,6 +946,7 @@ STATIC struct super_operations linvfs_sops = { }; }; STATIC struct quotactl_ops linvfs_qops = { STATIC struct quotactl_ops linvfs_qops = { .quota_sync = linvfs_quotasync, .get_xstate = linvfs_getxstate, .get_xstate = linvfs_getxstate, .set_xstate = linvfs_setxstate, .set_xstate = linvfs_setxstate, .get_xquota = linvfs_getxquota, .get_xquota = linvfs_getxquota, Loading
fs/xfs/quota/xfs_qm_syscalls.c +5 −2 Original line number Original line Diff line number Diff line /* /* * Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. * Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. * * * This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as * under the terms of version 2 of the GNU General Public License as Loading Loading @@ -109,7 +109,7 @@ xfs_qm_quotactl( vfsp = bhvtovfs(bdp); vfsp = bhvtovfs(bdp); mp = XFS_VFSTOM(vfsp); mp = XFS_VFSTOM(vfsp); ASSERT(addr != NULL); ASSERT(addr != NULL || cmd == Q_XQUOTASYNC); /* /* * The following commands are valid even when quotaoff. * The following commands are valid even when quotaoff. Loading Loading @@ -147,6 +147,9 @@ xfs_qm_quotactl( return XFS_ERROR(EROFS); return XFS_ERROR(EROFS); break; break; case Q_XQUOTASYNC: return (xfs_sync_inodes(mp, SYNC_DELWRI, 0, NULL)); default: default: break; break; } } Loading
fs/xfs/xfs_mount.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -556,6 +556,7 @@ extern int xfs_readsb(xfs_mount_t *mp); extern void xfs_freesb(xfs_mount_t *); extern void xfs_freesb(xfs_mount_t *); extern void xfs_do_force_shutdown(bhv_desc_t *, int, char *, int); extern void xfs_do_force_shutdown(bhv_desc_t *, int, char *, int); extern int xfs_syncsub(xfs_mount_t *, int, int, int *); extern int xfs_syncsub(xfs_mount_t *, int, int, int *); extern int xfs_sync_inodes(xfs_mount_t *, int, int, int *); extern xfs_agnumber_t xfs_initialize_perag(xfs_mount_t *, xfs_agnumber_t); extern xfs_agnumber_t xfs_initialize_perag(xfs_mount_t *, xfs_agnumber_t); extern void xfs_xlatesb(void *, struct xfs_sb *, int, __int64_t); extern void xfs_xlatesb(void *, struct xfs_sb *, int, __int64_t); Loading
fs/xfs/xfs_vfsops.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -903,7 +903,7 @@ xfs_sync( * only available by calling this routine. * only available by calling this routine. * * */ */ STATIC int int xfs_sync_inodes( xfs_sync_inodes( xfs_mount_t *mp, xfs_mount_t *mp, int flags, int flags, Loading Loading @@ -987,7 +987,7 @@ xfs_sync_inodes( ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); fflag = XFS_B_ASYNC; /* default is don't wait */ fflag = XFS_B_ASYNC; /* default is don't wait */ if (flags & SYNC_BDFLUSH) if (flags & (SYNC_BDFLUSH | SYNC_DELWRI)) fflag = XFS_B_DELWRI; fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ fflag = 0; /* synchronous overrides all */ Loading