diff options
Diffstat (limited to 'fs/ext4/ioctl.c')
-rw-r--r-- | fs/ext4/ioctl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index d37b3bb2a3b8..e87a932b073b 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c | |||
@@ -158,10 +158,11 @@ flags_out: | |||
158 | goto setversion_out; | 158 | goto setversion_out; |
159 | } | 159 | } |
160 | 160 | ||
161 | mutex_lock(&inode->i_mutex); | ||
161 | handle = ext4_journal_start(inode, 1); | 162 | handle = ext4_journal_start(inode, 1); |
162 | if (IS_ERR(handle)) { | 163 | if (IS_ERR(handle)) { |
163 | err = PTR_ERR(handle); | 164 | err = PTR_ERR(handle); |
164 | goto setversion_out; | 165 | goto unlock_out; |
165 | } | 166 | } |
166 | err = ext4_reserve_inode_write(handle, inode, &iloc); | 167 | err = ext4_reserve_inode_write(handle, inode, &iloc); |
167 | if (err == 0) { | 168 | if (err == 0) { |
@@ -170,6 +171,9 @@ flags_out: | |||
170 | err = ext4_mark_iloc_dirty(handle, inode, &iloc); | 171 | err = ext4_mark_iloc_dirty(handle, inode, &iloc); |
171 | } | 172 | } |
172 | ext4_journal_stop(handle); | 173 | ext4_journal_stop(handle); |
174 | |||
175 | unlock_out: | ||
176 | mutex_unlock(&inode->i_mutex); | ||
173 | setversion_out: | 177 | setversion_out: |
174 | mnt_drop_write_file(filp); | 178 | mnt_drop_write_file(filp); |
175 | return err; | 179 | return err; |