Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[platform/kernel/linux-rpi.git] / fs / ext4 / inode.c
index b8170a0..d8de607 100644 (file)
@@ -374,7 +374,7 @@ void ext4_da_update_reserve_space(struct inode *inode,
        ei->i_reserved_data_blocks -= used;
        percpu_counter_sub(&sbi->s_dirtyclusters_counter, used);
 
-       spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
+       spin_unlock(&ei->i_block_reservation_lock);
 
        /* Update quota subsystem for data blocks */
        if (quota_claim)
@@ -3223,7 +3223,7 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block)
                ext4_clear_inode_state(inode, EXT4_STATE_JDATA);
                journal = EXT4_JOURNAL(inode);
                jbd2_journal_lock_updates(journal);
-               err = jbd2_journal_flush(journal);
+               err = jbd2_journal_flush(journal, 0);
                jbd2_journal_unlock_updates(journal);
 
                if (err)
@@ -3418,7 +3418,7 @@ retry:
         * i_disksize out to i_size. This could be beyond where direct I/O is
         * happening and thus expose allocated blocks to direct I/O reads.
         */
-       else if ((map->m_lblk * (1 << blkbits)) >= i_size_read(inode))
+       else if (((loff_t)map->m_lblk << blkbits) >= i_size_read(inode))
                m_flags = EXT4_GET_BLOCKS_CREATE;
        else if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
                m_flags = EXT4_GET_BLOCKS_IO_CREATE_EXT;
@@ -6005,7 +6005,7 @@ int ext4_change_inode_journal_flag(struct inode *inode, int val)
        if (val)
                ext4_set_inode_flag(inode, EXT4_INODE_JOURNAL_DATA);
        else {
-               err = jbd2_journal_flush(journal);
+               err = jbd2_journal_flush(journal, 0);
                if (err < 0) {
                        jbd2_journal_unlock_updates(journal);
                        percpu_up_write(&sbi->s_writepages_rwsem);