aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-10 18:43:30 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-10 18:43:30 -0500
commit1366f5d3129f2abde606214de7afc3dd61781fa3 (patch)
treeb275b18e90bd24d64e09894a812bbd7dd1c424f5 /fs/ocfs2
parent4b0a268eeccae14d42ff5fb9f19b612913c0007c (diff)
parentfdf2657bc81b10dee856ec9f8fe5b201c0561e9d (diff)
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull quota updates from Jan Kara: "Quota improvements and some minor cleanups. The main portion in the pull request are changes which move i_dquot array from struct inode into fs-private part of an inode which saves memory for filesystems which don't use VFS quotas" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: udf: One function call less in udf_fill_super() after error detection udf: Deletion of unnecessary checks before the function call "iput" jbd: Deletion of an unnecessary check before the function call "iput" vfs: Remove i_dquot field from inode jfs: Convert to private i_dquot field reiserfs: Convert to private i_dquot field ocfs2: Convert to private i_dquot field ext4: Convert to private i_dquot field ext3: Convert to private i_dquot field ext2: Convert to private i_dquot field quota: Use function to provide i_dquot pointers xfs: Set allowed quota types gfs2: Set allowed quota types quota: Allow each filesystem to specify which quota types it supports quota: Remove const from function declarations quota: Add log level to printk
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/inode.h2
-rw-r--r--fs/ocfs2/super.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
index a9b76de46047..ca3431ee7f24 100644
--- a/fs/ocfs2/inode.h
+++ b/fs/ocfs2/inode.h
@@ -80,6 +80,8 @@ struct ocfs2_inode_info
80 */ 80 */
81 tid_t i_sync_tid; 81 tid_t i_sync_tid;
82 tid_t i_datasync_tid; 82 tid_t i_datasync_tid;
83
84 struct dquot *i_dquot[MAXQUOTAS];
83}; 85};
84 86
85/* 87/*
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 93c85bc745e1..0945814ddb7b 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -143,6 +143,11 @@ static int ocfs2_susp_quotas(struct ocfs2_super *osb, int unsuspend);
143static int ocfs2_enable_quotas(struct ocfs2_super *osb); 143static int ocfs2_enable_quotas(struct ocfs2_super *osb);
144static void ocfs2_disable_quotas(struct ocfs2_super *osb); 144static void ocfs2_disable_quotas(struct ocfs2_super *osb);
145 145
146static struct dquot **ocfs2_get_dquots(struct inode *inode)
147{
148 return OCFS2_I(inode)->i_dquot;
149}
150
146static const struct super_operations ocfs2_sops = { 151static const struct super_operations ocfs2_sops = {
147 .statfs = ocfs2_statfs, 152 .statfs = ocfs2_statfs,
148 .alloc_inode = ocfs2_alloc_inode, 153 .alloc_inode = ocfs2_alloc_inode,
@@ -155,6 +160,7 @@ static const struct super_operations ocfs2_sops = {
155 .show_options = ocfs2_show_options, 160 .show_options = ocfs2_show_options,
156 .quota_read = ocfs2_quota_read, 161 .quota_read = ocfs2_quota_read,
157 .quota_write = ocfs2_quota_write, 162 .quota_write = ocfs2_quota_write,
163 .get_dquots = ocfs2_get_dquots,
158}; 164};
159 165
160enum { 166enum {
@@ -563,6 +569,7 @@ static struct inode *ocfs2_alloc_inode(struct super_block *sb)
563 569
564 oi->i_sync_tid = 0; 570 oi->i_sync_tid = 0;
565 oi->i_datasync_tid = 0; 571 oi->i_datasync_tid = 0;
572 memset(&oi->i_dquot, 0, sizeof(oi->i_dquot));
566 573
567 jbd2_journal_init_jbd_inode(&oi->ip_jinode, &oi->vfs_inode); 574 jbd2_journal_init_jbd_inode(&oi->ip_jinode, &oi->vfs_inode);
568 return &oi->vfs_inode; 575 return &oi->vfs_inode;
@@ -2073,6 +2080,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
2073 sb->s_export_op = &ocfs2_export_ops; 2080 sb->s_export_op = &ocfs2_export_ops;
2074 sb->s_qcop = &ocfs2_quotactl_ops; 2081 sb->s_qcop = &ocfs2_quotactl_ops;
2075 sb->dq_op = &ocfs2_quota_operations; 2082 sb->dq_op = &ocfs2_quota_operations;
2083 sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP;
2076 sb->s_xattr = ocfs2_xattr_handlers; 2084 sb->s_xattr = ocfs2_xattr_handlers;
2077 sb->s_time_gran = 1; 2085 sb->s_time_gran = 1;
2078 sb->s_flags |= MS_NOATIME; 2086 sb->s_flags |= MS_NOATIME;