diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2001-09-30 08:43:33 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2001-09-30 08:43:33 +0000 |
| commit | 40739c02ae98972c78b231e2b406606aa9d58c9b (patch) | |
| tree | e593aa597b2515c29139a500fba3cc149a621907 /sys/fs/devfs | |
| parent | 66a686ee82d45335dffc818a613e330308b276d5 (diff) | |
Notes
Diffstat (limited to 'sys/fs/devfs')
| -rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index ba6231c5b826..e8477b7edcc0 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -613,7 +613,14 @@ devfs_remove(ap) lockmgr(&dmp->dm_lock, LK_EXCLUSIVE, 0, curthread); dd = ap->a_dvp->v_data; de = vp->v_data; - de->de_flags |= DE_WHITEOUT; + if (de->de_dirent->d_type == DT_LNK) { + TAILQ_REMOVE(&dd->de_dlist, de, de_list); + if (de->de_vnode) + de->de_vnode->v_data = NULL; + FREE(de, M_DEVFS); + } else { + de->de_flags |= DE_WHITEOUT; + } lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread); return (0); } |
