diff options
author | phk <phk@FreeBSD.org> | 2001-11-02 09:16:25 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2001-11-02 09:16:25 +0000 |
commit | e3965fc866a9d9948ee38c0c5746d1b5af581b7a (patch) | |
tree | 69af275eef121f7f5cb314fe4c973fb082969f8d | |
parent | b4e7f2c4097ccc4efc0cda732fbb2b970727d88a (diff) | |
download | FreeBSD-src-e3965fc866a9d9948ee38c0c5746d1b5af581b7a.zip FreeBSD-src-e3965fc866a9d9948ee38c0c5746d1b5af581b7a.tar.gz |
Turn the symlinks around, instead of ad0s1 -> ad0s1c, make it ad0s1c -> ad0s1.
Requested by: peter
-rw-r--r-- | sys/kern/subr_disk.c | 36 |
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; } } |