diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2011-03-16 06:26:11 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-03-16 16:47:55 -0400 |
commit | b514f872f86d4b0c13fed74a1fe1f7ab500c4fd0 (patch) | |
tree | a54821b3e2363150e4e9b180e097a8092f884dda /fs/nfs/internal.h | |
parent | b1942c5f8cf3bea3a3c88a7498ae4c4361f31afe (diff) |
nfs: make nfs_path() work without vfsmount
part 3: now we have everything to get nfs_path() just by dentry -
just follow to (disconnected) root and pick the rest of the thing
there.
Start killing propagation of struct vfsmount * on the paths that
used to bring it to nfs_path().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nfs/internal.h')
-rw-r--r-- | fs/nfs/internal.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 9e5a003ccc53..f0234118d044 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h | |||
@@ -163,10 +163,10 @@ static inline void nfs_fs_proc_exit(void) | |||
163 | 163 | ||
164 | /* nfs4namespace.c */ | 164 | /* nfs4namespace.c */ |
165 | #ifdef CONFIG_NFS_V4 | 165 | #ifdef CONFIG_NFS_V4 |
166 | extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry); | 166 | extern struct vfsmount *nfs_do_refmount(struct super_block *sb, struct dentry *dentry); |
167 | #else | 167 | #else |
168 | static inline | 168 | static inline |
169 | struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry) | 169 | struct vfsmount *nfs_do_refmount(struct super_block *sb, struct dentry *dentry) |
170 | { | 170 | { |
171 | return ERR_PTR(-ENOENT); | 171 | return ERR_PTR(-ENOENT); |
172 | } | 172 | } |
@@ -247,9 +247,7 @@ extern void nfs_sb_active(struct super_block *sb); | |||
247 | extern void nfs_sb_deactive(struct super_block *sb); | 247 | extern void nfs_sb_deactive(struct super_block *sb); |
248 | 248 | ||
249 | /* namespace.c */ | 249 | /* namespace.c */ |
250 | extern char *nfs_path(const char *base, | 250 | extern char *nfs_path(char **p, struct dentry *dentry, |
251 | const struct dentry *droot, | ||
252 | const struct dentry *dentry, | ||
253 | char *buffer, ssize_t buflen); | 251 | char *buffer, ssize_t buflen); |
254 | extern struct vfsmount *nfs_d_automount(struct path *path); | 252 | extern struct vfsmount *nfs_d_automount(struct path *path); |
255 | 253 | ||
@@ -290,12 +288,11 @@ extern int _nfs4_call_sync_session(struct nfs_server *server, | |||
290 | /* | 288 | /* |
291 | * Determine the device name as a string | 289 | * Determine the device name as a string |
292 | */ | 290 | */ |
293 | static inline char *nfs_devname(const struct vfsmount *mnt_parent, | 291 | static inline char *nfs_devname(struct dentry *dentry, |
294 | const struct dentry *dentry, | ||
295 | char *buffer, ssize_t buflen) | 292 | char *buffer, ssize_t buflen) |
296 | { | 293 | { |
297 | return nfs_path(mnt_parent->mnt_devname, mnt_parent->mnt_root, | 294 | char *dummy; |
298 | dentry, buffer, buflen); | 295 | return nfs_path(&dummy, dentry, buffer, buflen); |
299 | } | 296 | } |
300 | 297 | ||
301 | /* | 298 | /* |