Pārlūkot izejas kodu

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>
Jan Kara 15 gadi atpakaļ
vecāks
revīzija
7eb4969e04
1 mainītis faili ar 3 papildinājumiem un 2 dzēšanām
  1. 3 2
      fs/ext3/inode.c

+ 3 - 2
fs/ext3/inode.c

@@ -1785,8 +1785,9 @@ retry:
 		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;
 		}