X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=drivers%2Fstaging%2Fsmbfs%2Fdir.c;h=f088ea2f6ac9f27991d605b4093666d1a3d0843c;hb=e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7;hp=936b3bb2099cf5879e6beca348a868011306d978;hpb=a4ac0d847af9dd34d5953a5e264400326144b6b2;p=net-next-2.6.git diff --git a/drivers/staging/smbfs/dir.c b/drivers/staging/smbfs/dir.c index 936b3bb2099..f088ea2f6ac 100644 --- a/drivers/staging/smbfs/dir.c +++ b/drivers/staging/smbfs/dir.c @@ -406,21 +406,15 @@ void smb_renew_times(struct dentry * dentry) { dget(dentry); - spin_lock(&dentry->d_lock); - for (;;) { - struct dentry *parent; + dentry->d_time = jiffies; - dentry->d_time = jiffies; - if (IS_ROOT(dentry)) - break; - parent = dentry->d_parent; - dget(parent); - spin_unlock(&dentry->d_lock); + while (!IS_ROOT(dentry)) { + struct dentry *parent = dget_parent(dentry); dput(dentry); dentry = parent; - spin_lock(&dentry->d_lock); + + dentry->d_time = jiffies; } - spin_unlock(&dentry->d_lock); dput(dentry); }