aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext3/ioctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext3/ioctl.c')
-rw-r--r--fs/ext3/ioctl.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c
index 8e37c41a071b..4af574ce4a46 100644
--- a/fs/ext3/ioctl.c
+++ b/fs/ext3/ioctl.c
@@ -134,10 +134,11 @@ flags_out:
134 goto setversion_out; 134 goto setversion_out;
135 } 135 }
136 136
137 mutex_lock(&inode->i_mutex);
137 handle = ext3_journal_start(inode, 1); 138 handle = ext3_journal_start(inode, 1);
138 if (IS_ERR(handle)) { 139 if (IS_ERR(handle)) {
139 err = PTR_ERR(handle); 140 err = PTR_ERR(handle);
140 goto setversion_out; 141 goto unlock_out;
141 } 142 }
142 err = ext3_reserve_inode_write(handle, inode, &iloc); 143 err = ext3_reserve_inode_write(handle, inode, &iloc);
143 if (err == 0) { 144 if (err == 0) {
@@ -146,6 +147,9 @@ flags_out:
146 err = ext3_mark_iloc_dirty(handle, inode, &iloc); 147 err = ext3_mark_iloc_dirty(handle, inode, &iloc);
147 } 148 }
148 ext3_journal_stop(handle); 149 ext3_journal_stop(handle);
150
151unlock_out:
152 mutex_unlock(&inode->i_mutex);
149setversion_out: 153setversion_out:
150 mnt_drop_write_file(filp); 154 mnt_drop_write_file(filp);
151 return err; 155 return err;