|
@@ -134,10 +134,11 @@ flags_out:
|
|
|
goto setversion_out;
|
|
|
}
|
|
|
|
|
|
+ mutex_lock(&inode->i_mutex);
|
|
|
handle = ext3_journal_start(inode, 1);
|
|
|
if (IS_ERR(handle)) {
|
|
|
err = PTR_ERR(handle);
|
|
|
- goto setversion_out;
|
|
|
+ goto unlock_out;
|
|
|
}
|
|
|
err = ext3_reserve_inode_write(handle, inode, &iloc);
|
|
|
if (err == 0) {
|
|
@@ -146,6 +147,9 @@ flags_out:
|
|
|
err = ext3_mark_iloc_dirty(handle, inode, &iloc);
|
|
|
}
|
|
|
ext3_journal_stop(handle);
|
|
|
+
|
|
|
+unlock_out:
|
|
|
+ mutex_unlock(&inode->i_mutex);
|
|
|
setversion_out:
|
|
|
mnt_drop_write(filp->f_path.mnt);
|
|
|
return err;
|