X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fsunrpc%2Frpc_pipe.c;h=554f224c0445b11e8e38377226934ca7e9c8b0e5;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=409e6aef143de0acc5063f36b58f9f2424ae65d8;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 409e6aef1..554f224c0 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -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)