diff options
Diffstat (limited to 'src/update.c')
-rw-r--r-- | src/update.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/update.c b/src/update.c index 52c87bbfd..1ed673f64 100644 --- a/src/update.c +++ b/src/update.c @@ -235,6 +235,18 @@ inodeFoundInParent(struct directory *parent, ino_t inode, dev_t device) return 0; } +static struct directory * +make_subdir(struct directory *parent, const char *name) +{ + struct directory *directory; + + directory = directory_get_child(parent, name); + if (directory == NULL) + directory = directory_new_child(parent, name); + + return directory; +} + static bool updateDirectory(struct directory *directory, const struct stat *st); @@ -267,10 +279,7 @@ updateInDirectory(struct directory *directory, if (inodeFoundInParent(directory, st->st_ino, st->st_dev)) return; - subdir = directory_get_child(directory, name); - if (subdir == NULL) - subdir = directory_new_child(directory, name); - + subdir = make_subdir(directory, name); assert(directory == subdir->parent); ret = updateDirectory(subdir, st); |