Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 217814
b: refs/heads/master
c: be9eee2
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Hellwig authored and Al Viro committed Oct 26, 2010
1 parent 01921d7 commit 764fc98
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0461ee2616252f1f6cec628990fa913a4282dcf7
refs/heads/master: be9eee2e8b87e335531a3ae13abb8d26e834c438
16 changes: 5 additions & 11 deletions trunk/fs/smbfs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
10 changes: 3 additions & 7 deletions trunk/fs/smbfs/proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,16 +332,15 @@ static int smb_build_path(struct smb_sb_info *server, unsigned char *buf,
* and store it in reversed order [see reverse_string()]
*/
dget(entry);
spin_lock(&entry->d_lock);
while (!IS_ROOT(entry)) {
struct dentry *parent;

if (maxlen < (3<<unicode)) {
spin_unlock(&entry->d_lock);
dput(entry);
return -ENAMETOOLONG;
}

spin_lock(&entry->d_lock);
len = server->ops->convert(path, maxlen-2,
entry->d_name.name, entry->d_name.len,
server->local_nls, server->remote_nls);
Expand All @@ -359,15 +358,12 @@ static int smb_build_path(struct smb_sb_info *server, unsigned char *buf,
}
*path++ = '\\';
maxlen -= len+1;

parent = entry->d_parent;
dget(parent);
spin_unlock(&entry->d_lock);

parent = dget_parent(entry);
dput(entry);
entry = parent;
spin_lock(&entry->d_lock);
}
spin_unlock(&entry->d_lock);
dput(entry);
reverse_string(buf, path-buf);

Expand Down

0 comments on commit 764fc98

Please sign in to comment.