Merge branch 'jc/git-open-cloexec'
The codeflow of setting NOATIME and CLOEXEC on file descriptors Git opens has been simplified. We may want to drop the tip one, but we'll see. * jc/git-open-cloexec: sha1_file: stop opening files with O_NOATIME git_open_cloexec(): use fcntl(2) w/ FD_CLOEXEC fallback git_open(): untangle possible NOATIME and CLOEXEC interactions
This commit is contained in:
@ -156,14 +156,7 @@ void fill_stat_cache_info(struct cache_entry *ce, struct stat *st)
|
||||
static int ce_compare_data(const struct cache_entry *ce, struct stat *st)
|
||||
{
|
||||
int match = -1;
|
||||
static int cloexec = O_CLOEXEC;
|
||||
int fd = open(ce->name, O_RDONLY | cloexec);
|
||||
|
||||
if ((cloexec & O_CLOEXEC) && fd < 0 && errno == EINVAL) {
|
||||
/* Try again w/o O_CLOEXEC: the kernel might not support it */
|
||||
cloexec &= ~O_CLOEXEC;
|
||||
fd = open(ce->name, O_RDONLY | cloexec);
|
||||
}
|
||||
int fd = git_open_cloexec(ce->name, O_RDONLY);
|
||||
|
||||
if (fd >= 0) {
|
||||
unsigned char sha1[20];
|
||||
|
||||
Reference in New Issue
Block a user