linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 24/25] sunrpc: Change how dentry's d_lock field is accessed
@ 2013-07-03 20:25 Waiman Long
  2013-07-04  4:20 ` Al Viro
  0 siblings, 1 reply; 3+ messages in thread
From: Waiman Long @ 2013-07-03 20:25 UTC (permalink / raw)
  To: Alexander Viro, Jeff Layton, Miklos Szeredi, Ingo Molnar,
	Thomas Gleixner
  Cc: Trond Myklebust, J. Bruce Fields, David S. Miller, linux-nfs,
	netdev, Waiman Long, linux-fsdevel, linux-kernel, Peter Zijlstra,
	Steven Rostedt, Linus Torvalds, Benjamin Herrenschmidt,
	Andi Kleen, Chandramouleeswaran, Aswin, Norton, Scott J

Because of the changes made in dcache.h header file, files that
use the d_lock field of the dentry structure need to be changed
accordingly. All the d_lock's spin_lock() and spin_unlock() calls
are replaced by the corresponding d_lock() and d_unlock() calls.
There is no change in logic and everything should just work.

Signed-off-by: Waiman Long <Waiman.Long@hp.com>
---
 net/sunrpc/rpc_pipe.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index e7ce4b3..58bc128 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -427,14 +427,14 @@ rpc_info_open(struct inode *inode, struct file *file)
 	if (!ret) {
 		struct seq_file *m = file->private_data;
 
-		spin_lock(&file->f_path.dentry->d_lock);
+		d_lock(file->f_path.dentry);
 		if (!d_unhashed(file->f_path.dentry))
 			clnt = RPC_I(inode)->private;
 		if (clnt != NULL && atomic_inc_not_zero(&clnt->cl_count)) {
-			spin_unlock(&file->f_path.dentry->d_lock);
+			d_unlock(file->f_path.dentry);
 			m->private = clnt;
 		} else {
-			spin_unlock(&file->f_path.dentry->d_lock);
+			d_unlock(file->f_path.dentry);
 			single_release(inode, file);
 			ret = -EINVAL;
 		}
-- 
1.7.1


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

* Re: [PATCH v3 24/25] sunrpc: Change how dentry's d_lock field is accessed
  2013-07-03 20:25 [PATCH v3 24/25] sunrpc: Change how dentry's d_lock field is accessed Waiman Long
@ 2013-07-04  4:20 ` Al Viro
  2013-07-08 16:53   ` Myklebust, Trond
  0 siblings, 1 reply; 3+ messages in thread
From: Al Viro @ 2013-07-04  4:20 UTC (permalink / raw)
  To: Waiman Long
  Cc: Jeff Layton, Miklos Szeredi, Ingo Molnar, Thomas Gleixner,
	Trond Myklebust, J. Bruce Fields, David S. Miller, linux-nfs,
	netdev, linux-fsdevel, linux-kernel, Peter Zijlstra,
	Steven Rostedt, Linus Torvalds, Benjamin Herrenschmidt,
	Andi Kleen, Chandramouleeswaran, Aswin, Norton, Scott J

On Wed, Jul 03, 2013 at 04:25:32PM -0400, Waiman Long wrote:
> There is no change in logic and everything should just work.

> -		spin_lock(&file->f_path.dentry->d_lock);
> +		d_lock(file->f_path.dentry);
>  		if (!d_unhashed(file->f_path.dentry))
>  			clnt = RPC_I(inode)->private;
>  		if (clnt != NULL && atomic_inc_not_zero(&clnt->cl_count)) {
> -			spin_unlock(&file->f_path.dentry->d_lock);
> +			d_unlock(file->f_path.dentry);

Could somebody explain WTF is being protected here?  It's not ->private -
that gets set (and, more importantly, cleared) without ->d_lock in sight.
Trond, that seems to be your code from about three years ago (introduced
in "SUNRPC: Fix a race in rpc_info_open").  What's going on there?

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

* Re: [PATCH v3 24/25] sunrpc: Change how dentry's d_lock field is accessed
  2013-07-04  4:20 ` Al Viro
@ 2013-07-08 16:53   ` Myklebust, Trond
  0 siblings, 0 replies; 3+ messages in thread
From: Myklebust, Trond @ 2013-07-08 16:53 UTC (permalink / raw)
  To: Al Viro
  Cc: Waiman Long, Jeff Layton, Miklos Szeredi, Ingo Molnar,
	Thomas Gleixner, J. Bruce Fields, David S. Miller,
	linux-nfs@vger.kernel.org, netdev@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	Peter Zijlstra, Steven Rostedt, Linus Torvalds,
	Benjamin Herrenschmidt, Andi Kleen, Chandramouleeswaran, Aswin,
	Norton, Scott J

T24gVGh1LCAyMDEzLTA3LTA0IGF0IDA1OjIwICswMTAwLCBBbCBWaXJvIHdyb3RlOg0KPiBPbiBX
ZWQsIEp1bCAwMywgMjAxMyBhdCAwNDoyNTozMlBNIC0wNDAwLCBXYWltYW4gTG9uZyB3cm90ZToN
Cj4gPiBUaGVyZSBpcyBubyBjaGFuZ2UgaW4gbG9naWMgYW5kIGV2ZXJ5dGhpbmcgc2hvdWxkIGp1
c3Qgd29yay4NCj4gDQo+ID4gLQkJc3Bpbl9sb2NrKCZmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2xv
Y2spOw0KPiA+ICsJCWRfbG9jayhmaWxlLT5mX3BhdGguZGVudHJ5KTsNCj4gPiAgCQlpZiAoIWRf
dW5oYXNoZWQoZmlsZS0+Zl9wYXRoLmRlbnRyeSkpDQo+ID4gIAkJCWNsbnQgPSBSUENfSShpbm9k
ZSktPnByaXZhdGU7DQo+ID4gIAkJaWYgKGNsbnQgIT0gTlVMTCAmJiBhdG9taWNfaW5jX25vdF96
ZXJvKCZjbG50LT5jbF9jb3VudCkpIHsNCj4gPiAtCQkJc3Bpbl91bmxvY2soJmZpbGUtPmZfcGF0
aC5kZW50cnktPmRfbG9jayk7DQo+ID4gKwkJCWRfdW5sb2NrKGZpbGUtPmZfcGF0aC5kZW50cnkp
Ow0KPiANCj4gQ291bGQgc29tZWJvZHkgZXhwbGFpbiBXVEYgaXMgYmVpbmcgcHJvdGVjdGVkIGhl
cmU/ICBJdCdzIG5vdCAtPnByaXZhdGUgLQ0KPiB0aGF0IGdldHMgc2V0IChhbmQsIG1vcmUgaW1w
b3J0YW50bHksIGNsZWFyZWQpIHdpdGhvdXQgLT5kX2xvY2sgaW4gc2lnaHQuDQo+IFRyb25kLCB0
aGF0IHNlZW1zIHRvIGJlIHlvdXIgY29kZSBmcm9tIGFib3V0IHRocmVlIHllYXJzIGFnbyAoaW50
cm9kdWNlZA0KPiBpbiAiU1VOUlBDOiBGaXggYSByYWNlIGluIHJwY19pbmZvX29wZW4iKS4gIFdo
YXQncyBnb2luZyBvbiB0aGVyZT8NCg0KQUZBSUNSIHdlJ3JlIHVzaW5nIHRoZSBmYWN0IHRoYXQg
dGhlIGRlbnRyeSB3aWxsIHJlbWFpbiBoYXNoZWQgdW50aWwNCndlJ3JlIGluIHRoZSBwcm9jZXNz
IG9mIGZyZWVpbmcgdXAgdGhlIHJwY19jbGllbnQuIEJ5IHRlc3RpbmcgdGhhdCB0aGUNCmRlbnRy
eSBpcyBoYXNoZWQgdW5kZXIgdGhlIGRlbnRyeS0+ZF9sb2NrLCB3ZSBhcmUgYXNzdXJlZCB0aGF0
IHRoZQ0Kbm9uLU5VTEwgJ2NsbnQnIGlzIHN0aWxsIHBvaW50aW5nIHRvIGEgdmFsaWQgcnBjX2Ns
aWVudCwgYW5kIHRoYXQgaXQgaXMNCnNhZmUgdG8gYWNjZXNzIGNsbnQtPmNsX2NvdW50Lg0KDQot
LSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVyDQoNCk5ldEFw
cA0KVHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20NCnd3dy5uZXRhcHAuY29tDQo=

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

end of thread, other threads:[~2013-07-08 16:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-03 20:25 [PATCH v3 24/25] sunrpc: Change how dentry's d_lock field is accessed Waiman Long
2013-07-04  4:20 ` Al Viro
2013-07-08 16:53   ` Myklebust, Trond

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).