diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_super.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 53dc658cafa6..f6dd7de25927 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. | 2 | * Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms of version 2 of the GNU General Public License as | 5 | * under the terms of version 2 of the GNU General Public License as |
@@ -66,7 +66,6 @@ | |||
66 | #include "xfs_buf_item.h" | 66 | #include "xfs_buf_item.h" |
67 | #include "xfs_utils.h" | 67 | #include "xfs_utils.h" |
68 | #include "xfs_version.h" | 68 | #include "xfs_version.h" |
69 | #include "xfs_ioctl32.h" | ||
70 | 69 | ||
71 | #include <linux/namei.h> | 70 | #include <linux/namei.h> |
72 | #include <linux/init.h> | 71 | #include <linux/init.h> |
@@ -484,7 +483,7 @@ xfssyncd( | |||
484 | set_current_state(TASK_INTERRUPTIBLE); | 483 | set_current_state(TASK_INTERRUPTIBLE); |
485 | timeleft = schedule_timeout(timeleft); | 484 | timeleft = schedule_timeout(timeleft); |
486 | /* swsusp */ | 485 | /* swsusp */ |
487 | try_to_freeze(PF_FREEZE); | 486 | try_to_freeze(); |
488 | if (vfsp->vfs_flag & VFS_UMOUNT) | 487 | if (vfsp->vfs_flag & VFS_UMOUNT) |
489 | break; | 488 | break; |
490 | 489 | ||
@@ -591,8 +590,10 @@ linvfs_sync_super( | |||
591 | int error; | 590 | int error; |
592 | int flags = SYNC_FSDATA; | 591 | int flags = SYNC_FSDATA; |
593 | 592 | ||
594 | if (wait) | 593 | if (unlikely(sb->s_frozen == SB_FREEZE_WRITE)) |
595 | flags |= SYNC_WAIT; | 594 | flags = SYNC_QUIESCE; |
595 | else | ||
596 | flags = SYNC_FSDATA | (wait ? SYNC_WAIT : 0); | ||
596 | 597 | ||
597 | VFS_SYNC(vfsp, flags, NULL, error); | 598 | VFS_SYNC(vfsp, flags, NULL, error); |
598 | sb->s_dirt = 0; | 599 | sb->s_dirt = 0; |
@@ -702,7 +703,8 @@ linvfs_getxquota( | |||
702 | struct vfs *vfsp = LINVFS_GET_VFS(sb); | 703 | struct vfs *vfsp = LINVFS_GET_VFS(sb); |
703 | int error, getmode; | 704 | int error, getmode; |
704 | 705 | ||
705 | getmode = (type == GRPQUOTA) ? Q_XGETGQUOTA : Q_XGETQUOTA; | 706 | getmode = (type == USRQUOTA) ? Q_XGETQUOTA : |
707 | ((type == GRPQUOTA) ? Q_XGETGQUOTA : Q_XGETPQUOTA); | ||
706 | VFS_QUOTACTL(vfsp, getmode, id, (caddr_t)fdq, error); | 708 | VFS_QUOTACTL(vfsp, getmode, id, (caddr_t)fdq, error); |
707 | return -error; | 709 | return -error; |
708 | } | 710 | } |
@@ -717,7 +719,8 @@ linvfs_setxquota( | |||
717 | struct vfs *vfsp = LINVFS_GET_VFS(sb); | 719 | struct vfs *vfsp = LINVFS_GET_VFS(sb); |
718 | int error, setmode; | 720 | int error, setmode; |
719 | 721 | ||
720 | setmode = (type == GRPQUOTA) ? Q_XSETGQLIM : Q_XSETQLIM; | 722 | setmode = (type == USRQUOTA) ? Q_XSETQLIM : |
723 | ((type == GRPQUOTA) ? Q_XSETGQLIM : Q_XSETPQLIM); | ||
721 | VFS_QUOTACTL(vfsp, setmode, id, (caddr_t)fdq, error); | 724 | VFS_QUOTACTL(vfsp, setmode, id, (caddr_t)fdq, error); |
722 | return -error; | 725 | return -error; |
723 | } | 726 | } |