mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
7253da9c05
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_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 | ||
geom.h |