up_write(&BTRFS_I(inode)->dio_sem);
        inode_unlock(inode);
 
-       /*
-        * If any of the ordered extents had an error, just return it to user
-        * space, so that the application knows some writes didn't succeed and
-        * can take proper action (retry for e.g.). Blindly committing the
-        * transaction in this case, would fool userspace that everything was
-        * successful. And we also want to make sure our log doesn't contain
-        * file extent items pointing to extents that weren't fully written to -
-        * just like in the non fast fsync path, where we check for the ordered
-        * operation's error flag before writing to the log tree and return -EIO
-        * if any of them had this flag set (btrfs_wait_ordered_range) -
-        * therefore we need to check for errors in the ordered operations,
-        * which are indicated by ctx.io_err.
-        */
-       if (ctx.io_err) {
-               btrfs_end_transaction(trans);
-               ret = ctx.io_err;
-               goto out;
-       }
-
        if (ret != BTRFS_NO_LOG_SYNC) {
                if (!ret) {
                        ret = btrfs_sync_log(trans, root, &ctx);