mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-14 10:09:48 +00:00
Put use of DIOCWLABEL under #ifdef NO_GEOM
This commit is contained in:
parent
5a5469f26a
commit
e70e846243
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=109876
@ -564,7 +564,9 @@ daemon_save_config(void)
|
||||
struct drive *drive; /* point to current drive info */
|
||||
struct vinum_hdr *vhdr; /* and as header */
|
||||
char *config; /* point to config data */
|
||||
#ifdef NO_GEOM
|
||||
int wlabel_on; /* to set writing label on/off */
|
||||
#endif
|
||||
|
||||
/* don't save the configuration while we're still working on it */
|
||||
if (vinum_conf.flags & VF_CONFIGURING)
|
||||
@ -614,23 +616,27 @@ daemon_save_config(void)
|
||||
sizeof(vhdr->label));
|
||||
if ((drive->state != drive_unallocated)
|
||||
&& (drive->state != drive_referenced)) { /* and it's a real drive */
|
||||
#ifdef NO_GEOM
|
||||
wlabel_on = 1; /* enable writing the label */
|
||||
(void) (*devsw(drive->dev)->d_ioctl) (drive->dev, /* make the label writeable */
|
||||
DIOCWLABEL,
|
||||
(caddr_t) & wlabel_on,
|
||||
FWRITE,
|
||||
curthread);
|
||||
#endif
|
||||
error = write_drive(drive, (char *) vhdr, VINUMHEADERLEN, VINUM_LABEL_OFFSET);
|
||||
if (error == 0)
|
||||
error = write_drive(drive, config, MAXCONFIG, VINUM_CONFIG_OFFSET); /* first config copy */
|
||||
if (error == 0)
|
||||
error = write_drive(drive, config, MAXCONFIG, VINUM_CONFIG_OFFSET + MAXCONFIG); /* second copy */
|
||||
#ifdef NO_GEOM
|
||||
wlabel_on = 0; /* enable writing the label */
|
||||
(void) (*devsw(drive->dev)->d_ioctl) (drive->dev, /* make the label non-writeable again */
|
||||
DIOCWLABEL,
|
||||
(caddr_t) & wlabel_on,
|
||||
FWRITE,
|
||||
curthread);
|
||||
#endif
|
||||
unlockdrive(drive);
|
||||
if (error) {
|
||||
log(LOG_ERR,
|
||||
|
@ -402,6 +402,7 @@ vinumioctl(dev_t dev,
|
||||
case DIOCSDINFO: /* set partition info */
|
||||
return 0; /* not a titty */
|
||||
|
||||
#ifdef NO_GEOM
|
||||
case DIOCWLABEL: /* set or reset label writeable */
|
||||
if ((flag & FWRITE) == 0) /* not writeable? */
|
||||
return EACCES; /* no, die */
|
||||
@ -410,7 +411,7 @@ vinumioctl(dev_t dev,
|
||||
else
|
||||
vol->flags &= ~VF_WLABEL; /* no, reset */
|
||||
break;
|
||||
|
||||
#endif
|
||||
default:
|
||||
return ENOTTY; /* not my kind of ioctl */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user