clunk.c 446 B

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