static void NfsSend (void) { debug("%s\n", __func__); switch (NfsState) { case STATE_PRCLOOKUP_PROG_MOUNT_REQ: rpc_lookup_req (PROG_MOUNT, 1); break; case STATE_PRCLOOKUP_PROG_NFS_REQ: rpc_lookup_req (PROG_NFS, 2); break; case STATE_MOUNT_REQ: nfs_mount_req (nfs_path); break; case STATE_UMOUNT_REQ: nfs_umountall_req (); break; case STATE_LOOKUP_REQ: nfs_lookup_req (nfs_filename); break; case STATE_READ_REQ: nfs_read_req (nfs_offset, nfs_len); break; case STATE_READLINK_REQ: nfs_readlink_req (); break; } }
/************************************************************************** RPC request dispatcher **************************************************************************/ static void nfs_send(void) { debug("%s\n", __func__); switch (nfs_state) { case STATE_PRCLOOKUP_PROG_MOUNT_REQ: rpc_lookup_req(PROG_MOUNT, 1); break; case STATE_PRCLOOKUP_PROG_NFS_REQ: rpc_lookup_req(PROG_NFS, 2); break; case STATE_MOUNT_REQ: nfs_mount_req(nfs_path); break; case STATE_UMOUNT_REQ: nfs_umountall_req(); break; case STATE_LOOKUP_REQ: nfs_lookup_req(nfs_filename); break; case STATE_READ_REQ: nfs_read_req(nfs_offset, NFS_READ_SIZE); break; case STATE_READLINK_REQ: nfs_readlink_req(); break; } nfs_timer_start = get_time_ns(); }
static void NfsSend (void) { #ifdef NFS_DEBUG printf ("%s\n", __FUNCTION__); #endif switch (NfsState) { case STATE_PRCLOOKUP_PROG_MOUNT_REQ: rpc_lookup_req (PROG_MOUNT, 1); break; case STATE_PRCLOOKUP_PROG_NFS_REQ: rpc_lookup_req (PROG_NFS, 2); break; case STATE_MOUNT_REQ: nfs_mount_req (nfs_path); break; case STATE_UMOUNT_REQ: nfs_umountall_req (); break; case STATE_LOOKUP_REQ: nfs_lookup_req (nfs_filename); break; case STATE_READ_REQ: nfs_read_req (nfs_offset, nfs_len); break; case STATE_READLINK_REQ: nfs_readlink_req (); break; } }
static int nfs_read(struct device_d *dev, FILE *file, void *buf, size_t insize) { struct file_priv *priv = file->inode; int now, outsize = 0, ret, pos = file->pos; while (insize) { now = kfifo_get(priv->fifo, buf, insize); outsize += now; buf += now; insize -= now; if (insize) { /* do not use min as insize is a size_t */ if (insize < 1024) now = insize; else now = 1024; if (pos + now > file->size) now = file->size - pos; ret = nfs_read_req(priv, pos, now); if (ret) return ret; pos += now; } } return outsize; }