![cinap_lenrek](/assets/img/avatar_default.png)
always check if the directory entry qid from the loc still matches the one on disk before doing anything. helps catching bugs and is basically equivalent to what cwfs does with its checktag. make a haveloc() check in newentry() to make sure we dont allocate a file slot thats still in use, but deleted. this seems to fix the NPROC>1 build problems.
54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
void* emalloc(int);
|
|
void bufinit(int);
|
|
Buf* getbuf(Dev *, uvlong, int, int);
|
|
void putbuf(Buf *);
|
|
void sync(int);
|
|
void pack(Buf *, uchar *);
|
|
void unpack(Buf *, uchar *);
|
|
Dev* newdev(char *);
|
|
ThrData* getthrdata(void);
|
|
Fs* initfs(Dev *, int, int);
|
|
Dentry* getdent(FLoc *, Buf *);
|
|
int getfree(Fs *, uvlong *);
|
|
int putfree(Fs *, uvlong);
|
|
Chan* chanattach(Fs *, int);
|
|
Chan* chanclone(Chan *);
|
|
int chanwalk(Chan *, char *);
|
|
int chancreat(Chan *, char *, int, int);
|
|
int chanopen(Chan *, int mode);
|
|
int chanwrite(Chan *, void *, ulong, uvlong);
|
|
int chanread(Chan *, void *, ulong, uvlong);
|
|
int chanstat(Chan *, Dir *);
|
|
int chanwstat(Chan *, Dir *);
|
|
int permcheck(Fs *, Dentry *, short, int);
|
|
char * uid2name(Fs *, short, char *);
|
|
int name2uid(Fs *, char *, short *);
|
|
void start9p(char *, int);
|
|
int chanclunk(Chan *);
|
|
int chanremove(Chan *);
|
|
int getblk(Fs *, FLoc *, Buf *, uvlong, uvlong *, int);
|
|
void initcons(char *);
|
|
void shutdown(void);
|
|
int fsdump(Fs *);
|
|
int willmodify(Fs *, Loc *, int);
|
|
void chbegin(Chan *);
|
|
void chend(Chan *);
|
|
int newqid(Fs *, uvlong *);
|
|
Loc * getloc(Fs *, FLoc, Loc *);
|
|
int haveloc(Fs *, uvlong, int, Loc *);
|
|
Loc * cloneloc(Fs *, Loc *);
|
|
void putloc(Fs *, Loc *, int);
|
|
int findentry(Fs *, FLoc *, Buf *, char *, FLoc *, int);
|
|
void modified(Chan *, Dentry *);
|
|
int trunc(Fs *, FLoc *, Buf *, uvlong);
|
|
int dprint(char *fmt, ...);
|
|
int delete(Fs *, FLoc *, Buf *);
|
|
int chref(Fs *, uvlong, int);
|
|
int newentry(Fs *, Loc *, Buf *, char *, FLoc *);
|
|
int namevalid(char *);
|
|
int usersload(Fs *, Chan *);
|
|
int userssave(Fs *, Chan *);
|
|
int ingroup(Fs *, short, short, int);
|
|
void workerinit(void);
|
|
void writeusers(Fs *);
|