]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/nfs/super.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / fs / nfs / super.c
index 4100630c9a5b65f47bb5379ee2bc62f78e60284e..b68c8607770fcf09188882f6823b69f894aa24d7 100644 (file)
@@ -598,7 +598,9 @@ static void nfs_show_mountd_options(struct seq_file *m, struct nfs_server *nfss,
 
        if (nfss->mountd_version || showdefaults)
                seq_printf(m, ",mountvers=%u", nfss->mountd_version);
-       if (nfss->mountd_port || showdefaults)
+       if ((nfss->mountd_port &&
+               nfss->mountd_port != (unsigned short)NFS_UNSPEC_PORT) ||
+               showdefaults)
                seq_printf(m, ",mountport=%u", nfss->mountd_port);
 
        nfs_show_mountd_netid(m, nfss, showdefaults);
@@ -2200,6 +2202,7 @@ static int nfs_set_super(struct super_block *s, void *data)
 
        s->s_flags = sb_mntdata->mntflags;
        s->s_fs_info = server;
+       s->s_d_op = server->nfs_client->rpc_ops->dentry_ops;
        ret = set_anon_super(s, server);
        if (ret == 0)
                server->s_dev = s->s_dev;
@@ -2494,7 +2497,13 @@ static void nfs4_clone_super(struct super_block *sb,
        sb->s_maxbytes = old_sb->s_maxbytes;
        sb->s_time_gran = 1;
        sb->s_op = old_sb->s_op;
-       nfs_initialise_sb(sb);
+       /*
+        * The VFS shouldn't apply the umask to mode bits. We will do
+        * so ourselves when necessary.
+        */
+       sb->s_flags  |= MS_POSIXACL;
+       sb->s_xattr  = old_sb->s_xattr;
+       nfs_initialise_sb(sb);
 }
 
 /*
@@ -2504,6 +2513,12 @@ static void nfs4_fill_super(struct super_block *sb)
 {
        sb->s_time_gran = 1;
        sb->s_op = &nfs4_sops;
+       /*
+        * The VFS shouldn't apply the umask to mode bits. We will do
+        * so ourselves when necessary.
+        */
+       sb->s_flags  |= MS_POSIXACL;
+       sb->s_xattr = nfs4_xattr_handlers;
        nfs_initialise_sb(sb);
 }