|
|
1.1 ! root 1: /* ! 2: * error file system: ! 3: * substituted for the original file system in inodes which ! 4: * someone still has open but which are unwanted; ! 5: * e.g. forcing an unmount of a file system with open files outstanding ! 6: * the various operations are all either no-ops ! 7: * or return errors ! 8: * t_put is explicitly a no-op. ! 9: * the idea is to prevent any real I/O, ! 10: * but allow the offending inodes to hang around ! 11: * until finally put ! 12: */ ! 13: #include "sys/param.h" ! 14: #include "sys/user.h" ! 15: #include "sys/conf.h" ! 16: #include "sys/inode.h" ! 17: ! 18: int errnami(); ! 19: struct fstypsw erfs = fsinit(nulldev, nulldev, nodev, nodev, ! 20: nodev, nodev, errnami, nodev, nodev, nullopen, nodev); ! 21: ! 22: errnami(p, fp, follow) ! 23: register struct nx *p; ! 24: struct flagp *fp; ! 25: int follow; ! 26: { ! 27: u.u_error = ENODEV; ! 28: iput(p->dp); ! 29: p->dp = NULL; ! 30: return (0); ! 31: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.