This patch solve ext3/4 retry loop issue Issue description: What we can do if block_prepare_write fail inside ext3_prepare_write ? a) Stop transaction and do retry if possible, but what happend if reboot comes after journal_force_commit, but before we exhaust all retry attempts and generic_file_buffered_write call trancate? We may get allocated blocks outside i_size. Witch is bad. b) Commit newly allocated blocks. This approach was used after Andrey's patch. But if reboot comes, or error happend, user will be surprised that i_size increased but blocks are zero filed. This is internal write operation state becames visiable to user. Witch is also bad. c) Just return as match bytes as we can deal with rigth now back to caller, and let's caller handles it and than call commit. In this scenario we never stop journal in the midle of some internal fs operation. If reboot comes before commit trunsaction was't closed so it will be droped while journal replay. Only (c) tend to garantie attomic data operation. Also fix some issues introduced by retries-in-ext3_prepare_write-violate-ordering-requirements: i_size may increase after error happend. possible data corruption caused commiting non uptodate bh. Signed-off-by: Dmitriy Monakhov -------------