summaryrefslogtreecommitdiffstats
path: root/src/libfs/walk.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-02 19:46:12 +0000
committerrsc <devnull@localhost>2005-01-02 19:46:12 +0000
commit2600337aa704efbeba8201e88147a764b4fd2b90 (patch)
tree48d526d00a515aabde861659380cf0f393e16401 /src/libfs/walk.c
parentacc021b8f8c727c0f04f33615354170fd7bccd0c (diff)
downloadplan9port-2600337aa704efbeba8201e88147a764b4fd2b90.tar.gz
plan9port-2600337aa704efbeba8201e88147a764b4fd2b90.zip
remove libfs. now lib9pclient
Diffstat (limited to 'src/libfs/walk.c')
-rw-r--r--src/libfs/walk.c73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/libfs/walk.c b/src/libfs/walk.c
deleted file mode 100644
index ad4eddc7..00000000
--- a/src/libfs/walk.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology */
-/* See COPYRIGHT */
-
-#include <u.h>
-#include <libc.h>
-#include <fcall.h>
-#include <fs.h>
-#include "fsimpl.h"
-
-Fid*
-fswalk(Fid *fid, char *oname)
-{
- char *freep, *name;
- int i, nwalk;
- char *p;
- Fid *wfid;
- Fcall tx, rx;
-
- freep = nil;
- name = oname;
- if(name){
- freep = malloc(strlen(name)+1);
- if(freep == nil)
- return nil;
- strcpy(freep, name);
- name = freep;
- }
-
- if((wfid = _fsgetfid(fid->fs)) == nil){
- free(freep);
- return nil;
- }
-
- nwalk = 0;
- do{
- /* collect names */
- for(i=0; name && *name && i < MAXWELEM; ){
- p = name;
- name = strchr(name, '/');
- if(name)
- *name++ = 0;
- if(*p == 0)
- continue;
- tx.wname[i++] = p;
- }
-
- /* do a walk */
- tx.type = Twalk;
- tx.fid = nwalk ? wfid->fid : fid->fid;
- tx.newfid = wfid->fid;
- tx.nwname = i;
- if(fsrpc(fid->fs, &tx, &rx, 0) < 0){
- Error:
- free(freep);
- if(nwalk)
- fsclose(wfid);
- else
- _fsputfid(wfid);
- return nil;
- }
- if(rx.nwqid != tx.nwname){
- /* XXX lame error */
- werrstr("file '%s' not found", oname);
- goto Error;
- }
- if(rx.nwqid == 0)
- wfid->qid = fid->qid;
- else
- wfid->qid = rx.wqid[rx.nwqid-1];
- nwalk++;
- }while(name && *name);
- return wfid;
-}