ext3: Truncate allocated blocks if direct IO write fails to update i_size
We have to truncate blocks allocated to file during direct IO when we fail to update i_size properly. Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
@@ -1785,8 +1785,9 @@ retry:
|
|||||||
handle = ext3_journal_start(inode, 2);
|
handle = ext3_journal_start(inode, 2);
|
||||||
if (IS_ERR(handle)) {
|
if (IS_ERR(handle)) {
|
||||||
/* This is really bad luck. We've written the data
|
/* This is really bad luck. We've written the data
|
||||||
* but cannot extend i_size. Bail out and pretend
|
* but cannot extend i_size. Truncate allocated blocks
|
||||||
* the write failed... */
|
* and pretend the write failed... */
|
||||||
|
ext3_truncate(inode);
|
||||||
ret = PTR_ERR(handle);
|
ret = PTR_ERR(handle);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user