diff options
Diffstat (limited to 'fs/ext2')
| -rw-r--r-- | fs/ext2/balloc.c | 12 | ||||
| -rw-r--r-- | fs/ext2/ext2.h | 2 | ||||
| -rw-r--r-- | fs/ext2/file.c | 5 | ||||
| -rw-r--r-- | fs/ext2/ialloc.c | 14 | ||||
| -rw-r--r-- | fs/ext2/inode.c | 18 | ||||
| -rw-r--r-- | fs/ext2/namei.c | 51 | ||||
| -rw-r--r-- | fs/ext2/super.c | 2 | ||||
| -rw-r--r-- | fs/ext2/xattr.c | 10 |
8 files changed, 74 insertions, 40 deletions
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index 7f8d2e5a7ea6..1d081f0cfec2 100644 --- a/fs/ext2/balloc.c +++ b/fs/ext2/balloc.c | |||
| @@ -570,7 +570,7 @@ do_more: | |||
| 570 | error_return: | 570 | error_return: |
| 571 | brelse(bitmap_bh); | 571 | brelse(bitmap_bh); |
| 572 | release_blocks(sb, freed); | 572 | release_blocks(sb, freed); |
| 573 | vfs_dq_free_block(inode, freed); | 573 | dquot_free_block(inode, freed); |
| 574 | } | 574 | } |
| 575 | 575 | ||
| 576 | /** | 576 | /** |
| @@ -1236,6 +1236,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, | |||
| 1236 | unsigned short windowsz = 0; | 1236 | unsigned short windowsz = 0; |
| 1237 | unsigned long ngroups; | 1237 | unsigned long ngroups; |
| 1238 | unsigned long num = *count; | 1238 | unsigned long num = *count; |
| 1239 | int ret; | ||
| 1239 | 1240 | ||
| 1240 | *errp = -ENOSPC; | 1241 | *errp = -ENOSPC; |
| 1241 | sb = inode->i_sb; | 1242 | sb = inode->i_sb; |
| @@ -1247,8 +1248,9 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, | |||
| 1247 | /* | 1248 | /* |
| 1248 | * Check quota for allocation of this block. | 1249 | * Check quota for allocation of this block. |
| 1249 | */ | 1250 | */ |
| 1250 | if (vfs_dq_alloc_block(inode, num)) { | 1251 | ret = dquot_alloc_block(inode, num); |
| 1251 | *errp = -EDQUOT; | 1252 | if (ret) { |
| 1253 | *errp = ret; | ||
| 1252 | return 0; | 1254 | return 0; |
| 1253 | } | 1255 | } |
| 1254 | 1256 | ||
| @@ -1409,7 +1411,7 @@ allocated: | |||
| 1409 | 1411 | ||
| 1410 | *errp = 0; | 1412 | *errp = 0; |
| 1411 | brelse(bitmap_bh); | 1413 | brelse(bitmap_bh); |
| 1412 | vfs_dq_free_block(inode, *count-num); | 1414 | dquot_free_block(inode, *count-num); |
| 1413 | *count = num; | 1415 | *count = num; |
| 1414 | return ret_block; | 1416 | return ret_block; |
| 1415 | 1417 | ||
| @@ -1420,7 +1422,7 @@ out: | |||
| 1420 | * Undo the block allocation | 1422 | * Undo the block allocation |
| 1421 | */ | 1423 | */ |
| 1422 | if (!performed_allocation) | 1424 | if (!performed_allocation) |
| 1423 | vfs_dq_free_block(inode, *count); | 1425 | dquot_free_block(inode, *count); |
| 1424 | brelse(bitmap_bh); | 1426 | brelse(bitmap_bh); |
| 1425 | return 0; | 1427 | return 0; |
| 1426 | } | 1428 | } |
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 061914add3cf..0b038e47ad2f 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h | |||
| @@ -118,7 +118,7 @@ extern unsigned long ext2_count_free (struct buffer_head *, unsigned); | |||
| 118 | 118 | ||
| 119 | /* inode.c */ | 119 | /* inode.c */ |
| 120 | extern struct inode *ext2_iget (struct super_block *, unsigned long); | 120 | extern struct inode *ext2_iget (struct super_block *, unsigned long); |
| 121 | extern int ext2_write_inode (struct inode *, int); | 121 | extern int ext2_write_inode (struct inode *, struct writeback_control *); |
| 122 | extern void ext2_delete_inode (struct inode *); | 122 | extern void ext2_delete_inode (struct inode *); |
| 123 | extern int ext2_sync_inode (struct inode *); | 123 | extern int ext2_sync_inode (struct inode *); |
| 124 | extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int); | 124 | extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int); |
diff --git a/fs/ext2/file.c b/fs/ext2/file.c index 586e3589d4c2..5d198d0697fb 100644 --- a/fs/ext2/file.c +++ b/fs/ext2/file.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | 20 | ||
| 21 | #include <linux/time.h> | 21 | #include <linux/time.h> |
| 22 | #include <linux/pagemap.h> | 22 | #include <linux/pagemap.h> |
| 23 | #include <linux/quotaops.h> | ||
| 23 | #include "ext2.h" | 24 | #include "ext2.h" |
| 24 | #include "xattr.h" | 25 | #include "xattr.h" |
| 25 | #include "acl.h" | 26 | #include "acl.h" |
| @@ -70,7 +71,7 @@ const struct file_operations ext2_file_operations = { | |||
| 70 | .compat_ioctl = ext2_compat_ioctl, | 71 | .compat_ioctl = ext2_compat_ioctl, |
| 71 | #endif | 72 | #endif |
| 72 | .mmap = generic_file_mmap, | 73 | .mmap = generic_file_mmap, |
| 73 | .open = generic_file_open, | 74 | .open = dquot_file_open, |
| 74 | .release = ext2_release_file, | 75 | .release = ext2_release_file, |
| 75 | .fsync = ext2_fsync, | 76 | .fsync = ext2_fsync, |
| 76 | .splice_read = generic_file_splice_read, | 77 | .splice_read = generic_file_splice_read, |
| @@ -87,7 +88,7 @@ const struct file_operations ext2_xip_file_operations = { | |||
| 87 | .compat_ioctl = ext2_compat_ioctl, | 88 | .compat_ioctl = ext2_compat_ioctl, |
| 88 | #endif | 89 | #endif |
| 89 | .mmap = xip_file_mmap, | 90 | .mmap = xip_file_mmap, |
| 90 | .open = generic_file_open, | 91 | .open = dquot_file_open, |
| 91 | .release = ext2_release_file, | 92 | .release = ext2_release_file, |
| 92 | .fsync = ext2_fsync, | 93 | .fsync = ext2_fsync, |
| 93 | }; | 94 | }; |
diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c index 15387c9c17d8..ad7d572ee8dc 100644 --- a/fs/ext2/ialloc.c +++ b/fs/ext2/ialloc.c | |||
| @@ -121,8 +121,8 @@ void ext2_free_inode (struct inode * inode) | |||
| 121 | if (!is_bad_inode(inode)) { | 121 | if (!is_bad_inode(inode)) { |
| 122 | /* Quota is already initialized in iput() */ | 122 | /* Quota is already initialized in iput() */ |
| 123 | ext2_xattr_delete_inode(inode); | 123 | ext2_xattr_delete_inode(inode); |
| 124 | vfs_dq_free_inode(inode); | 124 | dquot_free_inode(inode); |
| 125 | vfs_dq_drop(inode); | 125 | dquot_drop(inode); |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | es = EXT2_SB(sb)->s_es; | 128 | es = EXT2_SB(sb)->s_es; |
| @@ -586,10 +586,10 @@ got: | |||
| 586 | goto fail_drop; | 586 | goto fail_drop; |
| 587 | } | 587 | } |
| 588 | 588 | ||
| 589 | if (vfs_dq_alloc_inode(inode)) { | 589 | dquot_initialize(inode); |
| 590 | err = -EDQUOT; | 590 | err = dquot_alloc_inode(inode); |
| 591 | if (err) | ||
| 591 | goto fail_drop; | 592 | goto fail_drop; |
| 592 | } | ||
| 593 | 593 | ||
| 594 | err = ext2_init_acl(inode, dir); | 594 | err = ext2_init_acl(inode, dir); |
| 595 | if (err) | 595 | if (err) |
| @@ -605,10 +605,10 @@ got: | |||
| 605 | return inode; | 605 | return inode; |
| 606 | 606 | ||
| 607 | fail_free_drop: | 607 | fail_free_drop: |
| 608 | vfs_dq_free_inode(inode); | 608 | dquot_free_inode(inode); |
| 609 | 609 | ||
| 610 | fail_drop: | 610 | fail_drop: |
| 611 | vfs_dq_drop(inode); | 611 | dquot_drop(inode); |
| 612 | inode->i_flags |= S_NOQUOTA; | 612 | inode->i_flags |= S_NOQUOTA; |
| 613 | inode->i_nlink = 0; | 613 | inode->i_nlink = 0; |
| 614 | unlock_new_inode(inode); | 614 | unlock_new_inode(inode); |
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index 71b032c65a02..fc13cc119aad 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c | |||
| @@ -41,6 +41,8 @@ MODULE_AUTHOR("Remy Card and others"); | |||
| 41 | MODULE_DESCRIPTION("Second Extended Filesystem"); | 41 | MODULE_DESCRIPTION("Second Extended Filesystem"); |
| 42 | MODULE_LICENSE("GPL"); | 42 | MODULE_LICENSE("GPL"); |
| 43 | 43 | ||
| 44 | static int __ext2_write_inode(struct inode *inode, int do_sync); | ||
| 45 | |||
| 44 | /* | 46 | /* |
| 45 | * Test whether an inode is a fast symlink. | 47 | * Test whether an inode is a fast symlink. |
| 46 | */ | 48 | */ |
| @@ -58,13 +60,15 @@ static inline int ext2_inode_is_fast_symlink(struct inode *inode) | |||
| 58 | */ | 60 | */ |
| 59 | void ext2_delete_inode (struct inode * inode) | 61 | void ext2_delete_inode (struct inode * inode) |
| 60 | { | 62 | { |
| 63 | if (!is_bad_inode(inode)) | ||
| 64 | dquot_initialize(inode); | ||
| 61 | truncate_inode_pages(&inode->i_data, 0); | 65 | truncate_inode_pages(&inode->i_data, 0); |
| 62 | 66 | ||
| 63 | if (is_bad_inode(inode)) | 67 | if (is_bad_inode(inode)) |
| 64 | goto no_delete; | 68 | goto no_delete; |
| 65 | EXT2_I(inode)->i_dtime = get_seconds(); | 69 | EXT2_I(inode)->i_dtime = get_seconds(); |
| 66 | mark_inode_dirty(inode); | 70 | mark_inode_dirty(inode); |
| 67 | ext2_write_inode(inode, inode_needs_sync(inode)); | 71 | __ext2_write_inode(inode, inode_needs_sync(inode)); |
| 68 | 72 | ||
| 69 | inode->i_size = 0; | 73 | inode->i_size = 0; |
| 70 | if (inode->i_blocks) | 74 | if (inode->i_blocks) |
| @@ -1335,7 +1339,7 @@ bad_inode: | |||
| 1335 | return ERR_PTR(ret); | 1339 | return ERR_PTR(ret); |
| 1336 | } | 1340 | } |
| 1337 | 1341 | ||
| 1338 | int ext2_write_inode(struct inode *inode, int do_sync) | 1342 | static int __ext2_write_inode(struct inode *inode, int do_sync) |
| 1339 | { | 1343 | { |
| 1340 | struct ext2_inode_info *ei = EXT2_I(inode); | 1344 | struct ext2_inode_info *ei = EXT2_I(inode); |
| 1341 | struct super_block *sb = inode->i_sb; | 1345 | struct super_block *sb = inode->i_sb; |
| @@ -1440,6 +1444,11 @@ int ext2_write_inode(struct inode *inode, int do_sync) | |||
| 1440 | return err; | 1444 | return err; |
| 1441 | } | 1445 | } |
| 1442 | 1446 | ||
| 1447 | int ext2_write_inode(struct inode *inode, struct writeback_control *wbc) | ||
| 1448 | { | ||
| 1449 | return __ext2_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); | ||
| 1450 | } | ||
| 1451 | |||
| 1443 | int ext2_sync_inode(struct inode *inode) | 1452 | int ext2_sync_inode(struct inode *inode) |
| 1444 | { | 1453 | { |
| 1445 | struct writeback_control wbc = { | 1454 | struct writeback_control wbc = { |
| @@ -1457,9 +1466,12 @@ int ext2_setattr(struct dentry *dentry, struct iattr *iattr) | |||
| 1457 | error = inode_change_ok(inode, iattr); | 1466 | error = inode_change_ok(inode, iattr); |
| 1458 | if (error) | 1467 | if (error) |
| 1459 | return error; | 1468 | return error; |
| 1469 | |||
| 1470 | if (iattr->ia_valid & ATTR_SIZE) | ||
| 1471 | dquot_initialize(inode); | ||
| 1460 | if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) || | 1472 | if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) || |
| 1461 | (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { | 1473 | (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { |
| 1462 | error = vfs_dq_transfer(inode, iattr) ? -EDQUOT : 0; | 1474 | error = dquot_transfer(inode, iattr); |
| 1463 | if (error) | 1475 | if (error) |
| 1464 | return error; | 1476 | return error; |
| 1465 | } | 1477 | } |
diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index dd7175ce5606..71efb0e9a3f2 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | */ | 31 | */ |
| 32 | 32 | ||
| 33 | #include <linux/pagemap.h> | 33 | #include <linux/pagemap.h> |
| 34 | #include <linux/quotaops.h> | ||
| 34 | #include "ext2.h" | 35 | #include "ext2.h" |
| 35 | #include "xattr.h" | 36 | #include "xattr.h" |
| 36 | #include "acl.h" | 37 | #include "acl.h" |
| @@ -99,24 +100,27 @@ struct dentry *ext2_get_parent(struct dentry *child) | |||
| 99 | */ | 100 | */ |
| 100 | static int ext2_create (struct inode * dir, struct dentry * dentry, int mode, struct nameidata *nd) | 101 | static int ext2_create (struct inode * dir, struct dentry * dentry, int mode, struct nameidata *nd) |
| 101 | { | 102 | { |
| 102 | struct inode * inode = ext2_new_inode (dir, mode); | 103 | struct inode *inode; |
| 103 | int err = PTR_ERR(inode); | 104 | |
| 104 | if (!IS_ERR(inode)) { | 105 | dquot_initialize(dir); |
| 105 | inode->i_op = &ext2_file_inode_operations; | 106 | |
| 106 | if (ext2_use_xip(inode->i_sb)) { | 107 | inode = ext2_new_inode(dir, mode); |
| 107 | inode->i_mapping->a_ops = &ext2_aops_xip; | 108 | if (IS_ERR(inode)) |
| 108 | inode->i_fop = &ext2_xip_file_operations; | 109 | return PTR_ERR(inode); |
| 109 | } else if (test_opt(inode->i_sb, NOBH)) { | 110 | |
| 110 | inode->i_mapping->a_ops = &ext2_nobh_aops; | 111 | inode->i_op = &ext2_file_inode_operations; |
| 111 | inode->i_fop = &ext2_file_operations; | 112 | if (ext2_use_xip(inode->i_sb)) { |
| 112 | } else { | 113 | inode->i_mapping->a_ops = &ext2_aops_xip; |
| 113 | inode->i_mapping->a_ops = &ext2_aops; | 114 | inode->i_fop = &ext2_xip_file_operations; |
| 114 | inode->i_fop = &ext2_file_operations; | 115 | } else if (test_opt(inode->i_sb, NOBH)) { |
| 115 | } | 116 | inode->i_mapping->a_ops = &ext2_nobh_aops; |
| 116 | mark_inode_dirty(inode); | 117 | inode->i_fop = &ext2_file_operations; |
| 117 | err = ext2_add_nondir(dentry, inode); | 118 | } else { |
| 119 | inode->i_mapping->a_ops = &ext2_aops; | ||
| 120 | inode->i_fop = &ext2_file_operations; | ||
| 118 | } | 121 | } |
| 119 | return err; | 122 | mark_inode_dirty(inode); |
| 123 | return ext2_add_nondir(dentry, inode); | ||
| 120 | } | 124 | } |
| 121 | 125 | ||
| 122 | static int ext2_mknod (struct inode * dir, struct dentry *dentry, int mode, dev_t rdev) | 126 | static int ext2_mknod (struct inode * dir, struct dentry *dentry, int mode, dev_t rdev) |
| @@ -127,6 +131,8 @@ static int ext2_mknod (struct inode * dir, struct dentry *dentry, int mode, dev_ | |||
| 127 | if (!new_valid_dev(rdev)) | 131 | if (!new_valid_dev(rdev)) |
| 128 | return -EINVAL; | 132 | return -EINVAL; |
| 129 | 133 | ||
| 134 | dquot_initialize(dir); | ||
| 135 | |||
| 130 | inode = ext2_new_inode (dir, mode); | 136 | inode = ext2_new_inode (dir, mode); |
| 131 | err = PTR_ERR(inode); | 137 | err = PTR_ERR(inode); |
| 132 | if (!IS_ERR(inode)) { | 138 | if (!IS_ERR(inode)) { |
| @@ -151,6 +157,8 @@ static int ext2_symlink (struct inode * dir, struct dentry * dentry, | |||
| 151 | if (l > sb->s_blocksize) | 157 | if (l > sb->s_blocksize) |
| 152 | goto out; | 158 | goto out; |
| 153 | 159 | ||
| 160 | dquot_initialize(dir); | ||
| 161 | |||
| 154 | inode = ext2_new_inode (dir, S_IFLNK | S_IRWXUGO); | 162 | inode = ext2_new_inode (dir, S_IFLNK | S_IRWXUGO); |
| 155 | err = PTR_ERR(inode); | 163 | err = PTR_ERR(inode); |
| 156 | if (IS_ERR(inode)) | 164 | if (IS_ERR(inode)) |
| @@ -194,6 +202,8 @@ static int ext2_link (struct dentry * old_dentry, struct inode * dir, | |||
| 194 | if (inode->i_nlink >= EXT2_LINK_MAX) | 202 | if (inode->i_nlink >= EXT2_LINK_MAX) |
| 195 | return -EMLINK; | 203 | return -EMLINK; |
| 196 | 204 | ||
| 205 | dquot_initialize(dir); | ||
| 206 | |||
| 197 | inode->i_ctime = CURRENT_TIME_SEC; | 207 | inode->i_ctime = CURRENT_TIME_SEC; |
| 198 | inode_inc_link_count(inode); | 208 | inode_inc_link_count(inode); |
| 199 | atomic_inc(&inode->i_count); | 209 | atomic_inc(&inode->i_count); |
| @@ -216,6 +226,8 @@ static int ext2_mkdir(struct inode * dir, struct dentry * dentry, int mode) | |||
| 216 | if (dir->i_nlink >= EXT2_LINK_MAX) | 226 | if (dir->i_nlink >= EXT2_LINK_MAX) |
| 217 | goto out; | 227 | goto out; |
| 218 | 228 | ||
| 229 | dquot_initialize(dir); | ||
| 230 | |||
| 219 | inode_inc_link_count(dir); | 231 | inode_inc_link_count(dir); |
| 220 | 232 | ||
| 221 | inode = ext2_new_inode (dir, S_IFDIR | mode); | 233 | inode = ext2_new_inode (dir, S_IFDIR | mode); |
| @@ -262,6 +274,8 @@ static int ext2_unlink(struct inode * dir, struct dentry *dentry) | |||
| 262 | struct page * page; | 274 | struct page * page; |
| 263 | int err = -ENOENT; | 275 | int err = -ENOENT; |
| 264 | 276 | ||
| 277 | dquot_initialize(dir); | ||
| 278 | |||
| 265 | de = ext2_find_entry (dir, &dentry->d_name, &page); | 279 | de = ext2_find_entry (dir, &dentry->d_name, &page); |
| 266 | if (!de) | 280 | if (!de) |
| 267 | goto out; | 281 | goto out; |
| @@ -304,6 +318,9 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry, | |||
| 304 | struct ext2_dir_entry_2 * old_de; | 318 | struct ext2_dir_entry_2 * old_de; |
| 305 | int err = -ENOENT; | 319 | int err = -ENOENT; |
| 306 | 320 | ||
| 321 | dquot_initialize(old_dir); | ||
| 322 | dquot_initialize(new_dir); | ||
| 323 | |||
| 307 | old_de = ext2_find_entry (old_dir, &old_dentry->d_name, &old_page); | 324 | old_de = ext2_find_entry (old_dir, &old_dentry->d_name, &old_page); |
| 308 | if (!old_de) | 325 | if (!old_de) |
| 309 | goto out; | 326 | goto out; |
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index f9cb54a585ce..42e4a303b675 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
| @@ -194,6 +194,8 @@ static void destroy_inodecache(void) | |||
| 194 | static void ext2_clear_inode(struct inode *inode) | 194 | static void ext2_clear_inode(struct inode *inode) |
| 195 | { | 195 | { |
| 196 | struct ext2_block_alloc_info *rsv = EXT2_I(inode)->i_block_alloc_info; | 196 | struct ext2_block_alloc_info *rsv = EXT2_I(inode)->i_block_alloc_info; |
| 197 | |||
| 198 | dquot_drop(inode); | ||
| 197 | ext2_discard_reservation(inode); | 199 | ext2_discard_reservation(inode); |
| 198 | EXT2_I(inode)->i_block_alloc_info = NULL; | 200 | EXT2_I(inode)->i_block_alloc_info = NULL; |
| 199 | if (unlikely(rsv)) | 201 | if (unlikely(rsv)) |
diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c index 904f00642f84..e44dc92609be 100644 --- a/fs/ext2/xattr.c +++ b/fs/ext2/xattr.c | |||
| @@ -644,8 +644,8 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, | |||
| 644 | the inode. */ | 644 | the inode. */ |
| 645 | ea_bdebug(new_bh, "reusing block"); | 645 | ea_bdebug(new_bh, "reusing block"); |
| 646 | 646 | ||
| 647 | error = -EDQUOT; | 647 | error = dquot_alloc_block(inode, 1); |
| 648 | if (vfs_dq_alloc_block(inode, 1)) { | 648 | if (error) { |
| 649 | unlock_buffer(new_bh); | 649 | unlock_buffer(new_bh); |
| 650 | goto cleanup; | 650 | goto cleanup; |
| 651 | } | 651 | } |
| @@ -702,7 +702,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, | |||
| 702 | * as if nothing happened and cleanup the unused block */ | 702 | * as if nothing happened and cleanup the unused block */ |
| 703 | if (error && error != -ENOSPC) { | 703 | if (error && error != -ENOSPC) { |
| 704 | if (new_bh && new_bh != old_bh) | 704 | if (new_bh && new_bh != old_bh) |
| 705 | vfs_dq_free_block(inode, 1); | 705 | dquot_free_block(inode, 1); |
| 706 | goto cleanup; | 706 | goto cleanup; |
| 707 | } | 707 | } |
| 708 | } else | 708 | } else |
| @@ -734,7 +734,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, | |||
| 734 | le32_add_cpu(&HDR(old_bh)->h_refcount, -1); | 734 | le32_add_cpu(&HDR(old_bh)->h_refcount, -1); |
| 735 | if (ce) | 735 | if (ce) |
| 736 | mb_cache_entry_release(ce); | 736 | mb_cache_entry_release(ce); |
| 737 | vfs_dq_free_block(inode, 1); | 737 | dquot_free_block(inode, 1); |
| 738 | mark_buffer_dirty(old_bh); | 738 | mark_buffer_dirty(old_bh); |
| 739 | ea_bdebug(old_bh, "refcount now=%d", | 739 | ea_bdebug(old_bh, "refcount now=%d", |
| 740 | le32_to_cpu(HDR(old_bh)->h_refcount)); | 740 | le32_to_cpu(HDR(old_bh)->h_refcount)); |
| @@ -797,7 +797,7 @@ ext2_xattr_delete_inode(struct inode *inode) | |||
| 797 | mark_buffer_dirty(bh); | 797 | mark_buffer_dirty(bh); |
| 798 | if (IS_SYNC(inode)) | 798 | if (IS_SYNC(inode)) |
| 799 | sync_dirty_buffer(bh); | 799 | sync_dirty_buffer(bh); |
| 800 | vfs_dq_free_block(inode, 1); | 800 | dquot_free_block(inode, 1); |
| 801 | } | 801 | } |
| 802 | EXT2_I(inode)->i_file_acl = 0; | 802 | EXT2_I(inode)->i_file_acl = 0; |
| 803 | 803 | ||
