Loading fs/exportfs/expfs.c +4 −5 Original line number Original line Diff line number Diff line Loading @@ -94,9 +94,8 @@ find_disconnected_root(struct dentry *dentry) * It may already be, as the flag isn't always updated when connection happens. * It may already be, as the flag isn't always updated when connection happens. */ */ static int 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 noprogress = 0; int err = -ESTALE; int err = -ESTALE; Loading Loading @@ -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; const struct export_operations *nop = mnt->mnt_sb->s_export_op; struct dentry *result, *alias; struct dentry *result, *alias; char nbuf[NAME_MAX+1]; int err; int err; /* /* Loading @@ -379,7 +379,7 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid, * filesystem root. * filesystem root. */ */ if (result->d_flags & DCACHE_DISCONNECTED) { if (result->d_flags & DCACHE_DISCONNECTED) { err = reconnect_path(mnt, result); err = reconnect_path(mnt, result, nbuf); if (err) if (err) goto err_result; goto err_result; } } Loading @@ -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. * It's not a directory. Life is a little more complicated. */ */ struct dentry *target_dir, *nresult; struct dentry *target_dir, *nresult; char nbuf[NAME_MAX+1]; /* /* * See if either the dentry we just got from the filesystem * See if either the dentry we just got from the filesystem Loading Loading @@ -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 * connected to the filesystem root. The VFS really doesn't * like disconnected directories.. * like disconnected directories.. */ */ err = reconnect_path(mnt, target_dir); err = reconnect_path(mnt, target_dir, nbuf); if (err) { if (err) { dput(target_dir); dput(target_dir); goto err_result; goto err_result; Loading Loading
fs/exportfs/expfs.c +4 −5 Original line number Original line Diff line number Diff line Loading @@ -94,9 +94,8 @@ find_disconnected_root(struct dentry *dentry) * It may already be, as the flag isn't always updated when connection happens. * It may already be, as the flag isn't always updated when connection happens. */ */ static int 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 noprogress = 0; int err = -ESTALE; int err = -ESTALE; Loading Loading @@ -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; const struct export_operations *nop = mnt->mnt_sb->s_export_op; struct dentry *result, *alias; struct dentry *result, *alias; char nbuf[NAME_MAX+1]; int err; int err; /* /* Loading @@ -379,7 +379,7 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid, * filesystem root. * filesystem root. */ */ if (result->d_flags & DCACHE_DISCONNECTED) { if (result->d_flags & DCACHE_DISCONNECTED) { err = reconnect_path(mnt, result); err = reconnect_path(mnt, result, nbuf); if (err) if (err) goto err_result; goto err_result; } } Loading @@ -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. * It's not a directory. Life is a little more complicated. */ */ struct dentry *target_dir, *nresult; struct dentry *target_dir, *nresult; char nbuf[NAME_MAX+1]; /* /* * See if either the dentry we just got from the filesystem * See if either the dentry we just got from the filesystem Loading Loading @@ -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 * connected to the filesystem root. The VFS really doesn't * like disconnected directories.. * like disconnected directories.. */ */ err = reconnect_path(mnt, target_dir); err = reconnect_path(mnt, target_dir, nbuf); if (err) { if (err) { dput(target_dir); dput(target_dir); goto err_result; goto err_result; Loading