diff --git a/[refs] b/[refs] index a73322f1d095..8465807b3d7e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ab94c39b6fa076d4f6d2903dcc54cda35d938776 +refs/heads/master: 7eb4969e04060dcf3fbd46af9c21b1059b853068 diff --git a/trunk/fs/ext3/inode.c b/trunk/fs/ext3/inode.c index 44b53386ab8b..c0ff9d6ffde6 100644 --- a/trunk/fs/ext3/inode.c +++ b/trunk/fs/ext3/inode.c @@ -1785,8 +1785,9 @@ static ssize_t ext3_direct_IO(int rw, struct kiocb *iocb, handle = ext3_journal_start(inode, 2); if (IS_ERR(handle)) { /* This is really bad luck. We've written the data - * but cannot extend i_size. Bail out and pretend - * the write failed... */ + * but cannot extend i_size. Truncate allocated blocks + * and pretend the write failed... */ + ext3_truncate(inode); ret = PTR_ERR(handle); goto out; }