fscache: make fscache_enabled() public

Make fscache_enabled() function public rather than static.
Remove unneeded fscache_is_enabled() function.
Change is_fscache_enabled() macro to call fscache_enabled().

is_fscache_enabled() now takes a pathname so that the answer
is more precise and mean "is fscache enabled for this pathname",
since fscache only stores repo-relative paths and not absolute
paths, we can avoid attempting lookups for absolute paths.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
This commit is contained in:
Jeff Hostetler 2017-12-20 10:43:41 -05:00 коммит произвёл Johannes Schindelin
Родитель 7a66060125
Коммит bf52aa1fcc
4 изменённых файлов: 5 добавлений и 10 удалений

Просмотреть файл

@ -9,11 +9,6 @@ static struct hashmap map;
static CRITICAL_SECTION mutex;
static struct trace_key trace_fscache = TRACE_KEY_INIT(FSCACHE);
int fscache_is_enabled(void)
{
return enabled;
}
/*
* An entry in the file system cache. Used for both entire directory listings
* and file entries.
@ -265,7 +260,7 @@ static void fscache_clear(void)
/*
* Checks if the cache is enabled for the given path.
*/
static inline int fscache_enabled(const char *path)
int fscache_enabled(const char *path)
{
return enabled > 0 && !is_absolute_path(path);
}

Просмотреть файл

@ -4,8 +4,8 @@
int fscache_enable(int enable);
#define enable_fscache(x) fscache_enable(x)
int fscache_is_enabled(void);
#define is_fscache_enabled() (fscache_is_enabled())
int fscache_enabled(const char *path);
#define is_fscache_enabled(path) fscache_enabled(path)
DIR *fscache_opendir(const char *dir);
int fscache_lstat(const char *file_name, struct stat *buf);

2
dir.c
Просмотреть файл

@ -957,7 +957,7 @@ static int add_patterns(const char *fname, const char *base, int baselen,
size_t size = 0;
char *buf;
if (is_fscache_enabled()) {
if (is_fscache_enabled(fname)) {
if (lstat(fname, &st) < 0) {
fd = -1;
} else {

Просмотреть файл

@ -1284,7 +1284,7 @@ static inline int is_missing_file_error(int errno_)
#endif
#ifndef is_fscache_enabled
#define is_fscache_enabled() (0)
#define is_fscache_enabled(path) (0)
#endif
int cmd_main(int, const char **);