mirror of
https://github.com/opnsense/src.git
synced 2026-04-10 03:46:58 -04:00
labeled disk. This is complicated by the fact that BBSIZE is greater than the PAGE_SIZE limit ioctl inflicts on arguments which are automatically copied in. As long as we don't need access to userland memory (copyin/out) we can deal with the ioctl using g_callme() which executes it from the GEOM event thread. Once we need copyin/out, we need to return the bio with EDIRIOCTL in order to make geom_dev call us back in the original process context where copyin will work. Unfortunately, that results in us getting called with Giant, so we have to DROP_GIANT/PICKUP_GIANT around the code where we diddle GEOMs internals. Sometimes you just can't win... ... But it does make geom_bsd.c an almost complete example of the GEOM beastiarium. |
||
|---|---|---|
| .. | ||
| bde | ||
| geom.h | ||
| geom_aes.c | ||
| geom_bsd.c | ||
| geom_ccd.c | ||
| geom_ctl.c | ||
| geom_dev.c | ||
| geom_disk.c | ||
| geom_dump.c | ||
| geom_enc.c | ||
| geom_event.c | ||
| geom_gpt.c | ||
| geom_int.h | ||
| geom_io.c | ||
| geom_kern.c | ||
| geom_mbr.c | ||
| geom_mirror.c | ||
| geom_pc98.c | ||
| geom_slice.c | ||
| geom_slice.h | ||
| geom_subr.c | ||
| geom_sunlabel.c | ||