diff options
Diffstat (limited to 'debian/patches/mount-remount.patch')
-rw-r--r-- | debian/patches/mount-remount.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/debian/patches/mount-remount.patch b/debian/patches/mount-remount.patch new file mode 100644 index 00000000..53eccb2b --- /dev/null +++ b/debian/patches/mount-remount.patch @@ -0,0 +1,67 @@ +This fixes mount -oremount when just given the mountpoint, e. g.: + + % mount -oremount,ro /tmp + +* util/mount.c (main): Add a one-argument form for remount. +--- + utils/mount.c | 29 +++++++++++++++++++++++------ + 1 file changed, 23 insertions(+), 6 deletions(-) + +diff --git a/utils/mount.c b/utils/mount.c +index ea30f7a..f1d5750 100644 +--- a/utils/mount.c ++++ b/utils/mount.c +@@ -526,6 +526,12 @@ main (int argc, char **argv) + + fstab = fstab_argp_create (&fstab_params, SEARCH_FMTS, sizeof SEARCH_FMTS); + ++ /* This is a convenient way of checking for any `remount' options. */ ++ remount = 0; ++ err = argz_replace (&options, &options_len, "remount", "update", &remount); ++ if (err) ++ error (3, ENOMEM, "collecting mount options"); ++ + if (device) /* two-argument form */ + { + struct mntent m = +@@ -548,6 +554,23 @@ main (int argc, char **argv) + if (err) + error (2, err, "%s", mountpoint); + } ++ else if (mountpoint && remount) /* one-argument remount */ ++ { ++ struct mntent m = ++ { ++ mnt_fsname: mountpoint, /* since we cannot know the device, ++ using mountpoint here leads to more ++ helpful error messages */ ++ mnt_dir: mountpoint, ++ mnt_type: fstype, ++ mnt_opts: 0, ++ mnt_freq: 0, mnt_passno: 0 ++ }; ++ ++ err = fstab_add_mntent (fstab, &m, &fs); ++ if (err) ++ error (2, err, "%s", mountpoint); ++ } + else if (mountpoint) /* one-argument form */ + { + fs = fstab_find (fstab, mountpoint); +@@ -557,12 +580,6 @@ main (int argc, char **argv) + else + fs = 0; + +- /* This is a convenient way of checking for any `remount' options. */ +- remount = 0; +- err = argz_replace (&options, &options_len, "remount", "update", &remount); +- if (err) +- error (3, ENOMEM, "collecting mount options"); +- + if (fs != 0) + err = do_mount (fs, remount); + else +-- +1.7.10.4 + + |