On lun. 19 mai 2014 à 15:30:23, Pierre-Elliott Bécue wrote:
> On Mon, 19 May 2014 14:34:40 +0200, David Guyot wrote:
> > Pierre-Elliott,
> >
> > Thanks for your reply. Your offer seems correct to me; nevertheless,
> > regarding your second proposition, why would the warning be only
> > displayed with the verbose flag? I mean, doesn't it worth the trouble to
> > always display this warning, even without -v, given the relatively small
> > amount of situation the current behaviour of mount will be desirable and
> > the comparatively great number of situations this same current behaviour
> > will be a problem?
> >
> > Regarding the code, I'm afraid I can't help to this patch; my C level is
> > almost at absolute zero.
> >
> > Regards.
> > --
> > Pierre-Eliott,
> >
> > Merci pour ta réponse. Ta proposition me semble correcte, si ce n'est
> > que je ne comprends pas pourquoi ta seconde proposition suggère de
> > n'afficher l'avertissement que si le mode verbeux est actif. Je veux
> > dire par là que ça vaudrait peut-être le coup de toujours afficher cet
> > avertissement, même sans mode verbeux, au vu du faible nombre de
> > situations où le comportement actuel serait souhaitable, comparé au
> > grand nombre de cas où ce comportement serait un problème, non ?
> >
> > Concernant le code, j'ai peur de ne pas pouvoir aider à ton patch, car
> > mon niveau en C avoisine le zéro absolu.
> >
> > Cordialement.
>
> Cheers,
>
> My opinion on the subject is that my patch shouldn't modify the general
> behavior of mount. This is the upstream role to decide wether mount should
> alert in any case or not. I agree that this warning would be useful, but I'm
> not sure to be enough good to decide the modalities of this warning.
>
> As for the patch, I tested it with mount -v. With mount -av, it doesn't
> work, probably because of the way mtab is updated. I thought I would have
> the time to think about it this weekend, but I did'nt.
>
> Btw, the patchfile I submitted is not the good one, it has a typo at strstr
> call. Here is the good one.
Ok, I investigated further. The thing is, mount doesn't update /etc/mtab if
it is a symlink. The fact is, on recent debian system, /etc/mtab points to
/proc/mounts which points to /proc/self/mounts.
This file is updated by kernel, and, it seems that the kernel updates it
"intelligently".
So my patch won't make it way with mount -a, and won't fix your problem.
I'll look for a solution.
--
PEB
And I re-re-submit my patch, because it seems although the second patchfile
is good, it's corrupted (and though unappliable). This time, I promise, it's
all good :D
--- util-linux-2.20.1/mount/mount.c 2014-05-19 15:27:57.000000000 +0200
+++ util-linux-2.20.1bak/mount/mount.c 2014-05-19 15:40:13.264089646 +0200
@@ -310,6 +310,21 @@
printf ("\n");
}
+/* Check if node overlaps another entry in mtab */
+static int
+overlap_fs(const char *spec, const char *node){
+ struct mntentchn *mc, *mc0;
+
+ mc0 = mtab_head();
+ for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) {
+ if(strstr(mc->m.mnt_dir, node) != NULL){
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
/* Report on everything in mtab (of the specified types if any). */
static int
print_all (char *types) {
@@ -2021,6 +2036,14 @@
}
}
+ if(verbose && overlap_fs(spec, node)){
+ printf(_("mount: mounting %s on %s overlaps "
+ "another already mounted fs, type "
+ "mount and search for %s for more "
+ "information.\n"),
+ spec, node, node);
+ }
+
/* Handle possible LABEL= and UUID= forms of spec */
if (types == NULL || (strncmp(types, "9p", 2) &&
strncmp(types, "nfs", 3) &&