summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2009-11-12 22:26:19 (GMT)
committerJ. Bruce Fields <bfields@citi.umich.edu>2009-12-15 19:07:24 (GMT)
commitf2ca7153ca49a407ea1c7232c9fa7e9849f03f9c (patch)
tree56e85e17fa0c579bf4d6aa12eec13da5833b2bb7
parent3227fa41abc191384fa81b3bcf52aa7fccb31536 (diff)
downloadlinux-f2ca7153ca49a407ea1c7232c9fa7e9849f03f9c.tar.xz
nfsd: allow exports of symlinks
We want to allow exports of symlinks, to allow mountd to communicate to the kernel which symlinks lead to exports, and hence which symlinks need to be visible on the pseudofilesystem. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
-rw-r--r--fs/nfsd/export.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index c64d55f..18ac20f 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -358,10 +358,12 @@ static struct svc_export *svc_export_lookup(struct svc_export *);
static int check_export(struct inode *inode, int flags, unsigned char *uuid)
{
- /* We currently export only dirs and regular files.
- * This is what umountd does.
+ /*
+ * We currently export only dirs, regular files, and (for v4
+ * pseudoroot) symlinks.
*/
if (!S_ISDIR(inode->i_mode) &&
+ !S_ISLNK(inode->i_mode) &&
!S_ISREG(inode->i_mode))
return -ENOTDIR;