bool seek_to_beginning;
bool success;
- bool open_failed;
};
struct posix_fs_lock {
} else if (file->fd == -1 && fs_posix_open(file) < 0) {
_file->output = o_stream_create_error_str(errno, "%s",
fs_file_last_error(_file));
- file->open_failed = TRUE;
} else {
_file->output = o_stream_create_fd_file(file->fd,
(uoff_t)-1, FALSE);
struct posix_fs_file *file = (struct posix_fs_file *)_file;
int ret = success ? 0 : -1;
- if (file->open_failed)
- ret = -1;
- else if (o_stream_nfinish(_file->output) < 0) {
- fs_set_error(_file->fs, "write(%s) failed: %s",
- o_stream_get_name(_file->output),
- o_stream_get_error(_file->output));
- ret = -1;
- }
o_stream_destroy(&_file->output);
switch (file->open_mode) {
struct randomfail_fs_file *file = (struct randomfail_fs_file *)_file;
if (_file->output != NULL) {
- if (o_stream_nfinish(_file->output) < 0) {
- fs_set_error(_file->fs, "write(%s) failed: %s",
- o_stream_get_name(_file->output),
- o_stream_get_error(_file->output));
- success = FALSE;
- }
if (_file->output == file->super_output)
_file->output = NULL;
else
{
struct sis_fs_file *file = (struct sis_fs_file *)_file;
- if (o_stream_nfinish(_file->output) < 0)
- success = FALSE;
if (!success) {
if (file->super != NULL) {
fs_write_stream_abort(file->super, &file->fs_output);