summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/grep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index 896e7effce..91fc032a32 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -658,13 +658,18 @@ static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
for (i = 0; i < nr; i++) {
struct object *real_obj;
+
+ grep_read_lock();
real_obj = deref_tag(opt->repo, list->objects[i].item,
NULL, 0);
+ grep_read_unlock();
/* load the gitmodules file for this rev */
if (recurse_submodules) {
submodule_free(opt->repo);
+ grep_read_lock();
gitmodules_config_oid(&real_obj->oid);
+ grep_read_unlock();
}
if (grep_object(opt, pathspec, real_obj, list->objects[i].name,
list->objects[i].path)) {