diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index cf0e3aa..2522106 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -1818,6 +1818,9 @@ retry:
 			 * but cannot extend i_size. Bail out and pretend
 			 * the write failed... */
 			ret = PTR_ERR(handle);
+			if (inode->i_nlink)
+				ext3_orphan_del(NULL, inode);
+
 			goto out;
 		}
 		if (inode->i_nlink)
