OSDN Git Service

sunrpc: get rid of use_gssp_lock
authorJeff Layton <jlayton@redhat.com>
Sat, 4 Jan 2014 12:18:05 +0000 (07:18 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 6 Jan 2014 20:14:18 +0000 (15:14 -0500)
commit0fdc26785d0a5bb33d9adb572307fd2d7a406734
tree85474a5723bbf22117c654f357aaa26e9999fdce
parenta92e5eb1103341e985a575e48e26f87fbb9b1679
sunrpc: get rid of use_gssp_lock

We can achieve the same result with a cmpxchg(). This also fixes a
potential race in use_gss_proxy(). The value of sn->use_gss_proxy could
go from -1 to 1 just after we check it in use_gss_proxy() but before we
acquire the spinlock. The procfile write would end up returning success
but the value would flip to 0 soon afterward. With this method we not
only avoid locking but the first "setter" always wins.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/auth_gss/svcauth_gss.c