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
committed by Johannes Schindelin
parent 59412127b0
commit 9691d0a39d
4 changed files with 5 additions and 10 deletions

View File

@@ -8,11 +8,6 @@ static volatile long enabled;
static struct hashmap map;
static CRITICAL_SECTION mutex;
int fscache_is_enabled(void)
{
return enabled;
}
/*
* An entry in the file system cache. Used for both entire directory listings
* and file entries.
@@ -247,7 +242,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);
}

View File

@@ -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
View File

@@ -786,7 +786,7 @@ static int add_excludes(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 {

View File

@@ -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
extern int cmd_main(int, const char **);