diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_super.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 455e2b2fb964..5fe9af38aa20 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -590,8 +590,10 @@ linvfs_sync_super( | |||
590 | int error; | 590 | int error; |
591 | int flags = SYNC_FSDATA; | 591 | int flags = SYNC_FSDATA; |
592 | 592 | ||
593 | if (wait) | 593 | if (unlikely(sb->s_frozen == SB_FREEZE_WRITE)) |
594 | flags |= SYNC_WAIT; | 594 | flags = SYNC_QUIESCE; |
595 | else | ||
596 | flags = SYNC_FSDATA | (wait ? SYNC_WAIT : 0); | ||
595 | 597 | ||
596 | VFS_SYNC(vfsp, flags, NULL, error); | 598 | VFS_SYNC(vfsp, flags, NULL, error); |
597 | sb->s_dirt = 0; | 599 | sb->s_dirt = 0; |
@@ -701,7 +703,8 @@ linvfs_getxquota( | |||
701 | struct vfs *vfsp = LINVFS_GET_VFS(sb); | 703 | struct vfs *vfsp = LINVFS_GET_VFS(sb); |
702 | int error, getmode; | 704 | int error, getmode; |
703 | 705 | ||
704 | getmode = (type == GRPQUOTA) ? Q_XGETGQUOTA : Q_XGETQUOTA; | 706 | getmode = (type == USRQUOTA) ? Q_XGETQUOTA : |
707 | ((type == GRPQUOTA) ? Q_XGETGQUOTA : Q_XGETPQUOTA); | ||
705 | VFS_QUOTACTL(vfsp, getmode, id, (caddr_t)fdq, error); | 708 | VFS_QUOTACTL(vfsp, getmode, id, (caddr_t)fdq, error); |
706 | return -error; | 709 | return -error; |
707 | } | 710 | } |
@@ -716,7 +719,8 @@ linvfs_setxquota( | |||
716 | struct vfs *vfsp = LINVFS_GET_VFS(sb); | 719 | struct vfs *vfsp = LINVFS_GET_VFS(sb); |
717 | int error, setmode; | 720 | int error, setmode; |
718 | 721 | ||
719 | setmode = (type == GRPQUOTA) ? Q_XSETGQLIM : Q_XSETQLIM; | 722 | setmode = (type == USRQUOTA) ? Q_XSETQLIM : |
723 | ((type == GRPQUOTA) ? Q_XSETGQLIM : Q_XSETPQLIM); | ||
720 | VFS_QUOTACTL(vfsp, setmode, id, (caddr_t)fdq, error); | 724 | VFS_QUOTACTL(vfsp, setmode, id, (caddr_t)fdq, error); |
721 | return -error; | 725 | return -error; |
722 | } | 726 | } |