Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[linux-2.6-block.git] / fs / ext4 / ioctl.c
index d37b3bb2a3b8748b79f3c0e02ab4c17909c5f189..e87a932b073bcf7db1916db8ef1ac469c676ca63 100644 (file)
@@ -158,10 +158,11 @@ flags_out:
                        goto setversion_out;
                }
 
+               mutex_lock(&inode->i_mutex);
                handle = ext4_journal_start(inode, 1);
                if (IS_ERR(handle)) {
                        err = PTR_ERR(handle);
-                       goto setversion_out;
+                       goto unlock_out;
                }
                err = ext4_reserve_inode_write(handle, inode, &iloc);
                if (err == 0) {
@@ -170,6 +171,9 @@ flags_out:
                        err = ext4_mark_iloc_dirty(handle, inode, &iloc);
                }
                ext4_journal_stop(handle);
+
+unlock_out:
+               mutex_unlock(&inode->i_mutex);
 setversion_out:
                mnt_drop_write_file(filp);
                return err;