summaryrefslogtreecommitdiff
path: root/stow.c
diff options
context:
space:
mode:
authorGianluca Guida <glguida@gmail.com>2005-06-30 18:49:55 +0000
committerGianluca Guida <glguida@gmail.com>2005-06-30 18:49:55 +0000
commit3054767a46e0142cacef895c13edb4391435c722 (patch)
treec3dd42959eabd48d87bb7d4c66c325197943c245 /stow.c
parentecdca81b8c88107d4a23dd412f603d5b8ddd43bf (diff)
2005-06-27 Ben Asselstine <benasselstine@gmail.com>
* ulfs.c (ulfs_install): Rewrote to allow insertions of filesystems based on priority. (ulfs_register): Added new argument 'priority'. Set the priority value in ulfs structure. * ulfs.h (ulfs): Added 'priority' field to struct. Updated ulfs_register declaration. * netfs.c (netfs_append_args): Appending new priority option. * stow.c (stow_privdata): Added 'priority' field to struct. (stow_diradd): Added new 'priority' argument. Fill priority field of 'mypriv'. (_stow_scanstowentry): Changed caller to ulfs_register. (_stow_registermatchingdirs): Likewise. * options.c (arg_common_options): Added entries for OPT_PRIORITY and OPT_ADD. (arg_parse_common_options): Handle OPT_PRIORITY and OPT_ADD case. Renamed 'ulfs_removed' to 'ulfs_mode'. New variable 'ulfs_priority'. Changed caller to 'stow_diradd'. Changed caller to 'ulfs_register'. * options.h (OPT_ADD, OPT_PRIORITY, OPT_LONG_ADD) (OPT_LONG_PRIORITY, ULFS_MODE_ADD, ULFS_MODE_REMOVE): New declarations.
Diffstat (limited to 'stow.c')
-rw-r--r--stow.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/stow.c b/stow.c
index 827af63..fa99747 100644
--- a/stow.c
+++ b/stow.c
@@ -34,6 +34,7 @@ struct stow_privdata
{
struct patternlist *patternlist;
int flags;
+ int priority;
struct mutex lock;
};
@@ -51,7 +52,7 @@ _stow_registermatchingdirs (char *arg, char *dirpath, void *priv)
filepath = make_filepath (dirpath, arg);
- err = ulfs_register (filepath, privdata->flags);
+ err = ulfs_register (filepath, privdata->flags, privdata->priority);
free (filepath);
@@ -82,7 +83,7 @@ _stow_scanstowentry (char *arg, char *dirpath, void *priv)
if (patternlist_isempty (privdata->patternlist))
{
- err = ulfs_register (filepath, privdata->flags);
+ err = ulfs_register (filepath, privdata->flags, privdata->priority);
if (err)
{
mutex_unlock (&privdata->lock);
@@ -253,7 +254,8 @@ _stow_notify_thread()
/* Interface to unionfs. */
error_t
-stow_diradd (char *dir, int flags, struct patternlist *patternlist)
+stow_diradd (char *dir, int flags, struct patternlist *patternlist,
+ int priority)
{
error_t err;
@@ -291,6 +293,7 @@ stow_diradd (char *dir, int flags, struct patternlist *patternlist)
mypriv->patternlist = patternlist;
mypriv->flags = flags;
+ mypriv->priority = priority;
mutex_init (&mypriv->lock);
err = for_each_subdir_priv (dir, _stow_scanstowentry, (void *)mypriv);