aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/quotaops.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2010-05-19 07:16:42 -0400
committerJan Kara <jack@suse.cz>2010-05-24 08:09:12 -0400
commite0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b (patch)
treea62a84034243e75e07bb063526e10ea0b837062f /include/linux/quotaops.h
parent0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250 (diff)
quota: move unmount handling into the filesystem
Currently the VFS calls into the quotactl interface for unmounting filesystems. This means filesystems with their own quota handling can't easily distinguish between user-space originating quotaoff and an unount. Instead move the responsibily of the unmount handling into the filesystem to be consistent with all other dquot handling. Note that we do call dquot_disable a lot later now, e.g. after a sync_filesystem. But this is fine as the quota code does all its writes via blockdev's mapping and that is synced even later. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'include/linux/quotaops.h')
-rw-r--r--include/linux/quotaops.h15
1 files changed, 0 insertions, 15 deletions
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index 811529241e33..cfa2abb1b6d1 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -156,16 +156,6 @@ extern const struct quotactl_ops vfs_quotactl_ops;
156#define sb_dquot_ops (&dquot_operations) 156#define sb_dquot_ops (&dquot_operations)
157#define sb_quotactl_ops (&vfs_quotactl_ops) 157#define sb_quotactl_ops (&vfs_quotactl_ops)
158 158
159/* Cannot be called inside a transaction */
160static inline int vfs_dq_off(struct super_block *sb, int remount)
161{
162 int ret = -ENOSYS;
163
164 if (sb->s_qcop && sb->s_qcop->quota_off)
165 ret = sb->s_qcop->quota_off(sb, -1, remount);
166 return ret;
167}
168
169#else 159#else
170 160
171static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type) 161static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type)
@@ -232,11 +222,6 @@ static inline void dquot_free_inode(const struct inode *inode)
232{ 222{
233} 223}
234 224
235static inline int vfs_dq_off(struct super_block *sb, int remount)
236{
237 return 0;
238}
239
240static inline int dquot_transfer(struct inode *inode, struct iattr *iattr) 225static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
241{ 226{
242 return 0; 227 return 0;