diff options
author | phk <phk@FreeBSD.org> | 2002-08-13 11:11:51 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-08-13 11:11:51 +0000 |
commit | 2bddcb2f126ffd731fb776e686f8ab48ad27ea44 (patch) | |
tree | 561fda55b61541b8fd0a59b93051081c61b230e2 | |
parent | 5727268ab34798f2de8355754e6dadf339e1d772 (diff) | |
download | FreeBSD-src-2bddcb2f126ffd731fb776e686f8ab48ad27ea44.zip FreeBSD-src-2bddcb2f126ffd731fb776e686f8ab48ad27ea44.tar.gz |
Remember to unlock the (optional) vnode in vfs_stdextattrctl(). Failing
to do this made the following script hang:
#!/bin/sh
set -ex
extattrctl start /tmp
extattrctl initattr 64 /tmp/EA00
extattrctl enable /tmp user ea00 /tmp/EA00
extattrctl showattr /tmp/EA00
if the filesystem backing /tmp did not support EAs.
The real solution is probably to have the extattrctl syscall do the
unlocking rather than depend on the filesystem to do it. Considering
that extattrctl is going to be made obsolete anyway, this has dogwash
priority.
Sponsored by: DARPA & NAI Labs.
-rw-r--r-- | sys/kern/vfs_default.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index 6ad13d5..81c2167 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -819,6 +819,8 @@ vfs_stdextattrctl(mp, cmd, filename_vp, attrnamespace, attrname, td) const char *attrname; struct thread *td; { + if (filename_vp != NULL) + VOP_UNLOCK(filename_vp, 0, td); return(EOPNOTSUPP); } |