patch-2.3.6 linux/fs/nfs/proc.c
Next file: linux/fs/nfs/read.c
Previous file: linux/fs/nfs/nfs2xdr.c
Back to the patch index
Back to the overall index
- Lines: 87
- Date:
Tue Jun 8 22:11:58 1999
- Orig file:
v2.3.5/linux/fs/nfs/proc.c
- Orig date:
Tue Jan 13 10:03:40 1998
diff -u --recursive --new-file v2.3.5/linux/fs/nfs/proc.c linux/fs/nfs/proc.c
@@ -91,24 +91,6 @@
}
int
-nfs_proc_readlink(struct nfs_server *server, struct nfs_fh *fhandle,
- void **p0, char **string, unsigned int *len,
- unsigned int maxlen)
-{
- struct nfs_readlinkres res = { string, len, maxlen, NULL };
- int status;
-
- dprintk("NFS call readlink\n");
- status = rpc_call(server->client, NFSPROC_READLINK, fhandle, &res, 0);
- dprintk("NFS reply readlink: %d\n", status);
- if (!status)
- *p0 = res.buffer;
- else if (res.buffer)
- kfree(res.buffer);
- return status;
-}
-
-int
nfs_proc_read(struct nfs_server *server, struct nfs_fh *fhandle, int swap,
unsigned long offset, unsigned int count,
void *buffer, struct nfs_fattr *fattr)
@@ -231,61 +213,6 @@
dprintk("NFS call rmdir %s\n", name);
status = rpc_call(server->client, NFSPROC_RMDIR, &arg, NULL, 0);
dprintk("NFS reply rmdir: %d\n", status);
- return status;
-}
-
-/*
- * The READDIR implementation is somewhat hackish - we pass a temporary
- * buffer to the encode function, which installs it in the receive
- * iovec. The dirent buffer itself is passed in the result struct.
- */
-int
-nfs_proc_readdir(struct nfs_server *server, struct nfs_fh *fhandle,
- u32 cookie, unsigned int size, __u32 *entry)
-{
- struct nfs_readdirargs arg;
- struct nfs_readdirres res;
- void * buffer;
- unsigned int buf_size = PAGE_SIZE;
- int status;
-
- /* First get a temp buffer for the readdir reply */
- /* N.B. does this really need to be cleared? */
- status = -ENOMEM;
- buffer = (void *) get_free_page(GFP_KERNEL);
- if (!buffer)
- goto out;
-
- /*
- * Calculate the effective size the buffer. To make sure
- * that the returned data will fit into the user's buffer,
- * we decrease the buffer size as necessary.
- *
- * Note: NFS returns three __u32 values for each entry,
- * and we assume that the data is packed into the user
- * buffer with the same efficiency.
- */
- if (size < buf_size)
- buf_size = size;
- if (server->rsize < buf_size)
- buf_size = server->rsize;
-#if 0
-printk("nfs_proc_readdir: user size=%d, rsize=%d, buf_size=%d\n",
-size, server->rsize, buf_size);
-#endif
-
- arg.fh = fhandle;
- arg.cookie = cookie;
- arg.buffer = buffer;
- arg.bufsiz = buf_size;
- res.buffer = entry;
- res.bufsiz = size;
-
- dprintk("NFS call readdir %d\n", cookie);
- status = rpc_call(server->client, NFSPROC_READDIR, &arg, &res, 0);
- dprintk("NFS reply readdir: %d\n", status);
- free_page((unsigned long) buffer);
-out:
return status;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)