On Fri, 2012-04-20 at 18:19 +0400, Stanislav Kinsbursky wrote:

> +static int __rpc_pipefs_event(struct rpc_clnt *clnt, unsigned long event,
> +                             struct super_block *sb)
> +{
> +     int error;
> +
> +     if (!rpc_clnt_skip_event(clnt, event)) {
> +             error = __rpc_clnt_handle_event(clnt, event, sb);
> +             if (error)
> +                     return error;
> +     }
> +     if (clnt != clnt->cl_parent)
> +             return __rpc_pipefs_event(clnt->cl_parent, event, sb);
> +     return 0;
> +}

Hi Stanislav,

Recursion in the kernel is generally frowned upon due to the stack size
limits. Could you please rewrite the above into a simple loop. Something
along the lines of:

        for(;;) {
                ...

                if (clnt == clnt->cl_parent)
                        break;
                clnt = clnt->cl_parent;
        }

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
[email protected]
www.netapp.com


_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to