1 0c98da8b 2005-07-13 devnull #include <u.h>
2 0c98da8b 2005-07-13 devnull #include <libc.h>
3 0c98da8b 2005-07-13 devnull #include <thread.h>
4 0c98da8b 2005-07-13 devnull #include <sunrpc.h>
5 0c98da8b 2005-07-13 devnull #include <nfs3.h>
6 0c98da8b 2005-07-13 devnull #include <diskfs.h>
8 0c98da8b 2005-07-13 devnull int allowall;
10 0c98da8b 2005-07-13 devnull static Fsys *(*opentab[])(Disk*) =
12 0c98da8b 2005-07-13 devnull fsysopenffs,
13 d63163af 2007-05-28 devnull fsysopenhfs,
14 0c98da8b 2005-07-13 devnull fsysopenkfs,
15 0c98da8b 2005-07-13 devnull fsysopenext2,
16 0c98da8b 2005-07-13 devnull fsysopenfat,
20 0c98da8b 2005-07-13 devnull fsysopen(Disk *disk)
23 0c98da8b 2005-07-13 devnull Fsys *fsys;
25 0c98da8b 2005-07-13 devnull for(i=0; i<nelem(opentab); i++)
26 0c98da8b 2005-07-13 devnull if((fsys = (*opentab[i])(disk)) != nil)
27 0c98da8b 2005-07-13 devnull return fsys;
28 0c98da8b 2005-07-13 devnull return nil;
32 0c98da8b 2005-07-13 devnull fsysreadblock(Fsys *fsys, u64int blockno)
34 0c98da8b 2005-07-13 devnull if(!fsys->_readblock){
35 0c98da8b 2005-07-13 devnull werrstr("no read dispatch function");
36 0c98da8b 2005-07-13 devnull return nil;
38 0c98da8b 2005-07-13 devnull return (*fsys->_readblock)(fsys, blockno);
42 0c98da8b 2005-07-13 devnull fsyssync(Fsys *fsys)
44 0c98da8b 2005-07-13 devnull if(disksync(fsys->disk) < 0)
45 0c98da8b 2005-07-13 devnull return -1;
46 0c98da8b 2005-07-13 devnull if(!fsys->_sync)
47 0c98da8b 2005-07-13 devnull return 0;
48 0c98da8b 2005-07-13 devnull return (*fsys->_sync)(fsys);
52 0c98da8b 2005-07-13 devnull fsysclose(Fsys *fsys)
54 0c98da8b 2005-07-13 devnull if(!fsys->_close){
55 0c98da8b 2005-07-13 devnull fprint(2, "no fsysClose\n");
58 0c98da8b 2005-07-13 devnull (*fsys->_close)(fsys);
61 0c98da8b 2005-07-13 devnull Nfs3Status
62 0c98da8b 2005-07-13 devnull fsysroot(Fsys *fsys, Nfs3Handle *h)
64 0c98da8b 2005-07-13 devnull if(!fsys->_root)
65 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
66 0c98da8b 2005-07-13 devnull return (*fsys->_root)(fsys, h);
69 0c98da8b 2005-07-13 devnull Nfs3Status
70 0c98da8b 2005-07-13 devnull fsyslookup(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h, char *name, Nfs3Handle *nh)
72 0c98da8b 2005-07-13 devnull if(!fsys->_lookup)
73 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
74 0c98da8b 2005-07-13 devnull return (*fsys->_lookup)(fsys, au, h, name, nh);
77 0c98da8b 2005-07-13 devnull Nfs3Status
78 0c98da8b 2005-07-13 devnull fsysgetattr(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h, Nfs3Attr *attr)
80 0c98da8b 2005-07-13 devnull if(!fsys->_getattr)
81 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
82 0c98da8b 2005-07-13 devnull return (*fsys->_getattr)(fsys, au, h, attr);
85 0c98da8b 2005-07-13 devnull Nfs3Status
86 0c98da8b 2005-07-13 devnull fsysreaddir(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h, u32int count, u64int cookie, uchar **e, u32int *ne, u1int *peof)
88 0c98da8b 2005-07-13 devnull if(!fsys->_readdir)
89 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
90 0c98da8b 2005-07-13 devnull return (*fsys->_readdir)(fsys, au, h, count, cookie, e, ne, peof);
93 0c98da8b 2005-07-13 devnull Nfs3Status
94 0c98da8b 2005-07-13 devnull fsysreadfile(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h, u32int count, u64int offset, uchar **data, u32int *pcount, uchar *peof)
96 0c98da8b 2005-07-13 devnull if(!fsys->_readfile)
97 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
98 0c98da8b 2005-07-13 devnull return (*fsys->_readfile)(fsys, au, h, count, offset, data, pcount, peof);
101 0c98da8b 2005-07-13 devnull Nfs3Status
102 0c98da8b 2005-07-13 devnull fsysreadlink(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h, char **plink)
104 0c98da8b 2005-07-13 devnull if(!fsys->_readlink)
105 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
106 0c98da8b 2005-07-13 devnull return (*fsys->_readlink)(fsys, au, h, plink);
109 0c98da8b 2005-07-13 devnull Nfs3Status
110 0c98da8b 2005-07-13 devnull fsysaccess(Fsys *fsys, SunAuthUnix *au, Nfs3Handle *h, u32int want, u32int *got, Nfs3Attr *attr)
112 0c98da8b 2005-07-13 devnull if(!fsys->_access)
113 0c98da8b 2005-07-13 devnull return Nfs3ErrNxio;
114 0c98da8b 2005-07-13 devnull return (*fsys->_access)(fsys, au, h, want, got, attr);