aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/internal.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-03-16 06:26:11 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2011-03-16 16:47:55 -0400
commitb514f872f86d4b0c13fed74a1fe1f7ab500c4fd0 (patch)
treea54821b3e2363150e4e9b180e097a8092f884dda /fs/nfs/internal.h
parentb1942c5f8cf3bea3a3c88a7498ae4c4361f31afe (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.h15
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
166extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry); 166extern struct vfsmount *nfs_do_refmount(struct super_block *sb, struct dentry *dentry);
167#else 167#else
168static inline 168static inline
169struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry) 169struct 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);
247extern void nfs_sb_deactive(struct super_block *sb); 247extern void nfs_sb_deactive(struct super_block *sb);
248 248
249/* namespace.c */ 249/* namespace.c */
250extern char *nfs_path(const char *base, 250extern 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);
254extern struct vfsmount *nfs_d_automount(struct path *path); 252extern 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 */
293static inline char *nfs_devname(const struct vfsmount *mnt_parent, 291static 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/*