diff options
author | bp <bp@FreeBSD.org> | 1999-10-14 09:35:37 +0000 |
---|---|---|
committer | bp <bp@FreeBSD.org> | 1999-10-14 09:35:37 +0000 |
commit | 8e28bcd1a90381a8f303b8f38ae889fa641df42f (patch) | |
tree | 75fa295c865498255f0305585cc9c549d2f723c5 /sys/fs/nwfs | |
parent | 40a263bd52489f340c28c190ecd71c2b54e89198 (diff) | |
download | FreeBSD-src-8e28bcd1a90381a8f303b8f38ae889fa641df42f.zip FreeBSD-src-8e28bcd1a90381a8f303b8f38ae889fa641df42f.tar.gz |
Under some condition vnode can reference itself.
Diffstat (limited to 'sys/fs/nwfs')
-rw-r--r-- | sys/fs/nwfs/nwfs.h | 1 | ||||
-rw-r--r-- | sys/fs/nwfs/nwfs_vnops.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/fs/nwfs/nwfs.h b/sys/fs/nwfs/nwfs.h index 950d18a..51ae76b 100644 --- a/sys/fs/nwfs/nwfs.h +++ b/sys/fs/nwfs/nwfs.h @@ -35,6 +35,7 @@ #ifndef _NWFS_H_ #define _NWFS_H_ +#include <netncp/ncp.h> #include <nwfs/nwfs_mount.h> #define NR_OPEN 0 diff --git a/sys/fs/nwfs/nwfs_vnops.c b/sys/fs/nwfs/nwfs_vnops.c index 61163b0..d084503 100644 --- a/sys/fs/nwfs/nwfs_vnops.c +++ b/sys/fs/nwfs/nwfs_vnops.c @@ -1043,8 +1043,11 @@ printf("dvp %d:%d:%d\n", (int)mp, (int)dvp->v_flag & VROOT, (int)flags & ISDOTDO fap = &fattr; notfound = ncp_lookup(dvp, cnp->cn_namelen, cnp->cn_nameptr, fap, p, cnp->cn_cred); - fid.f_parent = dnp->n_fid.f_id; fid.f_id = fap->dirEntNum; + if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { + fid.f_parent = dnp->n_fid.f_parent; + } else + fid.f_parent = dnp->n_fid.f_id; NCPVNDEBUG("call to ncp_lookup returned=%d\n",notfound); } if (notfound && notfound < 0x80 ) |