diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2008-08-10 13:18:07 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-08-10 13:18:07 +0000 |
commit | 948a2910a694392b49f23ec260dde0e44ae39c6c (patch) | |
tree | c78799f9d83d42808cb31e7f6a04a82c0c85655a | |
parent | f428b23100fe6994fe87367d7e505b5fc0281c8f (diff) |
Notes
-rw-r--r-- | sys/kern/link_elf.c | 2 | ||||
-rw-r--r-- | sys/kern/link_elf_obj.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c index 0e20809b99ce..e32a0a41027e 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -785,7 +785,9 @@ link_elf_load_file(linker_class_t cls, const char* filename, goto out; link_elf_reloc_local(lf); + VOP_UNLOCK(nd.ni_vp, 0, td); error = linker_load_dependencies(lf); + vn_lock(nd.ni_vp, LK_EXCLUSIVE | LK_RETRY, td); if (error) goto out; #if 0 /* this will be more trouble than it's worth for now */ diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c index b7c67ec7b140..af6defaef80a 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -774,7 +774,9 @@ link_elf_load_file(linker_class_t cls, const char *filename, link_elf_reloc_local(lf); /* Pull in dependencies */ + VOP_UNLOCK(nd.ni_vp, 0, td); error = linker_load_dependencies(lf); + vn_lock(nd.ni_vp, LK_EXCLUSIVE | LK_RETRY, td); if (error) goto out; |