diff options
author | Varun Wadekar <vwadekar@nvidia.com> | 2012-08-30 16:01:56 +0530 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2012-08-30 16:01:56 +0530 |
commit | 399c993355bf9f538799f27648b7546aef7c42ee (patch) | |
tree | 5a835ed35e38a051904067a6d6a642221d22d13c /fs | |
parent | cd6f25a4e6e88086f9ad7e2549c3029d354c3832 (diff) | |
parent | f95b978981a7d154ba40d14c18e8ed5c694e6124 (diff) |
Merge commit 'v3.4.10' into android-t114-3.4
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/extents.c | 1 | ||||
-rw-r--r-- | fs/ext4/super.c | 6 | ||||
-rw-r--r-- | fs/fuse/file.c | 2 | ||||
-rw-r--r-- | fs/jbd2/journal.c | 3 |
4 files changed, 10 insertions, 2 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 6b7daa45f6bf..8b384cc3b75a 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -2596,6 +2596,7 @@ cont: } path[0].p_depth = depth; path[0].p_hdr = ext_inode_hdr(inode); + i = 0; if (ext4_ext_check(inode, path[0].p_hdr, depth)) { err = -EIO; diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 65f3e0d203ae..8f3459e2ffee 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -932,6 +932,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb) ei->i_reserved_meta_blocks = 0; ei->i_allocated_meta_blocks = 0; ei->i_da_metadata_calc_len = 0; + ei->i_da_metadata_calc_last_lblock = 0; spin_lock_init(&(ei->i_block_reservation_lock)); #ifdef CONFIG_QUOTA ei->i_reserved_quota = 0; @@ -2968,6 +2969,10 @@ static int count_overhead(struct super_block *sb, ext4_group_t grp, ext4_group_t i, ngroups = ext4_get_groups_count(sb); int s, j, count = 0; + if (!EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_BIGALLOC)) + return (ext4_bg_has_super(sb, grp) + ext4_bg_num_gdb(sb, grp) + + sbi->s_itb_per_group + 2); + first_block = le32_to_cpu(sbi->s_es->s_first_data_block) + (grp * EXT4_BLOCKS_PER_GROUP(sb)); last_block = first_block + EXT4_BLOCKS_PER_GROUP(sb) - 1; @@ -4227,6 +4232,7 @@ static void ext4_clear_journal_err(struct super_block *sb, ext4_commit_super(sb, 1); jbd2_journal_clear_err(journal); + jbd2_journal_update_sb_errno(journal); } } diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 504e61b7fd75..8e6381a14265 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1698,7 +1698,7 @@ static int fuse_verify_ioctl_iov(struct iovec *iov, size_t count) size_t n; u32 max = FUSE_MAX_PAGES_PER_REQ << PAGE_SHIFT; - for (n = 0; n < count; n++) { + for (n = 0; n < count; n++, iov++) { if (iov->iov_len > (size_t) max) return -ENOMEM; max -= iov->iov_len; diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 1afb701622b0..9956ac68b72b 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -1340,7 +1340,7 @@ static void jbd2_mark_journal_empty(journal_t *journal) * Update a journal's errno. Write updated superblock to disk waiting for IO * to complete. */ -static void jbd2_journal_update_sb_errno(journal_t *journal) +void jbd2_journal_update_sb_errno(journal_t *journal) { journal_superblock_t *sb = journal->j_superblock; @@ -1352,6 +1352,7 @@ static void jbd2_journal_update_sb_errno(journal_t *journal) jbd2_write_superblock(journal, WRITE_SYNC); } +EXPORT_SYMBOL(jbd2_journal_update_sb_errno); /* * Read the superblock for a given journal, performing initial |