xref: /inferno-os/liblogfs/clunk.c (revision 1981fff245dfce579ef416fa767eb69d462039e9)
1 #include "logfsos.h"
2 #include "logfs.h"
3 #include "fcall.h"
4 #include "local.h"
5 
6 char *
7 logfsserverclunk(LogfsServer *server, u32int fid)
8 {
9 	Fid *f;
10 	if(server->trace > 1)
11 		print("logfsserverclunk(%ud)\n", fid);
12 	f = logfsfidmapfindentry(server->fidmap, fid);
13 	if(f == nil)
14 		return logfsebadfid;
15 	if(f->openmode >= 0 && (f->openmode & ORCLOSE) != 0)
16 		return logfsserverremove(server, fid);
17 	logfsfidmapclunk(server->fidmap, fid);
18 	return nil;
19 }
20