]> Pileus Git - ~andy/linux/blobdiff - fs/ext4/migrate.c
Merge branch 'master' into for-next
[~andy/linux] / fs / ext4 / migrate.c
index db8226d595faf9ec88e2db908aace1c95098cb1c..480acf4a085fa7be60982c8643e20675164ad8c4 100644 (file)
@@ -456,11 +456,14 @@ int ext4_ext_migrate(struct inode *inode)
                 */
                return retval;
 
-       handle = ext4_journal_start(inode,
-                                       EXT4_DATA_TRANS_BLOCKS(inode->i_sb) +
-                                       EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 +
-                                       EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb)
-                                       + 1);
+       /*
+        * Worst case we can touch the allocation bitmaps, a bgd
+        * block, and a block to link in the orphan list.  We do need
+        * need to worry about credits for modifying the quota inode.
+        */
+       handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
+               4 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
+
        if (IS_ERR(handle)) {
                retval = PTR_ERR(handle);
                return retval;
@@ -507,7 +510,7 @@ int ext4_ext_migrate(struct inode *inode)
        ext4_set_inode_state(inode, EXT4_STATE_EXT_MIGRATE);
        up_read((&EXT4_I(inode)->i_data_sem));
 
-       handle = ext4_journal_start(inode, 1);
+       handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 1);
        if (IS_ERR(handle)) {
                /*
                 * It is impossible to update on-disk structures without