pcm_file: use EIO instead of EPIPE when failing to write output file

EPIPE is defined as XRUN which is not entirely correct in this condition

failing to write to a file in pcm_file plugin can not be simply recovered
by a retry as user of the api might be led to believe when receiving EPIPE

use EIO instead to indicate a different kid of error that may not be
recoverable by retry

Signed-off-by: Adam Miartus <amiartus@de.adit-jv.com>
Reviewed-by: Timo Wischer <twischer@de.adit-jv.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Adam Miartus 2019-07-01 15:25:16 +02:00 committed by Takashi Iwai
parent 053b430980
commit 61b0f8f3f2

View file

@ -575,7 +575,7 @@ static snd_pcm_sframes_t snd_pcm_file_writei(snd_pcm_t *pcm, const void *buffer,
__snd_pcm_lock(pcm); __snd_pcm_lock(pcm);
if (snd_pcm_file_add_frames(pcm, areas, 0, n) < 0) { if (snd_pcm_file_add_frames(pcm, areas, 0, n) < 0) {
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
return -EPIPE; return -EIO;
} }
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
} }
@ -593,7 +593,7 @@ static snd_pcm_sframes_t snd_pcm_file_writen(snd_pcm_t *pcm, void **bufs, snd_pc
__snd_pcm_lock(pcm); __snd_pcm_lock(pcm);
if (snd_pcm_file_add_frames(pcm, areas, 0, n) < 0) { if (snd_pcm_file_add_frames(pcm, areas, 0, n) < 0) {
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
return -EPIPE; return -EIO;
} }
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
} }
@ -616,7 +616,7 @@ static snd_pcm_sframes_t snd_pcm_file_readi(snd_pcm_t *pcm, void *buffer, snd_pc
__snd_pcm_lock(pcm); __snd_pcm_lock(pcm);
if (snd_pcm_file_add_frames(pcm, areas, 0, frames) < 0) { if (snd_pcm_file_add_frames(pcm, areas, 0, frames) < 0) {
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
return -EPIPE; return -EIO;
} }
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
@ -640,7 +640,7 @@ static snd_pcm_sframes_t snd_pcm_file_readn(snd_pcm_t *pcm, void **bufs, snd_pcm
__snd_pcm_lock(pcm); __snd_pcm_lock(pcm);
if (snd_pcm_file_add_frames(pcm, areas, 0, frames) < 0) { if (snd_pcm_file_add_frames(pcm, areas, 0, frames) < 0) {
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
return -EPIPE; return -EIO;
} }
__snd_pcm_unlock(pcm); __snd_pcm_unlock(pcm);
@ -666,7 +666,7 @@ static snd_pcm_sframes_t snd_pcm_file_mmap_commit(snd_pcm_t *pcm,
result = snd_pcm_mmap_commit(file->gen.slave, ofs, siz); result = snd_pcm_mmap_commit(file->gen.slave, ofs, siz);
if (result > 0) { if (result > 0) {
if (snd_pcm_file_add_frames(pcm, areas, ofs, result) < 0) if (snd_pcm_file_add_frames(pcm, areas, ofs, result) < 0)
return -EPIPE; return -EIO;
} }
} }
return result; return result;