зеркало из https://github.com/microsoft/git.git
multi-pack-index: close file descriptor after mmap
The multi-pack-index subsystem was not closing its file descriptor after memory-mapping the file contents. After this mmap() succeeds, there is no need to keep the file descriptor open. In fact, there is signficant reason to close it so we do not run out of descriptors. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
6a22d52126
Коммит
6c7ff7cf7f
4
midx.c
4
midx.c
|
@ -68,9 +68,9 @@ struct multi_pack_index *load_multi_pack_index(const char *object_dir, int local
|
|||
FREE_AND_NULL(midx_name);
|
||||
|
||||
midx_map = xmmap(NULL, midx_size, PROT_READ, MAP_PRIVATE, fd, 0);
|
||||
close(fd);
|
||||
|
||||
FLEX_ALLOC_MEM(m, object_dir, object_dir, strlen(object_dir));
|
||||
m->fd = fd;
|
||||
m->data = midx_map;
|
||||
m->data_len = midx_size;
|
||||
m->local = local;
|
||||
|
@ -184,8 +184,6 @@ static void close_midx(struct multi_pack_index *m)
|
|||
{
|
||||
uint32_t i;
|
||||
munmap((unsigned char *)m->data, m->data_len);
|
||||
close(m->fd);
|
||||
m->fd = -1;
|
||||
|
||||
for (i = 0; i < m->num_packs; i++) {
|
||||
if (m->packs[i]) {
|
||||
|
|
2
midx.h
2
midx.h
|
@ -6,8 +6,6 @@
|
|||
struct multi_pack_index {
|
||||
struct multi_pack_index *next;
|
||||
|
||||
int fd;
|
||||
|
||||
const unsigned char *data;
|
||||
size_t data_len;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче