Am 30.01.2015 um 09:42 schrieb Denis V. Lunev: > actually the code > if (ret == -ENODEV || ret == -ENOSYS || ret == -EOPNOTSUPP || > ret == -ENOTTY) { > ret = -ENOTSUP; > } > is present twice and will be added a couple more times. Create helper > for this. > > Signed-off-by: Denis V. Lunev <d...@openvz.org> > Reviewed-by: Max Reitz <mre...@redhat.com> > CC: Kevin Wolf <kw...@redhat.com> > CC: Stefan Hajnoczi <stefa...@redhat.com> > CC: Peter Lieven <p...@kamp.de> > CC: Fam Zheng <f...@redhat.com> > --- > block/raw-posix.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/block/raw-posix.c b/block/raw-posix.c > index e51293a..24300d0 100644 > --- a/block/raw-posix.c > +++ b/block/raw-posix.c > @@ -893,6 +893,15 @@ static int xfs_discard(BDRVRawState *s, int64_t offset, > uint64_t bytes) > } > #endif > > +static int translate_err(int err) > +{ > + if (err == -ENODEV || err == -ENOSYS || err == -EOPNOTSUPP || > + err == -ENOTTY) { > + err = -ENOTSUP; > + } > + return err; > +} > + > static ssize_t handle_aiocb_write_zeroes(RawPosixAIOData *aiocb) > { > int ret = -EOPNOTSUPP; > @@ -921,10 +930,9 @@ static ssize_t handle_aiocb_write_zeroes(RawPosixAIOData > *aiocb) > #endif > } > > - if (ret == -ENODEV || ret == -ENOSYS || ret == -EOPNOTSUPP || > - ret == -ENOTTY) { > + ret = translate_err(ret); > + if (ret == -ENOTSUP) { > s->has_write_zeroes = false; > - ret = -ENOTSUP; > } > return ret; > } > @@ -968,10 +976,9 @@ static ssize_t handle_aiocb_discard(RawPosixAIOData > *aiocb) > #endif > } > > - if (ret == -ENODEV || ret == -ENOSYS || ret == -EOPNOTSUPP || > - ret == -ENOTTY) { > + ret = translate_err(ret); > + if (ret == -ENOTSUP) { > s->has_discard = false; > - ret = -ENOTSUP; > } > return ret; > }
Reviewed-by: Peter Lieven <p...@kamp.de>