diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-03-03 09:05:03 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-03-04 18:20:29 -0500 |
commit | b43fa8284d7790d9cca32c9c55e24f29be2fa33b (patch) | |
tree | acb7f205fe2a1ae324e0e11c50f43baaa6b8dfab /fs/quota/dquot.c | |
parent | 759bfee658beab14af7b357156461d0eb852be2c (diff) |
dquot: cleanup dquot transfer routine
Get rid of the transfer 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_transfer helper to __dquot_transfer
and vfs_dq_transfer to dquot_transfer to have a consistent namespace,
and make the new dquot_transfer return a normal negative errno value
which all callers expect.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/quota/dquot.c')
-rw-r--r-- | fs/quota/dquot.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index ed131318b84..78ce4c48ad7 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c | |||
@@ -1669,7 +1669,7 @@ EXPORT_SYMBOL(dquot_free_inode); | |||
1669 | * This operation can block, but only after everything is updated | 1669 | * This operation can block, but only after everything is updated |
1670 | * A transaction must be started when entering this function. | 1670 | * A transaction must be started when entering this function. |
1671 | */ | 1671 | */ |
1672 | int dquot_transfer(struct inode *inode, qid_t *chid, unsigned long mask) | 1672 | static int __dquot_transfer(struct inode *inode, qid_t *chid, unsigned long mask) |
1673 | { | 1673 | { |
1674 | qsize_t space, cur_space; | 1674 | qsize_t space, cur_space; |
1675 | qsize_t rsv_space = 0; | 1675 | qsize_t rsv_space = 0; |
@@ -1766,12 +1766,11 @@ over_quota: | |||
1766 | ret = NO_QUOTA; | 1766 | ret = NO_QUOTA; |
1767 | goto warn_put_all; | 1767 | goto warn_put_all; |
1768 | } | 1768 | } |
1769 | EXPORT_SYMBOL(dquot_transfer); | ||
1770 | 1769 | ||
1771 | /* Wrapper for transferring ownership of an inode for uid/gid only | 1770 | /* Wrapper for transferring ownership of an inode for uid/gid only |
1772 | * Called from FSXXX_setattr() | 1771 | * Called from FSXXX_setattr() |
1773 | */ | 1772 | */ |
1774 | int vfs_dq_transfer(struct inode *inode, struct iattr *iattr) | 1773 | int dquot_transfer(struct inode *inode, struct iattr *iattr) |
1775 | { | 1774 | { |
1776 | qid_t chid[MAXQUOTAS]; | 1775 | qid_t chid[MAXQUOTAS]; |
1777 | unsigned long mask = 0; | 1776 | unsigned long mask = 0; |
@@ -1786,12 +1785,12 @@ int vfs_dq_transfer(struct inode *inode, struct iattr *iattr) | |||
1786 | } | 1785 | } |
1787 | if (sb_any_quota_active(inode->i_sb) && !IS_NOQUOTA(inode)) { | 1786 | if (sb_any_quota_active(inode->i_sb) && !IS_NOQUOTA(inode)) { |
1788 | vfs_dq_init(inode); | 1787 | vfs_dq_init(inode); |
1789 | if (inode->i_sb->dq_op->transfer(inode, chid, mask) == NO_QUOTA) | 1788 | if (__dquot_transfer(inode, chid, mask) == NO_QUOTA) |
1790 | return 1; | 1789 | return -EDQUOT; |
1791 | } | 1790 | } |
1792 | return 0; | 1791 | return 0; |
1793 | } | 1792 | } |
1794 | EXPORT_SYMBOL(vfs_dq_transfer); | 1793 | EXPORT_SYMBOL(dquot_transfer); |
1795 | 1794 | ||
1796 | /* | 1795 | /* |
1797 | * Write info of quota file to disk | 1796 | * Write info of quota file to disk |
@@ -1814,7 +1813,6 @@ EXPORT_SYMBOL(dquot_commit_info); | |||
1814 | const struct dquot_operations dquot_operations = { | 1813 | const struct dquot_operations dquot_operations = { |
1815 | .initialize = dquot_initialize, | 1814 | .initialize = dquot_initialize, |
1816 | .drop = dquot_drop, | 1815 | .drop = dquot_drop, |
1817 | .transfer = dquot_transfer, | ||
1818 | .write_dquot = dquot_commit, | 1816 | .write_dquot = dquot_commit, |
1819 | .acquire_dquot = dquot_acquire, | 1817 | .acquire_dquot = dquot_acquire, |
1820 | .release_dquot = dquot_release, | 1818 | .release_dquot = dquot_release, |