Message ID | 20130322163107.489dd941@doriath |
---|---|
State | New |
Headers | show |
On 03/22/2013 02:31 PM, Luiz Capitulino wrote: > Today we reset fd_counter if it wraps, but it's better to abort() > instead, as fd_counter should never reach INT64_MAX. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > --- > qga/main.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/qga/main.c b/qga/main.c > index 74ef788..5f505a2 100644 > --- a/qga/main.c > +++ b/qga/main.c > @@ -889,9 +889,13 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) > g_assert(!ga_is_frozen(s)); > > handle = s->pstate.fd_counter++; > - if (s->pstate.fd_counter < 0) { > - s->pstate.fd_counter = 0; > + > + /* This should never happen on a resonable timeframe, as guest-file-open s/resonable/reasonable/ > + * would have to be issued 2^63 times */ > + if (s->pstate.fd_counter == INT64_MAX) { > + abort(); Fix the typo, and you can add: Reviewed-by: Eric Blake <eblake@redhat.com>
On Fri, 22 Mar 2013 14:44:05 -0600 Eric Blake <eblake@redhat.com> wrote: > On 03/22/2013 02:31 PM, Luiz Capitulino wrote: > > Today we reset fd_counter if it wraps, but it's better to abort() > > instead, as fd_counter should never reach INT64_MAX. > > > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > > --- > > qga/main.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > > > diff --git a/qga/main.c b/qga/main.c > > index 74ef788..5f505a2 100644 > > --- a/qga/main.c > > +++ b/qga/main.c > > @@ -889,9 +889,13 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) > > g_assert(!ga_is_frozen(s)); > > > > handle = s->pstate.fd_counter++; > > - if (s->pstate.fd_counter < 0) { > > - s->pstate.fd_counter = 0; > > + > > + /* This should never happen on a resonable timeframe, as guest-file-open > > s/resonable/reasonable/ Michael, can you fix it for me? > > > + * would have to be issued 2^63 times */ > > + if (s->pstate.fd_counter == INT64_MAX) { > > + abort(); > > Fix the typo, and you can add: > > Reviewed-by: Eric Blake <eblake@redhat.com> Thanks!
On Fri, Mar 22, 2013 at 04:31:07PM -0400, Luiz Capitulino wrote: > Today we reset fd_counter if it wraps, but it's better to abort() > instead, as fd_counter should never reach INT64_MAX. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Thanks, applied to qga branch with s/resonable/reasonable/ typo fix. > --- > qga/main.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/qga/main.c b/qga/main.c > index 74ef788..5f505a2 100644 > --- a/qga/main.c > +++ b/qga/main.c > @@ -889,9 +889,13 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) > g_assert(!ga_is_frozen(s)); > > handle = s->pstate.fd_counter++; > - if (s->pstate.fd_counter < 0) { > - s->pstate.fd_counter = 0; > + > + /* This should never happen on a resonable timeframe, as guest-file-open > + * would have to be issued 2^63 times */ > + if (s->pstate.fd_counter == INT64_MAX) { > + abort(); > } > + > if (!write_persistent_state(&s->pstate, s->pstate_filepath)) { > error_setg(errp, "failed to commit persistent state to disk"); > } > -- > 1.8.1.4 >
diff --git a/qga/main.c b/qga/main.c index 74ef788..5f505a2 100644 --- a/qga/main.c +++ b/qga/main.c @@ -889,9 +889,13 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) g_assert(!ga_is_frozen(s)); handle = s->pstate.fd_counter++; - if (s->pstate.fd_counter < 0) { - s->pstate.fd_counter = 0; + + /* This should never happen on a resonable timeframe, as guest-file-open + * would have to be issued 2^63 times */ + if (s->pstate.fd_counter == INT64_MAX) { + abort(); } + if (!write_persistent_state(&s->pstate, s->pstate_filepath)) { error_setg(errp, "failed to commit persistent state to disk"); }
Today we reset fd_counter if it wraps, but it's better to abort() instead, as fd_counter should never reach INT64_MAX. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- qga/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)