diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-30 12:11:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-30 12:11:11 -0400 |
commit | d28619f1563140526e2f84eae436f39206f40a69 (patch) | |
tree | d93284016a0983c8f27b745a3c50738617e50995 /fs/jfs | |
parent | 021fad8b706849c091f6e682bc5df3ce4f9ab4d7 (diff) | |
parent | f32764bd2bbb6ea003c158b1d276b4dc9f900348 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
quota: Convert quota statistics to generic percpu_counter
ext3 uses rb_node = NULL; to zero rb_root.
quota: Fixup dquot_transfer
reiserfs: Fix resuming of quotas on remount read-write
pohmelfs: Remove dead quota code
ufs: Remove dead quota code
udf: Remove dead quota code
quota: rename default quotactl methods to dquot_
quota: explicitly set ->dq_op and ->s_qcop
quota: drop remount argument to ->quota_on and ->quota_off
quota: move unmount handling into the filesystem
quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers
quota: move remount handling into the filesystem
ocfs2: Fix use after free on remount read-only
Fix up conflicts in fs/ext4/super.c and fs/ufs/file.c
Diffstat (limited to 'fs/jfs')
-rw-r--r-- | fs/jfs/super.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index b66832ac33ac..b38f96bef829 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -179,6 +179,8 @@ static void jfs_put_super(struct super_block *sb) | |||
179 | 179 | ||
180 | jfs_info("In jfs_put_super"); | 180 | jfs_info("In jfs_put_super"); |
181 | 181 | ||
182 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
183 | |||
182 | lock_kernel(); | 184 | lock_kernel(); |
183 | 185 | ||
184 | rc = jfs_umount(sb); | 186 | rc = jfs_umount(sb); |
@@ -396,10 +398,20 @@ static int jfs_remount(struct super_block *sb, int *flags, char *data) | |||
396 | 398 | ||
397 | JFS_SBI(sb)->flag = flag; | 399 | JFS_SBI(sb)->flag = flag; |
398 | ret = jfs_mount_rw(sb, 1); | 400 | ret = jfs_mount_rw(sb, 1); |
401 | |||
402 | /* mark the fs r/w for quota activity */ | ||
403 | sb->s_flags &= ~MS_RDONLY; | ||
404 | |||
399 | unlock_kernel(); | 405 | unlock_kernel(); |
406 | dquot_resume(sb, -1); | ||
400 | return ret; | 407 | return ret; |
401 | } | 408 | } |
402 | if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) { | 409 | if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) { |
410 | rc = dquot_suspend(sb, -1); | ||
411 | if (rc < 0) { | ||
412 | unlock_kernel(); | ||
413 | return rc; | ||
414 | } | ||
403 | rc = jfs_umount_rw(sb); | 415 | rc = jfs_umount_rw(sb); |
404 | JFS_SBI(sb)->flag = flag; | 416 | JFS_SBI(sb)->flag = flag; |
405 | unlock_kernel(); | 417 | unlock_kernel(); |
@@ -469,6 +481,10 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent) | |||
469 | */ | 481 | */ |
470 | sb->s_op = &jfs_super_operations; | 482 | sb->s_op = &jfs_super_operations; |
471 | sb->s_export_op = &jfs_export_operations; | 483 | sb->s_export_op = &jfs_export_operations; |
484 | #ifdef CONFIG_QUOTA | ||
485 | sb->dq_op = &dquot_operations; | ||
486 | sb->s_qcop = &dquot_quotactl_ops; | ||
487 | #endif | ||
472 | 488 | ||
473 | /* | 489 | /* |
474 | * Initialize direct-mapping inode/address-space | 490 | * Initialize direct-mapping inode/address-space |