X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=fs%2Fjfs%2Fsuper.c;h=7d940a3a3d9343b344355e11ff5884849c54e942;hb=e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b;hp=b66832ac33ac5d5869d90084227a321174e0b95d;hpb=d71f4cece4bd97d05592836202fc04ff2e7817e3;p=mirror_ubuntu-artful-kernel.git diff --git a/fs/jfs/super.c b/fs/jfs/super.c index b66832ac33ac..7d940a3a3d93 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c @@ -179,6 +179,8 @@ static void jfs_put_super(struct super_block *sb) jfs_info("In jfs_put_super"); + dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); + lock_kernel(); rc = jfs_umount(sb); @@ -396,10 +398,20 @@ static int jfs_remount(struct super_block *sb, int *flags, char *data) JFS_SBI(sb)->flag = flag; ret = jfs_mount_rw(sb, 1); + + /* mark the fs r/w for quota activity */ + sb->s_flags &= ~MS_RDONLY; + unlock_kernel(); + dquot_resume(sb, -1); return ret; } if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) { + rc = dquot_suspend(sb, -1); + if (rc < 0) { + unlock_kernel(); + return rc; + } rc = jfs_umount_rw(sb); JFS_SBI(sb)->flag = flag; unlock_kernel();