All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events
@ 2012-04-19 10:57 Stanislav Kinsbursky
  2012-04-19 11:36   ` Stanislav Kinsbursky
  0 siblings, 1 reply; 6+ messages in thread
From: Stanislav Kinsbursky @ 2012-04-19 10:57 UTC (permalink / raw)
  To: Trond.Myklebust
  Cc: linux-nfs, xemul, neilb, netdev, linux-kernel, jbottomley,
	bfields, davem, devel

These clients can't be safely dereferenced if their counter in 0.

Signee-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>

---
 net/sunrpc/clnt.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 6797246..591994d 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -218,7 +218,8 @@ static struct rpc_clnt *rpc_get_client_for_event(struct net *net, int event)
 		if (((event == RPC_PIPEFS_MOUNT) && clnt->cl_dentry) ||
 		    ((event == RPC_PIPEFS_UMOUNT) && !clnt->cl_dentry))
 			continue;
-		atomic_inc(&clnt->cl_count);
+		if (atomic_inc_return(&clnt->cl_count) == 1)
+			continue;
 		spin_unlock(&sn->rpc_client_lock);
 		return clnt;
 	}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events
@ 2012-04-19 11:36   ` Stanislav Kinsbursky
  0 siblings, 0 replies; 6+ messages in thread
From: Stanislav Kinsbursky @ 2012-04-19 11:36 UTC (permalink / raw)
  To: Trond.Myklebust
  Cc: linux-nfs, Pavel Emelianov, neilb, netdev, linux-kernel,
	James Bottomley, bfields, davem, devel

Sorry, but ignore this patch too.
It can't be that simple because of these cl_count tricks in rpc_release_client...

19.04.2012 14:57, Stanislav Kinsbursky пишет:
> These clients can't be safely dereferenced if their counter in 0.
>
> Signee-off-by: Stanislav Kinsbursky<skinsbursky@parallels.com>
>
> Signed-off-by: Stanislav Kinsbursky<skinsbursky@parallels.com>
>
> ---
>   net/sunrpc/clnt.c |    3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index 6797246..591994d 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -218,7 +218,8 @@ static struct rpc_clnt *rpc_get_client_for_event(struct net *net, int event)
>   		if (((event == RPC_PIPEFS_MOUNT)&&  clnt->cl_dentry) ||
>   		    ((event == RPC_PIPEFS_UMOUNT)&&  !clnt->cl_dentry))
>   			continue;
> -		atomic_inc(&clnt->cl_count);
> +		if (atomic_inc_return(&clnt->cl_count) == 1)
> +			continue;
>   		spin_unlock(&sn->rpc_client_lock);
>   		return clnt;
>   	}
>


-- 
Best regards,
Stanislav Kinsbursky

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events
@ 2012-04-19 11:36   ` Stanislav Kinsbursky
  0 siblings, 0 replies; 6+ messages in thread
From: Stanislav Kinsbursky @ 2012-04-19 11:36 UTC (permalink / raw)
  To: Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA
  Cc: linux-nfs-u79uwXL29TY76Z2rM5mHXA, Pavel Emelianov,
	neilb-l3A5Bk7waGM, netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, James Bottomley,
	bfields-uC3wQj2KruNg9hUCZPvPmw, davem-fT/PcQaiUtIeIZ0/mPfg9Q,
	devel-GEFAQzZX7r8dnm+yROfE0A

Sorry, but ignore this patch too.
It can't be that simple because of these cl_count tricks in rpc_release_client...

19.04.2012 14:57, Stanislav Kinsbursky пишет:
> These clients can't be safely dereferenced if their counter in 0.
>
> Signee-off-by: Stanislav Kinsbursky<skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
>
> Signed-off-by: Stanislav Kinsbursky<skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
>
> ---
>   net/sunrpc/clnt.c |    3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index 6797246..591994d 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -218,7 +218,8 @@ static struct rpc_clnt *rpc_get_client_for_event(struct net *net, int event)
>   		if (((event == RPC_PIPEFS_MOUNT)&&  clnt->cl_dentry) ||
>   		    ((event == RPC_PIPEFS_UMOUNT)&&  !clnt->cl_dentry))
>   			continue;
> -		atomic_inc(&clnt->cl_count);
> +		if (atomic_inc_return(&clnt->cl_count) == 1)
> +			continue;
>   		spin_unlock(&sn->rpc_client_lock);
>   		return clnt;
>   	}
>


-- 
Best regards,
Stanislav Kinsbursky
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events
  2012-04-19 11:36   ` Stanislav Kinsbursky
  (?)
@ 2012-04-19 21:40   ` bfields
  2012-04-20  6:05       ` Stanislav Kinsbursky
  -1 siblings, 1 reply; 6+ messages in thread
From: bfields @ 2012-04-19 21:40 UTC (permalink / raw)
  To: Stanislav Kinsbursky
  Cc: Trond.Myklebust, linux-nfs, Pavel Emelianov, neilb, netdev,
	linux-kernel, James Bottomley, davem, devel

On Thu, Apr 19, 2012 at 03:36:57PM +0400, Stanislav Kinsbursky wrote:
> Sorry, but ignore this patch too.
> It can't be that simple because of these cl_count tricks in rpc_release_client...

OK.  Very minor whine:

> 
> 19.04.2012 14:57, Stanislav Kinsbursky пишет:
> >These clients can't be safely dereferenced if their counter in 0.
> >
> >Signee-off-by: Stanislav Kinsbursky<skinsbursky@parallels.com>
> >
> >Signed-off-by: Stanislav Kinsbursky<skinsbursky@parallels.com>

I don't mind fixing up trivial slips every now and then, but that double
signed-off-by seems to happen on a lot of your posts; could you figure
out what's up with your scripts?

--b.

> >
> >---
> >  net/sunrpc/clnt.c |    3 ++-
> >  1 files changed, 2 insertions(+), 1 deletions(-)
> >
> >diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> >index 6797246..591994d 100644
> >--- a/net/sunrpc/clnt.c
> >+++ b/net/sunrpc/clnt.c
> >@@ -218,7 +218,8 @@ static struct rpc_clnt *rpc_get_client_for_event(struct net *net, int event)
> >  		if (((event == RPC_PIPEFS_MOUNT)&&  clnt->cl_dentry) ||
> >  		    ((event == RPC_PIPEFS_UMOUNT)&&  !clnt->cl_dentry))
> >  			continue;
> >-		atomic_inc(&clnt->cl_count);
> >+		if (atomic_inc_return(&clnt->cl_count) == 1)
> >+			continue;
> >  		spin_unlock(&sn->rpc_client_lock);
> >  		return clnt;
> >  	}
> >
> 
> 
> -- 
> Best regards,
> Stanislav Kinsbursky
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events
@ 2012-04-20  6:05       ` Stanislav Kinsbursky
  0 siblings, 0 replies; 6+ messages in thread
From: Stanislav Kinsbursky @ 2012-04-20  6:05 UTC (permalink / raw)
  To: bfields
  Cc: Trond.Myklebust, linux-nfs, Pavel Emelianov, neilb, netdev,
	linux-kernel, James Bottomley, davem, devel

20.04.2012 01:40, bfields@fieldses.org написал:
> On Thu, Apr 19, 2012 at 03:36:57PM +0400, Stanislav Kinsbursky wrote:
>> Sorry, but ignore this patch too.
>> It can't be that simple because of these cl_count tricks in rpc_release_client...
> OK.  Very minor whine:
>
>> 19.04.2012 14:57, Stanislav Kinsbursky пишет:
>>> These clients can't be safely dereferenced if their counter in 0.
>>>
>>> Signee-off-by: Stanislav Kinsbursky<skinsbursky@parallels.com>
>>>
>>> Signed-off-by: Stanislav Kinsbursky<skinsbursky@parallels.com>
> I don't mind fixing up trivial slips every now and then, but that double
> signed-off-by seems to happen on a lot of your posts; could you figure
> out what's up with your scripts?

Yes, sure. Sorry.
I've noticed this problem just yesterday.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events
@ 2012-04-20  6:05       ` Stanislav Kinsbursky
  0 siblings, 0 replies; 6+ messages in thread
From: Stanislav Kinsbursky @ 2012-04-20  6:05 UTC (permalink / raw)
  To: bfields-uC3wQj2KruNg9hUCZPvPmw
  Cc: Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA, Pavel Emelianov,
	neilb-l3A5Bk7waGM, netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, James Bottomley,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q, devel-GEFAQzZX7r8dnm+yROfE0A

20.04.2012 01:40, bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org написал:
> On Thu, Apr 19, 2012 at 03:36:57PM +0400, Stanislav Kinsbursky wrote:
>> Sorry, but ignore this patch too.
>> It can't be that simple because of these cl_count tricks in rpc_release_client...
> OK.  Very minor whine:
>
>> 19.04.2012 14:57, Stanislav Kinsbursky пишет:
>>> These clients can't be safely dereferenced if their counter in 0.
>>>
>>> Signee-off-by: Stanislav Kinsbursky<skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
>>>
>>> Signed-off-by: Stanislav Kinsbursky<skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
> I don't mind fixing up trivial slips every now and then, but that double
> signed-off-by seems to happen on a lot of your posts; could you figure
> out what's up with your scripts?

Yes, sure. Sorry.
I've noticed this problem just yesterday.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-04-20  6:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-19 10:57 [PATCH] SUNRPC: skip dead but not buried clients on PipeFS events Stanislav Kinsbursky
2012-04-19 11:36 ` Stanislav Kinsbursky
2012-04-19 11:36   ` Stanislav Kinsbursky
2012-04-19 21:40   ` bfields
2012-04-20  6:05     ` Stanislav Kinsbursky
2012-04-20  6:05       ` Stanislav Kinsbursky

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.