summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-08-13 11:11:51 +0000
committerphk <phk@FreeBSD.org>2002-08-13 11:11:51 +0000
commit2bddcb2f126ffd731fb776e686f8ab48ad27ea44 (patch)
tree561fda55b61541b8fd0a59b93051081c61b230e2
parent5727268ab34798f2de8355754e6dadf339e1d772 (diff)
downloadFreeBSD-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.c2
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);
}
OpenPOWER on IntegriCloud