On Tue, 31 Mar 2015, François Armand wrote:
> I'm on Ubuntu 14.04
> spatch version 1.0.0-rc19 with Python support and with PCRE support
The current release is 1.0.0-rc24. For Ubuntu, rc22 is available as a
PPA: https://launchpad.net/~npalix/+archive/ubuntu/coccinelle. Or you can
just get the github version: https://github.com/coccinelle/coccinelle
julia
>
>
>
> 2015-03-31 17:49 GMT+02:00 Julia Lawall <[email protected]>:
>
>
> On Tue, 31 Mar 2015, François Armand wrote:
>
> > Better send my real stuff, than making misleading typos :-)
> >
> > My code:
> > #define MAX_RETRIES 3
> >
> > tmy_status
> > my_getattr_timeout(tmy_ctx *ctx,
> > u64 ino)
> > {
> > tmy_status ret;
> > int tries = 0;
> > int delay = 1;
> >
> > retry:
> > ret = my_getattr(ctx, ino);
> > if (MY_SUCCESS != ret)
> > {
> > if (MY_ENOENT != ret &&
> > MY_EPERM != ret)
> > {
> > if (tries < MAX_RETRIES)
> > {
> > HANDLE_TIMEOUT(tries, delay, "ino %llu", ino);
> > goto retry;
> > }
> > else
> > {
> > MY_TRACE(MY_ERROR, 0u, "getattr: ino %llu"": I/O
> error", ino);
> > return MY_FAILURE;
> > }
> > }
> > }
> > return ret;
> > }
> >
> > A working patch
> > @@
> > expression t;
> > constant M;
> > @@
> > if (
> > - t < M
> > + foo(&ctx->retry_ctx)
> > )
> > {
> > ...
> > } else {
> > ...
> > }
> >
> > A patch I can't make to work. That last one exists w/o
> producing anything
> >
> > @@
> > expression t;
> > constant M;
> > @@
> > if (...)
> > {
> > if (...)
> > {
> > if (
> > - t < M
> > + foo(&ctx->retry_ctx)
> > )
> > {
> > ...
> > } else {
> > ...
> > }
> > }
> > }
>
> It seems to work fine for me:
>
> @@ -15,7 +15,7 @@ my_getattr_timeout(tmy_ctx *ctx,
> if (MY_ENOENT != ret &&
> MY_EPERM != ret)
> {
> - if (tries < MAX_RETRIES)
> + if (foo(&ctx->retry_ctx))
> {
> HANDLE_TIMEOUT(tries, delay, "ino %llu", ino);
> goto retry;
>
> What version of Coccinelle do you have?
>
> julia
>
>
>
>_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci