This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch master in repository hurd.
commit 1cba06c7c1e8e6003d2251a6b697ba871d1578a5 Author: Samuel Thibault <[email protected]> Date: Sun May 25 14:28:17 2014 +0000 patches/mount-bind.patch: Add bind option to our mount tool. --- debian/changelog | 3 ++ debian/patches/mount-bind.patch | 113 ++++++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 117 insertions(+) diff --git a/debian/changelog b/debian/changelog index 8017b99..2d5071f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,9 @@ hurd (1:0.5.git20140326-2) UNRELEASED; urgency=medium [ Pino Toscano ] * control: remove unused gcc-4.7 build dependency. (Closes: #748000) + [ Gabriele Giacone ] + * patches/mount-bind.patch: Add bind option to our mount tool. + -- Samuel Thibault <[email protected]> Wed, 26 Mar 2014 13:12:42 +0100 hurd (1:0.5.git20140326-1) unstable; urgency=medium diff --git a/debian/patches/mount-bind.patch b/debian/patches/mount-bind.patch new file mode 100644 index 0000000..7c7d301 --- /dev/null +++ b/debian/patches/mount-bind.patch @@ -0,0 +1,113 @@ +This is waiting for gg0's copyright assignment completion + +From: Gabriele Giacone <[email protected]> + +* utils/mount.c (parse_opt): Add -B/--bind/--firmlink/-o bind mount + options. (do_mount): Do not pass bind mount option to settrans, set + firmlink fstype. (main): Likewise. +--- + utils/mount.c | 38 +++++++++++++++++++++++++++++++------- + 1 file changed, 31 insertions(+), 7 deletions(-) + +diff --git a/utils/mount.c b/utils/mount.c +index df77c66..e6893cb 100644 +--- a/utils/mount.c ++++ b/utils/mount.c +@@ -64,6 +64,8 @@ static const struct argp_option argp_opts[] = + {"no-mtab", 'n', 0, 0, "Do not update /etc/mtab"}, + {"test-opts", 'O', "OPTIONS", 0, + "Only mount fstab entries matching the given set of options"}, ++ {"bind", 'B', 0, 0, "Bind mount, firmlink"}, ++ {"firmlink", 0, 0, OPTION_ALIAS}, + {"fake", 'f', 0, 0, "Do not actually mount, just pretend"}, + {0, 0} + }; +@@ -87,6 +89,7 @@ parse_opt (int key, char *arg, struct argp_state *state) + case 'r': ARGZ (add (&options, &options_len, "ro")); + case 'w': ARGZ (add (&options, &options_len, "rw")); + case 'u': ARGZ (add (&options, &options_len, "update")); ++ case 'B': ARGZ (add (&options, &options_len, "bind")); + case 'o': ARGZ (add_sep (&options, &options_len, arg, ',')); + case 'v': ++verbose; break; + #undef ARGZ +@@ -250,12 +253,20 @@ do_mount (struct fs *fs, int remount) + /* Append the fstab options to any specified on the command line. */ + ARGZ (create_sep (fs->mntent.mnt_opts, ',', &mntopts, &mntopts_len)); + +- /* Remove the `noauto' option, since it's for us not the filesystem. */ ++ /* Remove the `noauto' and `bind' options, since they're for us not the ++ filesystem. */ + for (o = mntopts; o; o = argz_next (mntopts, mntopts_len, o)) +- if (!strcmp (o, MNTOPT_NOAUTO)) +- break; +- if (o) +- argz_delete (&mntopts, &mntopts_len, o); ++ { ++ if (strcmp (o, MNTOPT_NOAUTO) == 0) ++ argz_delete (&mntopts, &mntopts_len, o); ++ if (strcmp (o, "bind") == 0) ++ { ++ fs->mntent.mnt_type = strdup ("firmlink"); ++ if (! fs->mntent.mnt_type) ++ error (3, ENOMEM, "failed to allocate memory"); ++ argz_delete (&mntopts, &mntopts_len, o); ++ } ++ } + + ARGZ (append (&mntopts, &mntopts_len, options, options_len)); + } +@@ -273,7 +284,7 @@ do_mount (struct fs *fs, int remount) + { + ARGZ (add (&fsopts, &fsopts_len, o)); + } +- else if (strcmp (o, "defaults") != 0) ++ else if ((strcmp (o, "defaults") != 0) && (strlen (o) != 0)) + { + /* Prepend `--' to the option to make a long option switch, + e.g. `--ro' or `--rsize=1024'. */ +@@ -572,7 +583,7 @@ do_query (struct fs *fs) + int + main (int argc, char **argv) + { +- unsigned int remount; ++ unsigned int remount, firmlink; + struct fstab *fstab; + struct fs *fs; + error_t err; +@@ -598,6 +609,15 @@ main (int argc, char **argv) + if (err) + error (3, ENOMEM, "collecting mount options"); + ++ /* Do not pass `bind' option to firmlink translator */ ++ char *opt = NULL; ++ while ((opt = argz_next (options, options_len, opt))) ++ if (strcmp (opt, "bind") == 0) ++ { ++ firmlink = 1; ++ argz_delete(&options, &options_len, opt); ++ } ++ + if (device) /* two-argument form */ + { + struct mntent m = +@@ -608,6 +628,8 @@ main (int argc, char **argv) + mnt_opts: 0, + mnt_freq: 0, mnt_passno: 0 + }; ++ if (firmlink) ++ m.mnt_type = strdup ("firmlink"); + + err = fstab_add_mntent (fstab, &m, &fs); + if (err) +@@ -625,6 +647,8 @@ main (int argc, char **argv) + mnt_opts: 0, + mnt_freq: 0, mnt_passno: 0 + }; ++ if (firmlink) ++ m.mnt_type = strdup ("firmlink"); + + err = fstab_add_mntent (fstab, &m, &fs); + if (err) +-- +2.0.0.rc2 + diff --git a/debian/patches/series b/debian/patches/series index 17bcb32..82dc25c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -42,3 +42,4 @@ mount.patch proc_set_init_task.patch newRPC.patch xkb-compat.patch +mount-bind.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hurd/hurd.git
