vserver 1.9.5.x5
[linux-2.6.git] / net / sunrpc / rpc_pipe.c
index 409e6ae..554f224 100644 (file)
@@ -270,18 +270,13 @@ rpc_pipe_ioctl(struct inode *ino, struct file *filp,
                        msg = (struct rpc_pipe_msg *)filp->private_data;
                        len += msg->len - msg->copied;
                }
-               return put_user(len, (int *)arg);
+               return put_user(len, (int __user *)arg);
        default:
                return -EINVAL;
        }
 }
 
-struct inode_operations rpc_pipe_iops = {
-       .lookup         = simple_lookup,
-};
-
-
-struct file_operations rpc_pipe_fops = {
+static struct file_operations rpc_pipe_fops = {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .read           = rpc_pipe_read,
@@ -433,6 +428,7 @@ rpc_lookup_parent(char *path, struct nameidata *nd)
        nd->dentry = dget(rpc_mount->mnt_root);
        nd->last_type = LAST_ROOT;
        nd->flags = LOOKUP_PARENT;
+       nd->depth = 0;
 
        if (path_walk(path, nd)) {
                printk(KERN_WARNING "%s: %s failed to find path %s\n",
@@ -522,16 +518,12 @@ rpc_populate(struct dentry *parent,
 {
        struct inode *inode, *dir = parent->d_inode;
        void *private = RPC_I(dir)->private;
-       struct qstr name;
        struct dentry *dentry;
        int mode, i;
 
        down(&dir->i_sem);
        for (i = start; i < eof; i++) {
-               name.name = files[i].name;
-               name.len = strlen(name.name);
-               name.hash = full_name_hash(name.name, name.len);
-               dentry = d_alloc(parent, &name);
+               dentry = d_alloc_name(parent, files[i].name);
                if (!dentry)
                        goto out_bad;
                mode = files[i].mode;
@@ -598,7 +590,7 @@ __rpc_rmdir(struct inode *dir, struct dentry *dentry)
        return 0;
 }
 
-struct dentry *
+static struct dentry *
 rpc_lookup_negative(char *path, struct nameidata *nd)
 {
        struct dentry *dentry;
@@ -772,6 +764,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
        sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
        sb->s_magic = RPCAUTH_GSSMAGIC;
        sb->s_op = &s_ops;
+       sb->s_time_gran = 1;
 
        inode = rpc_get_inode(sb, S_IFDIR | 0755);
        if (!inode)