Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 117463
b: refs/heads/master
c: f3f8e17
h: refs/heads/master
i:
  117461: 293d54b
  117459: 4298e1e
  117455: 261d012
v: v3
  • Loading branch information
Al Viro committed Oct 23, 2008
1 parent be18069 commit 285b4a6
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 6 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: 9308a6128d9074e348d9f9b5822546fe12a794a9
refs/heads/master: f3f8e17571934ea253339e15c4ec9b34ea623c6b
9 changes: 4 additions & 5 deletions trunk/fs/exportfs/expfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,8 @@ find_disconnected_root(struct dentry *dentry)
* It may already be, as the flag isn't always updated when connection happens.
*/
static int
reconnect_path(struct vfsmount *mnt, struct dentry *target_dir)
reconnect_path(struct vfsmount *mnt, struct dentry *target_dir, char *nbuf)
{
char nbuf[NAME_MAX+1];
int noprogress = 0;
int err = -ESTALE;

Expand Down Expand Up @@ -360,6 +359,7 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
{
const struct export_operations *nop = mnt->mnt_sb->s_export_op;
struct dentry *result, *alias;
char nbuf[NAME_MAX+1];
int err;

/*
Expand All @@ -379,7 +379,7 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
* filesystem root.
*/
if (result->d_flags & DCACHE_DISCONNECTED) {
err = reconnect_path(mnt, result);
err = reconnect_path(mnt, result, nbuf);
if (err)
goto err_result;
}
Expand All @@ -395,7 +395,6 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
* It's not a directory. Life is a little more complicated.
*/
struct dentry *target_dir, *nresult;
char nbuf[NAME_MAX+1];

/*
* See if either the dentry we just got from the filesystem
Expand Down Expand Up @@ -429,7 +428,7 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
* connected to the filesystem root. The VFS really doesn't
* like disconnected directories..
*/
err = reconnect_path(mnt, target_dir);
err = reconnect_path(mnt, target_dir, nbuf);
if (err) {
dput(target_dir);
goto err_result;
Expand Down

0 comments on commit 285b4a6

Please sign in to comment.