Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[linux-2.6-microblaze.git] / fs / ext4 / extents.c
index c33e0a2..c0de30f 100644 (file)
@@ -139,7 +139,8 @@ static int ext4_ext_get_access(handle_t *handle, struct inode *inode,
        if (path->p_bh) {
                /* path points to block */
                BUFFER_TRACE(path->p_bh, "get_write_access");
        if (path->p_bh) {
                /* path points to block */
                BUFFER_TRACE(path->p_bh, "get_write_access");
-               return ext4_journal_get_write_access(handle, path->p_bh);
+               return ext4_journal_get_write_access(handle, inode->i_sb,
+                                                    path->p_bh, EXT4_JTR_NONE);
        }
        /* path points to leaf/index in inode body */
        /* we use in-core data, no need to protect them */
        }
        /* path points to leaf/index in inode body */
        /* we use in-core data, no need to protect them */
@@ -1082,7 +1083,8 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode,
        }
        lock_buffer(bh);
 
        }
        lock_buffer(bh);
 
-       err = ext4_journal_get_create_access(handle, bh);
+       err = ext4_journal_get_create_access(handle, inode->i_sb, bh,
+                                            EXT4_JTR_NONE);
        if (err)
                goto cleanup;
 
        if (err)
                goto cleanup;
 
@@ -1160,7 +1162,8 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode,
                }
                lock_buffer(bh);
 
                }
                lock_buffer(bh);
 
-               err = ext4_journal_get_create_access(handle, bh);
+               err = ext4_journal_get_create_access(handle, inode->i_sb, bh,
+                                                    EXT4_JTR_NONE);
                if (err)
                        goto cleanup;
 
                if (err)
                        goto cleanup;
 
@@ -1286,7 +1289,8 @@ static int ext4_ext_grow_indepth(handle_t *handle, struct inode *inode,
                return -ENOMEM;
        lock_buffer(bh);
 
                return -ENOMEM;
        lock_buffer(bh);
 
-       err = ext4_journal_get_create_access(handle, bh);
+       err = ext4_journal_get_create_access(handle, inode->i_sb, bh,
+                                            EXT4_JTR_NONE);
        if (err) {
                unlock_buffer(bh);
                goto out;
        if (err) {
                unlock_buffer(bh);
                goto out;
@@ -3569,7 +3573,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
                                split_map.m_len - ee_block);
                        err = ext4_ext_zeroout(inode, &zero_ex1);
                        if (err)
                                split_map.m_len - ee_block);
                        err = ext4_ext_zeroout(inode, &zero_ex1);
                        if (err)
-                               goto out;
+                               goto fallback;
                        split_map.m_len = allocated;
                }
                if (split_map.m_lblk - ee_block + split_map.m_len <
                        split_map.m_len = allocated;
                }
                if (split_map.m_lblk - ee_block + split_map.m_len <
@@ -3583,7 +3587,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
                                                      ext4_ext_pblock(ex));
                                err = ext4_ext_zeroout(inode, &zero_ex2);
                                if (err)
                                                      ext4_ext_pblock(ex));
                                err = ext4_ext_zeroout(inode, &zero_ex2);
                                if (err)
-                                       goto out;
+                                       goto fallback;
                        }
 
                        split_map.m_len += split_map.m_lblk - ee_block;
                        }
 
                        split_map.m_len += split_map.m_lblk - ee_block;
@@ -3592,6 +3596,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
                }
        }
 
                }
        }
 
+fallback:
        err = ext4_split_extent(handle, inode, ppath, &split_map, split_flag,
                                flags);
        if (err > 0)
        err = ext4_split_extent(handle, inode, ppath, &split_map, split_flag,
                                flags);
        if (err > 0)