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/ufs/balloc.c | |
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/ufs/balloc.c')
-rw-r--r-- | fs/ufs/balloc.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c index 5cfa4d85ccf2..048484fb10d2 100644 --- a/fs/ufs/balloc.c +++ b/fs/ufs/balloc.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/stat.h> | 12 | #include <linux/stat.h> |
13 | #include <linux/time.h> | 13 | #include <linux/time.h> |
14 | #include <linux/string.h> | 14 | #include <linux/string.h> |
15 | #include <linux/quotaops.h> | ||
16 | #include <linux/buffer_head.h> | 15 | #include <linux/buffer_head.h> |
17 | #include <linux/capability.h> | 16 | #include <linux/capability.h> |
18 | #include <linux/bitops.h> | 17 | #include <linux/bitops.h> |
@@ -85,9 +84,6 @@ void ufs_free_fragments(struct inode *inode, u64 fragment, unsigned count) | |||
85 | "bit already cleared for fragment %u", i); | 84 | "bit already cleared for fragment %u", i); |
86 | } | 85 | } |
87 | 86 | ||
88 | dquot_free_block(inode, count); | ||
89 | |||
90 | |||
91 | fs32_add(sb, &ucg->cg_cs.cs_nffree, count); | 87 | fs32_add(sb, &ucg->cg_cs.cs_nffree, count); |
92 | uspi->cs_total.cs_nffree += count; | 88 | uspi->cs_total.cs_nffree += count; |
93 | fs32_add(sb, &UFS_SB(sb)->fs_cs(cgno).cs_nffree, count); | 89 | fs32_add(sb, &UFS_SB(sb)->fs_cs(cgno).cs_nffree, count); |
@@ -195,7 +191,6 @@ do_more: | |||
195 | ubh_setblock(UCPI_UBH(ucpi), ucpi->c_freeoff, blkno); | 191 | ubh_setblock(UCPI_UBH(ucpi), ucpi->c_freeoff, blkno); |
196 | if ((UFS_SB(sb)->s_flags & UFS_CG_MASK) == UFS_CG_44BSD) | 192 | if ((UFS_SB(sb)->s_flags & UFS_CG_MASK) == UFS_CG_44BSD) |
197 | ufs_clusteracct (sb, ucpi, blkno, 1); | 193 | ufs_clusteracct (sb, ucpi, blkno, 1); |
198 | dquot_free_block(inode, uspi->s_fpb); | ||
199 | 194 | ||
200 | fs32_add(sb, &ucg->cg_cs.cs_nbfree, 1); | 195 | fs32_add(sb, &ucg->cg_cs.cs_nbfree, 1); |
201 | uspi->cs_total.cs_nbfree++; | 196 | uspi->cs_total.cs_nbfree++; |
@@ -511,7 +506,6 @@ static u64 ufs_add_fragments(struct inode *inode, u64 fragment, | |||
511 | struct ufs_cg_private_info * ucpi; | 506 | struct ufs_cg_private_info * ucpi; |
512 | struct ufs_cylinder_group * ucg; | 507 | struct ufs_cylinder_group * ucg; |
513 | unsigned cgno, fragno, fragoff, count, fragsize, i; | 508 | unsigned cgno, fragno, fragoff, count, fragsize, i; |
514 | int ret; | ||
515 | 509 | ||
516 | UFSD("ENTER, fragment %llu, oldcount %u, newcount %u\n", | 510 | UFSD("ENTER, fragment %llu, oldcount %u, newcount %u\n", |
517 | (unsigned long long)fragment, oldcount, newcount); | 511 | (unsigned long long)fragment, oldcount, newcount); |
@@ -557,11 +551,6 @@ static u64 ufs_add_fragments(struct inode *inode, u64 fragment, | |||
557 | fs32_add(sb, &ucg->cg_frsum[fragsize - count], 1); | 551 | fs32_add(sb, &ucg->cg_frsum[fragsize - count], 1); |
558 | for (i = oldcount; i < newcount; i++) | 552 | for (i = oldcount; i < newcount; i++) |
559 | ubh_clrbit (UCPI_UBH(ucpi), ucpi->c_freeoff, fragno + i); | 553 | ubh_clrbit (UCPI_UBH(ucpi), ucpi->c_freeoff, fragno + i); |
560 | ret = dquot_alloc_block(inode, count); | ||
561 | if (ret) { | ||
562 | *err = ret; | ||
563 | return 0; | ||
564 | } | ||
565 | 554 | ||
566 | fs32_sub(sb, &ucg->cg_cs.cs_nffree, count); | 555 | fs32_sub(sb, &ucg->cg_cs.cs_nffree, count); |
567 | fs32_sub(sb, &UFS_SB(sb)->fs_cs(cgno).cs_nffree, count); | 556 | fs32_sub(sb, &UFS_SB(sb)->fs_cs(cgno).cs_nffree, count); |
@@ -598,7 +587,6 @@ static u64 ufs_alloc_fragments(struct inode *inode, unsigned cgno, | |||
598 | struct ufs_cylinder_group * ucg; | 587 | struct ufs_cylinder_group * ucg; |
599 | unsigned oldcg, i, j, k, allocsize; | 588 | unsigned oldcg, i, j, k, allocsize; |
600 | u64 result; | 589 | u64 result; |
601 | int ret; | ||
602 | 590 | ||
603 | UFSD("ENTER, ino %lu, cgno %u, goal %llu, count %u\n", | 591 | UFSD("ENTER, ino %lu, cgno %u, goal %llu, count %u\n", |
604 | inode->i_ino, cgno, (unsigned long long)goal, count); | 592 | inode->i_ino, cgno, (unsigned long long)goal, count); |
@@ -667,7 +655,6 @@ cg_found: | |||
667 | for (i = count; i < uspi->s_fpb; i++) | 655 | for (i = count; i < uspi->s_fpb; i++) |
668 | ubh_setbit (UCPI_UBH(ucpi), ucpi->c_freeoff, goal + i); | 656 | ubh_setbit (UCPI_UBH(ucpi), ucpi->c_freeoff, goal + i); |
669 | i = uspi->s_fpb - count; | 657 | i = uspi->s_fpb - count; |
670 | dquot_free_block(inode, i); | ||
671 | 658 | ||
672 | fs32_add(sb, &ucg->cg_cs.cs_nffree, i); | 659 | fs32_add(sb, &ucg->cg_cs.cs_nffree, i); |
673 | uspi->cs_total.cs_nffree += i; | 660 | uspi->cs_total.cs_nffree += i; |
@@ -679,11 +666,6 @@ cg_found: | |||
679 | result = ufs_bitmap_search (sb, ucpi, goal, allocsize); | 666 | result = ufs_bitmap_search (sb, ucpi, goal, allocsize); |
680 | if (result == INVBLOCK) | 667 | if (result == INVBLOCK) |
681 | return 0; | 668 | return 0; |
682 | ret = dquot_alloc_block(inode, count); | ||
683 | if (ret) { | ||
684 | *err = ret; | ||
685 | return 0; | ||
686 | } | ||
687 | for (i = 0; i < count; i++) | 669 | for (i = 0; i < count; i++) |
688 | ubh_clrbit (UCPI_UBH(ucpi), ucpi->c_freeoff, result + i); | 670 | ubh_clrbit (UCPI_UBH(ucpi), ucpi->c_freeoff, result + i); |
689 | 671 | ||
@@ -718,7 +700,6 @@ static u64 ufs_alloccg_block(struct inode *inode, | |||
718 | struct ufs_super_block_first * usb1; | 700 | struct ufs_super_block_first * usb1; |
719 | struct ufs_cylinder_group * ucg; | 701 | struct ufs_cylinder_group * ucg; |
720 | u64 result, blkno; | 702 | u64 result, blkno; |
721 | int ret; | ||
722 | 703 | ||
723 | UFSD("ENTER, goal %llu\n", (unsigned long long)goal); | 704 | UFSD("ENTER, goal %llu\n", (unsigned long long)goal); |
724 | 705 | ||
@@ -752,11 +733,6 @@ gotit: | |||
752 | ubh_clrblock (UCPI_UBH(ucpi), ucpi->c_freeoff, blkno); | 733 | ubh_clrblock (UCPI_UBH(ucpi), ucpi->c_freeoff, blkno); |
753 | if ((UFS_SB(sb)->s_flags & UFS_CG_MASK) == UFS_CG_44BSD) | 734 | if ((UFS_SB(sb)->s_flags & UFS_CG_MASK) == UFS_CG_44BSD) |
754 | ufs_clusteracct (sb, ucpi, blkno, -1); | 735 | ufs_clusteracct (sb, ucpi, blkno, -1); |
755 | ret = dquot_alloc_block(inode, uspi->s_fpb); | ||
756 | if (ret) { | ||
757 | *err = ret; | ||
758 | return INVBLOCK; | ||
759 | } | ||
760 | 736 | ||
761 | fs32_sub(sb, &ucg->cg_cs.cs_nbfree, 1); | 737 | fs32_sub(sb, &ucg->cg_cs.cs_nbfree, 1); |
762 | uspi->cs_total.cs_nbfree--; | 738 | uspi->cs_total.cs_nbfree--; |