summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_disk.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2001-11-02 09:16:25 +0000
committerphk <phk@FreeBSD.org>2001-11-02 09:16:25 +0000
commite3965fc866a9d9948ee38c0c5746d1b5af581b7a (patch)
tree69af275eef121f7f5cb314fe4c973fb082969f8d /sys/kern/subr_disk.c
parentb4e7f2c4097ccc4efc0cda732fbb2b970727d88a (diff)
downloadFreeBSD-src-e3965fc866a9d9948ee38c0c5746d1b5af581b7a.zip
FreeBSD-src-e3965fc866a9d9948ee38c0c5746d1b5af581b7a.tar.gz
Turn the symlinks around, instead of ad0s1 -> ad0s1c, make it ad0s1c -> ad0s1.
Requested by: peter
Diffstat (limited to 'sys/kern/subr_disk.c')
-rw-r--r--sys/kern/subr_disk.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/sys/kern/subr_disk.c b/sys/kern/subr_disk.c
index ce5f6e0..11fe846 100644
--- a/sys/kern/subr_disk.c
+++ b/sys/kern/subr_disk.c
@@ -67,13 +67,19 @@ disk_dev_synth(dev_t dev)
dev_depends(pdev, dev);
return;
}
- dev = make_dev(pdev->si_devsw, dkmakeminor(u, s, p),
- UID_ROOT, GID_OPERATOR, 0640, "%s%ds%d%c",
- dp->d_devsw->d_name, u, s - BASE_SLICE + 1, 'a' + p);
- dev_depends(pdev, dev);
- if (p == RAW_PART)
- make_dev_alias(dev, "%s%ds%d",
+ if (p != RAW_PART) {
+ dev = make_dev(pdev->si_devsw, dkmakeminor(u, s, p),
+ UID_ROOT, GID_OPERATOR, 0640, "%s%ds%d%c",
+ dp->d_devsw->d_name, u, s - BASE_SLICE + 1,
+ 'a' + p);
+ } else {
+ dev = make_dev(pdev->si_devsw, dkmakeminor(u, s, p),
+ UID_ROOT, GID_OPERATOR, 0640, "%s%ds%d",
+ dp->d_devsw->d_name, u, s - BASE_SLICE + 1);
+ make_dev_alias(dev, "%s%ds%dc",
dp->d_devsw->d_name, u, s - BASE_SLICE + 1);
+ }
+ dev_depends(pdev, dev);
return;
}
}
@@ -132,18 +138,22 @@ disk_clone(void *arg, char *name, int namelen, dev_t *dev)
p = name[i] - 'a';
}
- if (s >= BASE_SLICE)
+ if (s >= BASE_SLICE && p != RAW_PART) {
*dev = make_dev(pdev->si_devsw, dkmakeminor(u, s, p),
UID_ROOT, GID_OPERATOR, 0640, "%s%ds%d%c",
- pdev->si_devsw->d_name, u, s - BASE_SLICE + 1, p + 'a');
- else
+ pdev->si_devsw->d_name, u, s - BASE_SLICE + 1,
+ p + 'a');
+ } else if (s >= BASE_SLICE) {
*dev = make_dev(pdev->si_devsw, dkmakeminor(u, s, p),
- UID_ROOT, GID_OPERATOR, 0640, name);
- dev_depends(pdev, *dev);
- if (s >= BASE_SLICE && p == RAW_PART) {
- make_dev_alias(*dev, "%s%ds%d",
+ UID_ROOT, GID_OPERATOR, 0640, "%s%ds%d",
+ pdev->si_devsw->d_name, u, s - BASE_SLICE + 1);
+ make_dev_alias(*dev, "%s%ds%dc",
pdev->si_devsw->d_name, u, s - BASE_SLICE + 1);
+ } else {
+ *dev = make_dev(pdev->si_devsw, dkmakeminor(u, s, p),
+ UID_ROOT, GID_OPERATOR, 0640, name);
}
+ dev_depends(pdev, *dev);
return;
}
}
OpenPOWER on IntegriCloud