+ if (ret) {
+ if (ret != -ENOSPC || tried_commit)
+ goto prepare_write_failed;
+ /*
+ * It could be that there _is_ free space, but it's all tied up
+ * in uncommitted bitmaps. So force a commit here, which makes
+ * those blocks allocatable and try again.
+ */
+ tried_commit = 1;
+ handle->h_sync = 1;
+ ext3_journal_stop(handle);
+ goto retry;
+ }