From 3054767a46e0142cacef895c13edb4391435c722 Mon Sep 17 00:00:00 2001 From: Gianluca Guida Date: Thu, 30 Jun 2005 18:49:55 +0000 Subject: 2005-06-27 Ben Asselstine * 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. --- stow.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'stow.c') 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); -- cgit v1.2.3