Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 230859
b: refs/heads/master
c: bb20c18
h: refs/heads/master
i:
  230857: 13beff4
  230855: 24c3131
v: v3
  • Loading branch information
Nick Piggin authored and Nick Piggin committed Jan 14, 2011
1 parent 30c56af commit 824f4fa
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a82416da83722944d78d933301e32e7c5ad70edd
refs/heads/master: bb20c18db6fbb5e6ba499c76473a487d35073467
10 changes: 10 additions & 0 deletions trunk/fs/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,13 @@ void release_open_intent(struct nameidata *nd)
fput(nd->intent.open.file);
}

/*
* Call d_revalidate and handle filesystems that request rcu-walk
* to be dropped. This may be called and return in rcu-walk mode,
* regardless of success or error. If -ECHILD is returned, the caller
* must return -ECHILD back up the path walk stack so path walk may
* be restarted in ref-walk mode.
*/
static int d_revalidate(struct dentry *dentry, struct nameidata *nd)
{
int status;
Expand Down Expand Up @@ -673,6 +680,9 @@ force_reval_path(struct path *path, struct nameidata *nd)
return 0;

if (!status) {
/* Don't d_invalidate in rcu-walk mode */
if (nameidata_drop_rcu(nd))
return -ECHILD;
d_invalidate(dentry);
status = -ESTALE;
}
Expand Down

0 comments on commit 824f4fa

Please sign in to comment.