diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-03-03 09:05:05 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-03-04 18:20:30 -0500 |
commit | 9f7547580263d4a55efe06ce5cfd567f568be6e8 (patch) | |
tree | 6f926a075eeed815d0a6680c06f235da0e5ea6d9 | |
parent | 257ba15cedf1288f0c96118d7e63947231d27278 (diff) |
dquot: cleanup dquot drop routine
Get rid of the drop dquot operation - it is now always called from
the filesystem and if a filesystem really needs it's own (which none
currently does) it can just call into it's own routine directly.
Rename the now static low-level dquot_drop helper to __dquot_drop
and vfs_dq_drop to dquot_drop to have a consistent namespace.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | Documentation/filesystems/Locking | 2 | ||||
-rw-r--r-- | fs/ext2/ialloc.c | 4 | ||||
-rw-r--r-- | fs/ext2/super.c | 2 | ||||
-rw-r--r-- | fs/ext3/ialloc.c | 4 | ||||
-rw-r--r-- | fs/ext3/super.c | 3 | ||||
-rw-r--r-- | fs/ext4/ialloc.c | 4 | ||||
-rw-r--r-- | fs/ext4/super.c | 3 | ||||
-rw-r--r-- | fs/jfs/inode.c | 2 | ||||
-rw-r--r-- | fs/jfs/jfs_inode.c | 2 | ||||
-rw-r--r-- | fs/jfs/super.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/inode.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/quota_global.c | 1 | ||||
-rw-r--r-- | fs/quota/dquot.c | 52 | ||||
-rw-r--r-- | fs/reiserfs/inode.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/namei.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/super.c | 3 | ||||
-rw-r--r-- | fs/udf/ialloc.c | 4 | ||||
-rw-r--r-- | fs/udf/inode.c | 2 | ||||
-rw-r--r-- | fs/ufs/ialloc.c | 4 | ||||
-rw-r--r-- | fs/ufs/super.c | 2 | ||||
-rw-r--r-- | include/linux/quota.h | 1 | ||||
-rw-r--r-- | include/linux/quotaops.h | 5 |
22 files changed, 49 insertions, 59 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 4574e0272bdd..fa10e4bf8e5e 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -461,7 +461,6 @@ in sys_read() and friends. | |||
461 | --------------------------- dquot_operations ------------------------------- | 461 | --------------------------- dquot_operations ------------------------------- |
462 | prototypes: | 462 | prototypes: |
463 | int (*initialize) (struct inode *, int); | 463 | int (*initialize) (struct inode *, int); |
464 | int (*drop) (struct inode *); | ||
465 | int (*write_dquot) (struct dquot *); | 464 | int (*write_dquot) (struct dquot *); |
466 | int (*acquire_dquot) (struct dquot *); | 465 | int (*acquire_dquot) (struct dquot *); |
467 | int (*release_dquot) (struct dquot *); | 466 | int (*release_dquot) (struct dquot *); |
@@ -475,7 +474,6 @@ What filesystem should expect from the generic quota functions: | |||
475 | 474 | ||
476 | FS recursion Held locks when called | 475 | FS recursion Held locks when called |
477 | initialize: yes maybe dqonoff_sem | 476 | initialize: yes maybe dqonoff_sem |
478 | drop: yes - | ||
479 | write_dquot: yes dqonoff_sem or dqptr_sem | 477 | write_dquot: yes dqonoff_sem or dqptr_sem |
480 | acquire_dquot: yes dqonoff_sem or dqptr_sem | 478 | acquire_dquot: yes dqonoff_sem or dqptr_sem |
481 | release_dquot: yes dqonoff_sem or dqptr_sem | 479 | release_dquot: yes dqonoff_sem or dqptr_sem |
diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c index d12f9809559c..88b71972c626 100644 --- a/fs/ext2/ialloc.c +++ b/fs/ext2/ialloc.c | |||
@@ -122,7 +122,7 @@ void ext2_free_inode (struct 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 | dquot_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; |
@@ -608,7 +608,7 @@ fail_free_drop: | |||
608 | dquot_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/super.c b/fs/ext2/super.c index 98815d2a5664..42e4a303b675 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -195,7 +195,7 @@ 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 | 197 | ||
198 | vfs_dq_drop(inode); | 198 | dquot_drop(inode); |
199 | ext2_discard_reservation(inode); | 199 | ext2_discard_reservation(inode); |
200 | EXT2_I(inode)->i_block_alloc_info = NULL; | 200 | EXT2_I(inode)->i_block_alloc_info = NULL; |
201 | if (unlikely(rsv)) | 201 | if (unlikely(rsv)) |
diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index 8bf00e997c38..7d7238f9f6f3 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c | |||
@@ -126,7 +126,7 @@ void ext3_free_inode (handle_t *handle, struct inode * inode) | |||
126 | vfs_dq_init(inode); | 126 | vfs_dq_init(inode); |
127 | ext3_xattr_delete_inode(handle, inode); | 127 | ext3_xattr_delete_inode(handle, inode); |
128 | dquot_free_inode(inode); | 128 | dquot_free_inode(inode); |
129 | vfs_dq_drop(inode); | 129 | dquot_drop(inode); |
130 | 130 | ||
131 | is_directory = S_ISDIR(inode->i_mode); | 131 | is_directory = S_ISDIR(inode->i_mode); |
132 | 132 | ||
@@ -622,7 +622,7 @@ fail_free_drop: | |||
622 | dquot_free_inode(inode); | 622 | dquot_free_inode(inode); |
623 | 623 | ||
624 | fail_drop: | 624 | fail_drop: |
625 | vfs_dq_drop(inode); | 625 | dquot_drop(inode); |
626 | inode->i_flags |= S_NOQUOTA; | 626 | inode->i_flags |= S_NOQUOTA; |
627 | inode->i_nlink = 0; | 627 | inode->i_nlink = 0; |
628 | unlock_new_inode(inode); | 628 | unlock_new_inode(inode); |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 2277b1a98e62..0163d0dae124 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -529,7 +529,7 @@ static void ext3_clear_inode(struct inode *inode) | |||
529 | { | 529 | { |
530 | struct ext3_block_alloc_info *rsv = EXT3_I(inode)->i_block_alloc_info; | 530 | struct ext3_block_alloc_info *rsv = EXT3_I(inode)->i_block_alloc_info; |
531 | 531 | ||
532 | vfs_dq_drop(inode); | 532 | dquot_drop(inode); |
533 | ext3_discard_reservation(inode); | 533 | ext3_discard_reservation(inode); |
534 | EXT3_I(inode)->i_block_alloc_info = NULL; | 534 | EXT3_I(inode)->i_block_alloc_info = NULL; |
535 | if (unlikely(rsv)) | 535 | if (unlikely(rsv)) |
@@ -753,7 +753,6 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type, | |||
753 | 753 | ||
754 | static const struct dquot_operations ext3_quota_operations = { | 754 | static const struct dquot_operations ext3_quota_operations = { |
755 | .initialize = dquot_initialize, | 755 | .initialize = dquot_initialize, |
756 | .drop = dquot_drop, | ||
757 | .write_dquot = ext3_write_dquot, | 756 | .write_dquot = ext3_write_dquot, |
758 | .acquire_dquot = ext3_acquire_dquot, | 757 | .acquire_dquot = ext3_acquire_dquot, |
759 | .release_dquot = ext3_release_dquot, | 758 | .release_dquot = ext3_release_dquot, |
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index b0d744cf8b95..ca8986e4b528 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c | |||
@@ -220,7 +220,7 @@ void ext4_free_inode(handle_t *handle, struct inode *inode) | |||
220 | vfs_dq_init(inode); | 220 | vfs_dq_init(inode); |
221 | ext4_xattr_delete_inode(handle, inode); | 221 | ext4_xattr_delete_inode(handle, inode); |
222 | dquot_free_inode(inode); | 222 | dquot_free_inode(inode); |
223 | vfs_dq_drop(inode); | 223 | dquot_drop(inode); |
224 | 224 | ||
225 | is_directory = S_ISDIR(inode->i_mode); | 225 | is_directory = S_ISDIR(inode->i_mode); |
226 | 226 | ||
@@ -1077,7 +1077,7 @@ fail_free_drop: | |||
1077 | dquot_free_inode(inode); | 1077 | dquot_free_inode(inode); |
1078 | 1078 | ||
1079 | fail_drop: | 1079 | fail_drop: |
1080 | vfs_dq_drop(inode); | 1080 | dquot_drop(inode); |
1081 | inode->i_flags |= S_NOQUOTA; | 1081 | inode->i_flags |= S_NOQUOTA; |
1082 | inode->i_nlink = 0; | 1082 | inode->i_nlink = 0; |
1083 | unlock_new_inode(inode); | 1083 | unlock_new_inode(inode); |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 56554c8850ec..035516c80df2 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -761,7 +761,7 @@ static void destroy_inodecache(void) | |||
761 | 761 | ||
762 | static void ext4_clear_inode(struct inode *inode) | 762 | static void ext4_clear_inode(struct inode *inode) |
763 | { | 763 | { |
764 | vfs_dq_drop(inode); | 764 | dquot_drop(inode); |
765 | ext4_discard_preallocations(inode); | 765 | ext4_discard_preallocations(inode); |
766 | if (EXT4_JOURNAL(inode)) | 766 | if (EXT4_JOURNAL(inode)) |
767 | jbd2_journal_release_jbd_inode(EXT4_SB(inode->i_sb)->s_journal, | 767 | jbd2_journal_release_jbd_inode(EXT4_SB(inode->i_sb)->s_journal, |
@@ -1014,7 +1014,6 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type, | |||
1014 | 1014 | ||
1015 | static const struct dquot_operations ext4_quota_operations = { | 1015 | static const struct dquot_operations ext4_quota_operations = { |
1016 | .initialize = dquot_initialize, | 1016 | .initialize = dquot_initialize, |
1017 | .drop = dquot_drop, | ||
1018 | #ifdef CONFIG_QUOTA | 1017 | #ifdef CONFIG_QUOTA |
1019 | .get_reserved_space = ext4_get_reserved_space, | 1018 | .get_reserved_space = ext4_get_reserved_space, |
1020 | #endif | 1019 | #endif |
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c index 2562d18988f7..22fa412c5289 100644 --- a/fs/jfs/inode.c +++ b/fs/jfs/inode.c | |||
@@ -160,7 +160,7 @@ void jfs_delete_inode(struct inode *inode) | |||
160 | */ | 160 | */ |
161 | vfs_dq_init(inode); | 161 | vfs_dq_init(inode); |
162 | dquot_free_inode(inode); | 162 | dquot_free_inode(inode); |
163 | vfs_dq_drop(inode); | 163 | dquot_drop(inode); |
164 | } | 164 | } |
165 | 165 | ||
166 | clear_inode(inode); | 166 | clear_inode(inode); |
diff --git a/fs/jfs/jfs_inode.c b/fs/jfs/jfs_inode.c index 7762f33e062b..72b30895422c 100644 --- a/fs/jfs/jfs_inode.c +++ b/fs/jfs/jfs_inode.c | |||
@@ -162,7 +162,7 @@ struct inode *ialloc(struct inode *parent, umode_t mode) | |||
162 | return inode; | 162 | return inode; |
163 | 163 | ||
164 | fail_drop: | 164 | fail_drop: |
165 | vfs_dq_drop(inode); | 165 | dquot_drop(inode); |
166 | inode->i_flags |= S_NOQUOTA; | 166 | inode->i_flags |= S_NOQUOTA; |
167 | fail_unlock: | 167 | fail_unlock: |
168 | inode->i_nlink = 0; | 168 | inode->i_nlink = 0; |
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 4086fa593419..266699deb1c6 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -133,7 +133,7 @@ static void jfs_destroy_inode(struct inode *inode) | |||
133 | 133 | ||
134 | static void jfs_clear_inode(struct inode *inode) | 134 | static void jfs_clear_inode(struct inode *inode) |
135 | { | 135 | { |
136 | vfs_dq_drop(inode); | 136 | dquot_drop(inode); |
137 | } | 137 | } |
138 | 138 | ||
139 | static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf) | 139 | static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf) |
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 13eb5d467c40..00eb6a095e68 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c | |||
@@ -1087,7 +1087,7 @@ void ocfs2_clear_inode(struct inode *inode) | |||
1087 | mlog_bug_on_msg(OCFS2_SB(inode->i_sb) == NULL, | 1087 | mlog_bug_on_msg(OCFS2_SB(inode->i_sb) == NULL, |
1088 | "Inode=%lu\n", inode->i_ino); | 1088 | "Inode=%lu\n", inode->i_ino); |
1089 | 1089 | ||
1090 | vfs_dq_drop(inode); | 1090 | dquot_drop(inode); |
1091 | 1091 | ||
1092 | /* To preven remote deletes we hold open lock before, now it | 1092 | /* To preven remote deletes we hold open lock before, now it |
1093 | * is time to unlock PR and EX open locks. */ | 1093 | * is time to unlock PR and EX open locks. */ |
diff --git a/fs/ocfs2/quota_global.c b/fs/ocfs2/quota_global.c index b654bd103b6f..4dca38f487cf 100644 --- a/fs/ocfs2/quota_global.c +++ b/fs/ocfs2/quota_global.c | |||
@@ -852,7 +852,6 @@ static void ocfs2_destroy_dquot(struct dquot *dquot) | |||
852 | 852 | ||
853 | const struct dquot_operations ocfs2_quota_operations = { | 853 | const struct dquot_operations ocfs2_quota_operations = { |
854 | .initialize = dquot_initialize, | 854 | .initialize = dquot_initialize, |
855 | .drop = dquot_drop, | ||
856 | .write_dquot = ocfs2_write_dquot, | 855 | .write_dquot = ocfs2_write_dquot, |
857 | .acquire_dquot = ocfs2_acquire_dquot, | 856 | .acquire_dquot = ocfs2_acquire_dquot, |
858 | .release_dquot = ocfs2_release_dquot, | 857 | .release_dquot = ocfs2_release_dquot, |
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 78ce4c48ad77..cd83c5b871ba 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c | |||
@@ -1358,7 +1358,7 @@ EXPORT_SYMBOL(dquot_initialize); | |||
1358 | /* | 1358 | /* |
1359 | * Release all quotas referenced by inode | 1359 | * Release all quotas referenced by inode |
1360 | */ | 1360 | */ |
1361 | int dquot_drop(struct inode *inode) | 1361 | static void __dquot_drop(struct inode *inode) |
1362 | { | 1362 | { |
1363 | int cnt; | 1363 | int cnt; |
1364 | struct dquot *put[MAXQUOTAS]; | 1364 | struct dquot *put[MAXQUOTAS]; |
@@ -1370,32 +1370,31 @@ int dquot_drop(struct inode *inode) | |||
1370 | } | 1370 | } |
1371 | up_write(&sb_dqopt(inode->i_sb)->dqptr_sem); | 1371 | up_write(&sb_dqopt(inode->i_sb)->dqptr_sem); |
1372 | dqput_all(put); | 1372 | dqput_all(put); |
1373 | return 0; | ||
1374 | } | 1373 | } |
1375 | EXPORT_SYMBOL(dquot_drop); | ||
1376 | 1374 | ||
1377 | /* Wrapper to remove references to quota structures from inode */ | 1375 | void dquot_drop(struct inode *inode) |
1378 | void vfs_dq_drop(struct inode *inode) | 1376 | { |
1379 | { | 1377 | int cnt; |
1380 | /* Here we can get arbitrary inode from clear_inode() so we have | 1378 | |
1381 | * to be careful. OTOH we don't need locking as quota operations | 1379 | if (IS_NOQUOTA(inode)) |
1382 | * are allowed to change only at mount time */ | 1380 | return; |
1383 | if (!IS_NOQUOTA(inode) && inode->i_sb && inode->i_sb->dq_op | 1381 | |
1384 | && inode->i_sb->dq_op->drop) { | 1382 | /* |
1385 | int cnt; | 1383 | * Test before calling to rule out calls from proc and such |
1386 | /* Test before calling to rule out calls from proc and such | 1384 | * where we are not allowed to block. Note that this is |
1387 | * where we are not allowed to block. Note that this is | 1385 | * actually reliable test even without the lock - the caller |
1388 | * actually reliable test even without the lock - the caller | 1386 | * must assure that nobody can come after the DQUOT_DROP and |
1389 | * must assure that nobody can come after the DQUOT_DROP and | 1387 | * add quota pointers back anyway. |
1390 | * add quota pointers back anyway */ | 1388 | */ |
1391 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) | 1389 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) { |
1392 | if (inode->i_dquot[cnt]) | 1390 | if (inode->i_dquot[cnt]) |
1393 | break; | 1391 | break; |
1394 | if (cnt < MAXQUOTAS) | 1392 | } |
1395 | inode->i_sb->dq_op->drop(inode); | 1393 | |
1396 | } | 1394 | if (cnt < MAXQUOTAS) |
1397 | } | 1395 | __dquot_drop(inode); |
1398 | EXPORT_SYMBOL(vfs_dq_drop); | 1396 | } |
1397 | EXPORT_SYMBOL(dquot_drop); | ||
1399 | 1398 | ||
1400 | /* | 1399 | /* |
1401 | * inode_reserved_space is managed internally by quota, and protected by | 1400 | * inode_reserved_space is managed internally by quota, and protected by |
@@ -1812,7 +1811,6 @@ EXPORT_SYMBOL(dquot_commit_info); | |||
1812 | */ | 1811 | */ |
1813 | const struct dquot_operations dquot_operations = { | 1812 | const struct dquot_operations dquot_operations = { |
1814 | .initialize = dquot_initialize, | 1813 | .initialize = dquot_initialize, |
1815 | .drop = dquot_drop, | ||
1816 | .write_dquot = dquot_commit, | 1814 | .write_dquot = dquot_commit, |
1817 | .acquire_dquot = dquot_acquire, | 1815 | .acquire_dquot = dquot_acquire, |
1818 | .release_dquot = dquot_release, | 1816 | .release_dquot = dquot_release, |
@@ -2029,7 +2027,7 @@ static int vfs_load_quota_inode(struct inode *inode, int type, int format_id, | |||
2029 | * When S_NOQUOTA is set, remove dquot references as no more | 2027 | * When S_NOQUOTA is set, remove dquot references as no more |
2030 | * references can be added | 2028 | * references can be added |
2031 | */ | 2029 | */ |
2032 | sb->dq_op->drop(inode); | 2030 | __dquot_drop(inode); |
2033 | } | 2031 | } |
2034 | 2032 | ||
2035 | error = -EIO; | 2033 | error = -EIO; |
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 99a5e5a8ab5a..f07c3b69247d 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -1964,7 +1964,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, | |||
1964 | out_end_trans: | 1964 | out_end_trans: |
1965 | journal_end(th, th->t_super, th->t_blocks_allocated); | 1965 | journal_end(th, th->t_super, th->t_blocks_allocated); |
1966 | /* Drop can be outside and it needs more credits so it's better to have it outside */ | 1966 | /* Drop can be outside and it needs more credits so it's better to have it outside */ |
1967 | vfs_dq_drop(inode); | 1967 | dquot_drop(inode); |
1968 | inode->i_flags |= S_NOQUOTA; | 1968 | inode->i_flags |= S_NOQUOTA; |
1969 | make_bad_inode(inode); | 1969 | make_bad_inode(inode); |
1970 | 1970 | ||
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index 9d4dcf0b07cb..9dea84e8a79a 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c | |||
@@ -546,7 +546,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th, | |||
546 | */ | 546 | */ |
547 | static int drop_new_inode(struct inode *inode) | 547 | static int drop_new_inode(struct inode *inode) |
548 | { | 548 | { |
549 | vfs_dq_drop(inode); | 549 | dquot_drop(inode); |
550 | make_bad_inode(inode); | 550 | make_bad_inode(inode); |
551 | inode->i_flags |= S_NOQUOTA; | 551 | inode->i_flags |= S_NOQUOTA; |
552 | iput(inode); | 552 | iput(inode); |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 6b24e70e329b..34f7cd0cb02d 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -580,7 +580,7 @@ out: | |||
580 | 580 | ||
581 | static void reiserfs_clear_inode(struct inode *inode) | 581 | static void reiserfs_clear_inode(struct inode *inode) |
582 | { | 582 | { |
583 | vfs_dq_drop(inode); | 583 | dquot_drop(inode); |
584 | } | 584 | } |
585 | 585 | ||
586 | #ifdef CONFIG_QUOTA | 586 | #ifdef CONFIG_QUOTA |
@@ -623,7 +623,6 @@ static int reiserfs_quota_on(struct super_block *, int, int, char *, int); | |||
623 | 623 | ||
624 | static const struct dquot_operations reiserfs_quota_operations = { | 624 | static const struct dquot_operations reiserfs_quota_operations = { |
625 | .initialize = dquot_initialize, | 625 | .initialize = dquot_initialize, |
626 | .drop = dquot_drop, | ||
627 | .write_dquot = reiserfs_write_dquot, | 626 | .write_dquot = reiserfs_write_dquot, |
628 | .acquire_dquot = reiserfs_acquire_dquot, | 627 | .acquire_dquot = reiserfs_acquire_dquot, |
629 | .release_dquot = reiserfs_release_dquot, | 628 | .release_dquot = reiserfs_release_dquot, |
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index e1856b89c9c8..15c6e992e587 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c | |||
@@ -37,7 +37,7 @@ void udf_free_inode(struct inode *inode) | |||
37 | * as writing the quota to disk may need the lock as well. | 37 | * as writing the quota to disk may need the lock as well. |
38 | */ | 38 | */ |
39 | dquot_free_inode(inode); | 39 | dquot_free_inode(inode); |
40 | vfs_dq_drop(inode); | 40 | dquot_drop(inode); |
41 | 41 | ||
42 | clear_inode(inode); | 42 | clear_inode(inode); |
43 | 43 | ||
@@ -156,7 +156,7 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err) | |||
156 | vfs_dq_init(inode); | 156 | vfs_dq_init(inode); |
157 | ret = dquot_alloc_inode(inode); | 157 | ret = dquot_alloc_inode(inode); |
158 | if (ret) { | 158 | if (ret) { |
159 | vfs_dq_drop(inode); | 159 | dquot_drop(inode); |
160 | inode->i_flags |= S_NOQUOTA; | 160 | inode->i_flags |= S_NOQUOTA; |
161 | inode->i_nlink = 0; | 161 | inode->i_nlink = 0; |
162 | iput(inode); | 162 | iput(inode); |
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 859389a3832b..1199e8e21ee2 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -109,7 +109,7 @@ void udf_clear_inode(struct inode *inode) | |||
109 | (unsigned long long)iinfo->i_lenExtents); | 109 | (unsigned long long)iinfo->i_lenExtents); |
110 | } | 110 | } |
111 | 111 | ||
112 | vfs_dq_drop(inode); | 112 | dquot_drop(inode); |
113 | kfree(iinfo->i_ext.i_data); | 113 | kfree(iinfo->i_ext.i_data); |
114 | iinfo->i_ext.i_data = NULL; | 114 | iinfo->i_ext.i_data = NULL; |
115 | } | 115 | } |
diff --git a/fs/ufs/ialloc.c b/fs/ufs/ialloc.c index 02f77882c573..67b4bdb056fb 100644 --- a/fs/ufs/ialloc.c +++ b/fs/ufs/ialloc.c | |||
@@ -96,7 +96,7 @@ void ufs_free_inode (struct inode * inode) | |||
96 | is_directory = S_ISDIR(inode->i_mode); | 96 | is_directory = S_ISDIR(inode->i_mode); |
97 | 97 | ||
98 | dquot_free_inode(inode); | 98 | dquot_free_inode(inode); |
99 | vfs_dq_drop(inode); | 99 | dquot_drop(inode); |
100 | 100 | ||
101 | clear_inode (inode); | 101 | clear_inode (inode); |
102 | 102 | ||
@@ -358,7 +358,7 @@ cg_found: | |||
358 | vfs_dq_init(inode); | 358 | vfs_dq_init(inode); |
359 | err = dquot_alloc_inode(inode); | 359 | err = dquot_alloc_inode(inode); |
360 | if (err) { | 360 | if (err) { |
361 | vfs_dq_drop(inode); | 361 | dquot_drop(inode); |
362 | goto fail_without_unlock; | 362 | goto fail_without_unlock; |
363 | } | 363 | } |
364 | 364 | ||
diff --git a/fs/ufs/super.c b/fs/ufs/super.c index 95d61cb3a5b8..66b63a751615 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c | |||
@@ -1434,7 +1434,7 @@ static void destroy_inodecache(void) | |||
1434 | 1434 | ||
1435 | static void ufs_clear_inode(struct inode *inode) | 1435 | static void ufs_clear_inode(struct inode *inode) |
1436 | { | 1436 | { |
1437 | vfs_dq_drop(inode); | 1437 | dquot_drop(inode); |
1438 | } | 1438 | } |
1439 | 1439 | ||
1440 | #ifdef CONFIG_QUOTA | 1440 | #ifdef CONFIG_QUOTA |
diff --git a/include/linux/quota.h b/include/linux/quota.h index 422e6aa78edc..aec2e9dac2d7 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
@@ -296,7 +296,6 @@ struct quota_format_ops { | |||
296 | /* Operations working with dquots */ | 296 | /* Operations working with dquots */ |
297 | struct dquot_operations { | 297 | struct dquot_operations { |
298 | int (*initialize) (struct inode *, int); | 298 | int (*initialize) (struct inode *, int); |
299 | int (*drop) (struct inode *); | ||
300 | int (*write_dquot) (struct dquot *); /* Ordinary dquot write */ | 299 | int (*write_dquot) (struct dquot *); /* Ordinary dquot write */ |
301 | struct dquot *(*alloc_dquot)(struct super_block *, int); /* Allocate memory for new dquot */ | 300 | struct dquot *(*alloc_dquot)(struct super_block *, int); /* Allocate memory for new dquot */ |
302 | void (*destroy_dquot)(struct dquot *); /* Free memory for dquot */ | 301 | void (*destroy_dquot)(struct dquot *); /* Free memory for dquot */ |
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index fa27b7218c82..a5ebd1abccd8 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
@@ -24,7 +24,7 @@ void inode_claim_rsv_space(struct inode *inode, qsize_t number); | |||
24 | void inode_sub_rsv_space(struct inode *inode, qsize_t number); | 24 | void inode_sub_rsv_space(struct inode *inode, qsize_t number); |
25 | 25 | ||
26 | int dquot_initialize(struct inode *inode, int type); | 26 | int dquot_initialize(struct inode *inode, int type); |
27 | int dquot_drop(struct inode *inode); | 27 | void dquot_drop(struct inode *inode); |
28 | struct dquot *dqget(struct super_block *sb, unsigned int id, int type); | 28 | struct dquot *dqget(struct super_block *sb, unsigned int id, int type); |
29 | void dqput(struct dquot *dquot); | 29 | void dqput(struct dquot *dquot); |
30 | int dquot_scan_active(struct super_block *sb, | 30 | int dquot_scan_active(struct super_block *sb, |
@@ -64,7 +64,6 @@ int vfs_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii); | |||
64 | int vfs_get_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *di); | 64 | int vfs_get_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *di); |
65 | int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *di); | 65 | int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *di); |
66 | 66 | ||
67 | void vfs_dq_drop(struct inode *inode); | ||
68 | int dquot_transfer(struct inode *inode, struct iattr *iattr); | 67 | int dquot_transfer(struct inode *inode, struct iattr *iattr); |
69 | int vfs_dq_quota_on_remount(struct super_block *sb); | 68 | int vfs_dq_quota_on_remount(struct super_block *sb); |
70 | 69 | ||
@@ -210,7 +209,7 @@ static inline void vfs_dq_init(struct inode *inode) | |||
210 | { | 209 | { |
211 | } | 210 | } |
212 | 211 | ||
213 | static inline void vfs_dq_drop(struct inode *inode) | 212 | static inline void dquot_drop(struct inode *inode) |
214 | { | 213 | { |
215 | } | 214 | } |
216 | 215 | ||