aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-05 16:20:53 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-05 16:20:53 -0500
commite213e26ab3988c516c06eba4dcd030ac052f6dc9 (patch)
tree6e26fbdbb842b387697d73daf6e70cf718269a77 /fs/ext4/super.c
parentc812a51d11bbe983f4c24e32b59b265705ddd3c2 (diff)
parentefd8f0e6f6c1faa041f228d7113bd3a9db802d49 (diff)
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits) quota: stop using QUOTA_OK / NO_QUOTA dquot: cleanup dquot initialize routine dquot: move dquot initialization responsibility into the filesystem dquot: cleanup dquot drop routine dquot: move dquot drop responsibility into the filesystem dquot: cleanup dquot transfer routine dquot: move dquot transfer responsibility into the filesystem dquot: cleanup inode allocation / freeing routines dquot: cleanup space allocation / freeing routines ext3: add writepage sanity checks ext3: Truncate allocated blocks if direct IO write fails to update i_size quota: Properly invalidate caches even for filesystems with blocksize < pagesize quota: generalize quota transfer interface quota: sb_quota state flags cleanup jbd: Delay discarding buffers in journal_unmap_buffer ext3: quota_write cross block boundary behaviour quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota quota: split out compat_sys_quotactl support from quota.c quota: split out netlink notification support from quota.c quota: remove invalid optimization from quota_sync_all ... Fixed trivial conflicts in fs/namei.c and fs/ufs/inode.c
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r--fs/ext4/super.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index ad1ee5f21bab..2b83b96cb2eb 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -798,6 +798,7 @@ static void destroy_inodecache(void)
798 798
799static void ext4_clear_inode(struct inode *inode) 799static void ext4_clear_inode(struct inode *inode)
800{ 800{
801 dquot_drop(inode);
801 ext4_discard_preallocations(inode); 802 ext4_discard_preallocations(inode);
802 if (EXT4_JOURNAL(inode)) 803 if (EXT4_JOURNAL(inode))
803 jbd2_journal_release_jbd_inode(EXT4_SB(inode->i_sb)->s_journal, 804 jbd2_journal_release_jbd_inode(EXT4_SB(inode->i_sb)->s_journal,
@@ -1052,19 +1053,9 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type,
1052 const char *data, size_t len, loff_t off); 1053 const char *data, size_t len, loff_t off);
1053 1054
1054static const struct dquot_operations ext4_quota_operations = { 1055static const struct dquot_operations ext4_quota_operations = {
1055 .initialize = dquot_initialize,
1056 .drop = dquot_drop,
1057 .alloc_space = dquot_alloc_space,
1058 .reserve_space = dquot_reserve_space,
1059 .claim_space = dquot_claim_space,
1060 .release_rsv = dquot_release_reserved_space,
1061#ifdef CONFIG_QUOTA 1056#ifdef CONFIG_QUOTA
1062 .get_reserved_space = ext4_get_reserved_space, 1057 .get_reserved_space = ext4_get_reserved_space,
1063#endif 1058#endif
1064 .alloc_inode = dquot_alloc_inode,
1065 .free_space = dquot_free_space,
1066 .free_inode = dquot_free_inode,
1067 .transfer = dquot_transfer,
1068 .write_dquot = ext4_write_dquot, 1059 .write_dquot = ext4_write_dquot,
1069 .acquire_dquot = ext4_acquire_dquot, 1060 .acquire_dquot = ext4_acquire_dquot,
1070 .release_dquot = ext4_release_dquot, 1061 .release_dquot = ext4_release_dquot,
@@ -2014,7 +2005,7 @@ static void ext4_orphan_cleanup(struct super_block *sb,
2014 } 2005 }
2015 2006
2016 list_add(&EXT4_I(inode)->i_orphan, &EXT4_SB(sb)->s_orphan); 2007 list_add(&EXT4_I(inode)->i_orphan, &EXT4_SB(sb)->s_orphan);
2017 vfs_dq_init(inode); 2008 dquot_initialize(inode);
2018 if (inode->i_nlink) { 2009 if (inode->i_nlink) {
2019 ext4_msg(sb, KERN_DEBUG, 2010 ext4_msg(sb, KERN_DEBUG,
2020 "%s: truncating inode %lu to %lld bytes", 2011 "%s: truncating inode %lu to %lld bytes",
@@ -3801,7 +3792,7 @@ static int ext4_statfs(struct dentry *dentry, struct kstatfs *buf)
3801 * Process 1 Process 2 3792 * Process 1 Process 2
3802 * ext4_create() quota_sync() 3793 * ext4_create() quota_sync()
3803 * jbd2_journal_start() write_dquot() 3794 * jbd2_journal_start() write_dquot()
3804 * vfs_dq_init() down(dqio_mutex) 3795 * dquot_initialize() down(dqio_mutex)
3805 * down(dqio_mutex) jbd2_journal_start() 3796 * down(dqio_mutex) jbd2_journal_start()
3806 * 3797 *
3807 */ 3798 */