diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2008-08-03 13:33:45 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-08-03 13:33:45 +0000 |
| commit | 4f7afc20e052f2f5232375cb07916a1c21a5ef2d (patch) | |
| tree | 7603ee0923284048aefc51b770a8cdbd676830f7 | |
| parent | 200d80cd74a8cb0a58383d0cbef063f2575c9f53 (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 2664ba988946..52b3f8f0ba68 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -802,7 +802,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); error = linker_load_dependencies(lf); + vn_lock(nd.ni_vp, LK_EXCLUSIVE | LK_RETRY); 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 d8e921921534..29165fe0fe9f 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -798,7 +798,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); error = linker_load_dependencies(lf); + vn_lock(nd.ni_vp, LK_EXCLUSIVE | LK_RETRY); if (error) goto out; |
