diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 16:20:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 16:20:53 -0500 |
commit | e213e26ab3988c516c06eba4dcd030ac052f6dc9 (patch) | |
tree | 6e26fbdbb842b387697d73daf6e70cf718269a77 /fs/ext4/super.c | |
parent | c812a51d11bbe983f4c24e32b59b265705ddd3c2 (diff) | |
parent | efd8f0e6f6c1faa041f228d7113bd3a9db802d49 (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.c | 15 |
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 | ||
799 | static void ext4_clear_inode(struct inode *inode) | 799 | static 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 | ||
1054 | static const struct dquot_operations ext4_quota_operations = { | 1055 | static 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 | */ |