diff options
Diffstat (limited to 'fs/ext3/ioctl.c')
-rw-r--r-- | fs/ext3/ioctl.c | 6 |
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 | |||
151 | unlock_out: | ||
152 | mutex_unlock(&inode->i_mutex); | ||
149 | setversion_out: | 153 | setversion_out: |
150 | mnt_drop_write_file(filp); | 154 | mnt_drop_write_file(filp); |
151 | return err; | 155 | return err; |