summaryrefslogtreecommitdiffstats
path: root/sys/fs/pseudofs/pseudofs.c
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2002-09-14 09:02:28 +0000
committernjl <njl@FreeBSD.org>2002-09-14 09:02:28 +0000
commit0590c43070aac7fb636a1f4c4b94469046a317a0 (patch)
treee9205d0e4985af46af0db4bd26e9662b1c25f85b /sys/fs/pseudofs/pseudofs.c
parentbb76739de046ae1f81a36e96d18f0ee3b1afd323 (diff)
downloadFreeBSD-src-0590c43070aac7fb636a1f4c4b94469046a317a0.zip
FreeBSD-src-0590c43070aac7fb636a1f4c4b94469046a317a0.tar.gz
Remove all use of vnode->v_tag, replacing with appropriate substitutes.
v_tag is now const char * and should only be used for debugging. Additionally: 1. All users of VT_NTS now check vfsconf->vf_type VFCF_NETWORK 2. The user of VT_PROCFS now checks for the new flag VV_PROCDEP, which is propagated by pseudofs to all child vnodes if the fs sets PFS_PROCDEP. Suggested by: phk Reviewed by: bde, rwatson (earlier version)
Diffstat (limited to 'sys/fs/pseudofs/pseudofs.c')
-rw-r--r--sys/fs/pseudofs/pseudofs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/fs/pseudofs/pseudofs.c b/sys/fs/pseudofs/pseudofs.c
index a940012..8297ef6 100644
--- a/sys/fs/pseudofs/pseudofs.c
+++ b/sys/fs/pseudofs/pseudofs.c
@@ -75,6 +75,9 @@ _pfs_add_node(struct pfs_node *parent, struct pfs_node *node)
node->pn_parent = parent;
node->pn_next = parent->pn_nodes;
parent->pn_nodes = node;
+ /* Propagate flag to all child nodes (and thus their vnodes) */
+ if ((parent->pn_flags & PFS_PROCDEP) != 0)
+ node->pn_flags |= PFS_PROCDEP;
mtx_unlock(&parent->pn_info->pi_mutex);
return (0);
@@ -129,7 +132,7 @@ pfs_create_dir(struct pfs_node *parent, char *name,
dir->pn_type = (flags & PFS_PROCDEP) ? pfstype_procdir : pfstype_dir;
dir->pn_attr = attr;
dir->pn_vis = vis;
- dir->pn_flags = flags & ~PFS_PROCDEP;
+ dir->pn_flags = flags;
if (_pfs_add_node(parent, dir) != 0) {
FREE(dir, M_PFSNODES);
OpenPOWER on IntegriCloud