ext3: remove ->write_super and stop maintaining ->s_dirt
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
59d697b702
commit
ca41f7b918
|
@ -649,7 +649,7 @@ do_more:
|
||||||
count = overflow;
|
count = overflow;
|
||||||
goto do_more;
|
goto do_more;
|
||||||
}
|
}
|
||||||
sb->s_dirt = 1;
|
|
||||||
error_return:
|
error_return:
|
||||||
brelse(bitmap_bh);
|
brelse(bitmap_bh);
|
||||||
ext3_std_error(sb, err);
|
ext3_std_error(sb, err);
|
||||||
|
@ -1708,7 +1708,6 @@ allocated:
|
||||||
if (!fatal)
|
if (!fatal)
|
||||||
fatal = err;
|
fatal = err;
|
||||||
|
|
||||||
sb->s_dirt = 1;
|
|
||||||
if (fatal)
|
if (fatal)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@ void ext3_free_inode (handle_t *handle, struct inode * inode)
|
||||||
err = ext3_journal_dirty_metadata(handle, bitmap_bh);
|
err = ext3_journal_dirty_metadata(handle, bitmap_bh);
|
||||||
if (!fatal)
|
if (!fatal)
|
||||||
fatal = err;
|
fatal = err;
|
||||||
sb->s_dirt = 1;
|
|
||||||
error_return:
|
error_return:
|
||||||
brelse(bitmap_bh);
|
brelse(bitmap_bh);
|
||||||
ext3_std_error(sb, fatal);
|
ext3_std_error(sb, fatal);
|
||||||
|
@ -537,7 +537,6 @@ got:
|
||||||
percpu_counter_dec(&sbi->s_freeinodes_counter);
|
percpu_counter_dec(&sbi->s_freeinodes_counter);
|
||||||
if (S_ISDIR(mode))
|
if (S_ISDIR(mode))
|
||||||
percpu_counter_inc(&sbi->s_dirs_counter);
|
percpu_counter_inc(&sbi->s_dirs_counter);
|
||||||
sb->s_dirt = 1;
|
|
||||||
|
|
||||||
inode->i_uid = current_fsuid();
|
inode->i_uid = current_fsuid();
|
||||||
if (test_opt (sb, GRPID))
|
if (test_opt (sb, GRPID))
|
||||||
|
|
|
@ -2960,7 +2960,6 @@ static int ext3_do_update_inode(handle_t *handle,
|
||||||
ext3_update_dynamic_rev(sb);
|
ext3_update_dynamic_rev(sb);
|
||||||
EXT3_SET_RO_COMPAT_FEATURE(sb,
|
EXT3_SET_RO_COMPAT_FEATURE(sb,
|
||||||
EXT3_FEATURE_RO_COMPAT_LARGE_FILE);
|
EXT3_FEATURE_RO_COMPAT_LARGE_FILE);
|
||||||
sb->s_dirt = 1;
|
|
||||||
handle->h_sync = 1;
|
handle->h_sync = 1;
|
||||||
err = ext3_journal_dirty_metadata(handle,
|
err = ext3_journal_dirty_metadata(handle,
|
||||||
EXT3_SB(sb)->s_sbh);
|
EXT3_SB(sb)->s_sbh);
|
||||||
|
|
|
@ -934,7 +934,6 @@ int ext3_group_add(struct super_block *sb, struct ext3_new_group_data *input)
|
||||||
EXT3_INODES_PER_GROUP(sb));
|
EXT3_INODES_PER_GROUP(sb));
|
||||||
|
|
||||||
ext3_journal_dirty_metadata(handle, sbi->s_sbh);
|
ext3_journal_dirty_metadata(handle, sbi->s_sbh);
|
||||||
sb->s_dirt = 1;
|
|
||||||
|
|
||||||
exit_journal:
|
exit_journal:
|
||||||
unlock_super(sb);
|
unlock_super(sb);
|
||||||
|
@ -1066,7 +1065,6 @@ int ext3_group_extend(struct super_block *sb, struct ext3_super_block *es,
|
||||||
}
|
}
|
||||||
es->s_blocks_count = cpu_to_le32(o_blocks_count + add);
|
es->s_blocks_count = cpu_to_le32(o_blocks_count + add);
|
||||||
ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
|
ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
|
||||||
sb->s_dirt = 1;
|
|
||||||
unlock_super(sb);
|
unlock_super(sb);
|
||||||
ext3_debug("freeing blocks %lu through "E3FSBLK"\n", o_blocks_count,
|
ext3_debug("freeing blocks %lu through "E3FSBLK"\n", o_blocks_count,
|
||||||
o_blocks_count + add);
|
o_blocks_count + add);
|
||||||
|
|
|
@ -67,7 +67,6 @@ static const char *ext3_decode_error(struct super_block * sb, int errno,
|
||||||
static int ext3_remount (struct super_block * sb, int * flags, char * data);
|
static int ext3_remount (struct super_block * sb, int * flags, char * data);
|
||||||
static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf);
|
static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf);
|
||||||
static int ext3_unfreeze(struct super_block *sb);
|
static int ext3_unfreeze(struct super_block *sb);
|
||||||
static void ext3_write_super (struct super_block * sb);
|
|
||||||
static int ext3_freeze(struct super_block *sb);
|
static int ext3_freeze(struct super_block *sb);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -761,7 +760,6 @@ static const struct super_operations ext3_sops = {
|
||||||
.dirty_inode = ext3_dirty_inode,
|
.dirty_inode = ext3_dirty_inode,
|
||||||
.delete_inode = ext3_delete_inode,
|
.delete_inode = ext3_delete_inode,
|
||||||
.put_super = ext3_put_super,
|
.put_super = ext3_put_super,
|
||||||
.write_super = ext3_write_super,
|
|
||||||
.sync_fs = ext3_sync_fs,
|
.sync_fs = ext3_sync_fs,
|
||||||
.freeze_fs = ext3_freeze,
|
.freeze_fs = ext3_freeze,
|
||||||
.unfreeze_fs = ext3_unfreeze,
|
.unfreeze_fs = ext3_unfreeze,
|
||||||
|
@ -1785,7 +1783,6 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
|
||||||
#else
|
#else
|
||||||
es->s_flags |= cpu_to_le32(EXT2_FLAGS_SIGNED_HASH);
|
es->s_flags |= cpu_to_le32(EXT2_FLAGS_SIGNED_HASH);
|
||||||
#endif
|
#endif
|
||||||
sb->s_dirt = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sbi->s_blocks_per_group > blocksize * 8) {
|
if (sbi->s_blocks_per_group > blocksize * 8) {
|
||||||
|
@ -2265,7 +2262,6 @@ static int ext3_load_journal(struct super_block *sb,
|
||||||
if (journal_devnum &&
|
if (journal_devnum &&
|
||||||
journal_devnum != le32_to_cpu(es->s_journal_dev)) {
|
journal_devnum != le32_to_cpu(es->s_journal_dev)) {
|
||||||
es->s_journal_dev = cpu_to_le32(journal_devnum);
|
es->s_journal_dev = cpu_to_le32(journal_devnum);
|
||||||
sb->s_dirt = 1;
|
|
||||||
|
|
||||||
/* Make sure we flush the recovery flag to disk. */
|
/* Make sure we flush the recovery flag to disk. */
|
||||||
ext3_commit_super(sb, es, 1);
|
ext3_commit_super(sb, es, 1);
|
||||||
|
@ -2308,7 +2304,6 @@ static int ext3_create_journal(struct super_block * sb,
|
||||||
EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_HAS_JOURNAL);
|
EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_HAS_JOURNAL);
|
||||||
|
|
||||||
es->s_journal_inum = cpu_to_le32(journal_inum);
|
es->s_journal_inum = cpu_to_le32(journal_inum);
|
||||||
sb->s_dirt = 1;
|
|
||||||
|
|
||||||
/* Make sure we flush the recovery flag to disk. */
|
/* Make sure we flush the recovery flag to disk. */
|
||||||
ext3_commit_super(sb, es, 1);
|
ext3_commit_super(sb, es, 1);
|
||||||
|
@ -2354,7 +2349,6 @@ static void ext3_mark_recovery_complete(struct super_block * sb,
|
||||||
if (EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER) &&
|
if (EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER) &&
|
||||||
sb->s_flags & MS_RDONLY) {
|
sb->s_flags & MS_RDONLY) {
|
||||||
EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);
|
EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);
|
||||||
sb->s_dirt = 0;
|
|
||||||
ext3_commit_super(sb, es, 1);
|
ext3_commit_super(sb, es, 1);
|
||||||
}
|
}
|
||||||
unlock_super(sb);
|
unlock_super(sb);
|
||||||
|
@ -2413,29 +2407,14 @@ int ext3_force_commit(struct super_block *sb)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
journal = EXT3_SB(sb)->s_journal;
|
journal = EXT3_SB(sb)->s_journal;
|
||||||
sb->s_dirt = 0;
|
|
||||||
ret = ext3_journal_force_commit(journal);
|
ret = ext3_journal_force_commit(journal);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Ext3 always journals updates to the superblock itself, so we don't
|
|
||||||
* have to propagate any other updates to the superblock on disk at this
|
|
||||||
* point. (We can probably nuke this function altogether, and remove
|
|
||||||
* any mention to sb->s_dirt in all of fs/ext3; eventual cleanup...)
|
|
||||||
*/
|
|
||||||
static void ext3_write_super (struct super_block * sb)
|
|
||||||
{
|
|
||||||
if (mutex_trylock(&sb->s_lock) != 0)
|
|
||||||
BUG();
|
|
||||||
sb->s_dirt = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ext3_sync_fs(struct super_block *sb, int wait)
|
static int ext3_sync_fs(struct super_block *sb, int wait)
|
||||||
{
|
{
|
||||||
tid_t target;
|
tid_t target;
|
||||||
|
|
||||||
sb->s_dirt = 0;
|
|
||||||
if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
|
if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
|
||||||
if (wait)
|
if (wait)
|
||||||
log_wait_commit(EXT3_SB(sb)->s_journal, target);
|
log_wait_commit(EXT3_SB(sb)->s_journal, target);
|
||||||
|
@ -2451,7 +2430,6 @@ static int ext3_freeze(struct super_block *sb)
|
||||||
{
|
{
|
||||||
int error = 0;
|
int error = 0;
|
||||||
journal_t *journal;
|
journal_t *journal;
|
||||||
sb->s_dirt = 0;
|
|
||||||
|
|
||||||
if (!(sb->s_flags & MS_RDONLY)) {
|
if (!(sb->s_flags & MS_RDONLY)) {
|
||||||
journal = EXT3_SB(sb)->s_journal;
|
journal = EXT3_SB(sb)->s_journal;
|
||||||
|
|
|
@ -463,7 +463,6 @@ static void ext3_xattr_update_super_block(handle_t *handle,
|
||||||
|
|
||||||
if (ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh) == 0) {
|
if (ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh) == 0) {
|
||||||
EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_EXT_ATTR);
|
EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_EXT_ATTR);
|
||||||
sb->s_dirt = 1;
|
|
||||||
ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
|
ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue