diff options
author | phk <phk@FreeBSD.org> | 2003-03-21 22:05:33 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-03-21 22:05:33 +0000 |
commit | 9dd05c47c05c642652c251c7755d09757d9afc95 (patch) | |
tree | 9446b0c3f8150734cf4b67c88cf7a6a63a5cdf87 /sys | |
parent | f9d8fd05d77c958ff88dfda359cd553d53c6d0cc (diff) | |
download | FreeBSD-src-9dd05c47c05c642652c251c7755d09757d9afc95.zip FreeBSD-src-9dd05c47c05c642652c251c7755d09757d9afc95.tar.gz |
Mitigate deadlock situation pending a more complete solution.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/geom/geom_disk.c | 4 | ||||
-rw-r--r-- | sys/geom/geom_int.h | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index 57dab5f..6ac4a59 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -53,6 +53,7 @@ #include <sys/lock.h> #include <sys/mutex.h> #include <geom/geom.h> +#include <geom/geom_int.h> static struct mtx g_disk_done_mtx; @@ -252,7 +253,8 @@ g_disk_start(struct bio *bp) break; else if (!strcmp(bp->bio_attribute, "GEOM::kerneldump")) g_disk_kerneldump(bp, dp); - else if ((dp->d_ioctl != NULL) && + else if ((g_debugflags & G_F_DISKIOCTL) && + (dp->d_ioctl != NULL) && !strcmp(bp->bio_attribute, "GEOM::ioctl") && bp->bio_length == sizeof *gio) { gio = (struct g_ioctl *)bp->bio_data; diff --git a/sys/geom/geom_int.h b/sys/geom/geom_int.h index 81f8069..0b556704 100644 --- a/sys/geom/geom_int.h +++ b/sys/geom/geom_int.h @@ -46,9 +46,12 @@ extern int g_debugflags; * 1 G_T_TOPOLOGY * 2 G_T_BIO * 4 G_T_ACCESS - * 8 enable sanity checks + * 8 Enable sanity checks * 16 Allow footshooting on rank#1 providers + * 32 G_T_DETAILS */ +#define G_F_DISKIOCTL 64 + /* * Various internal actions are tracked by tagging g_event[s] onto |