Author: glen                         Date: Mon Sep 12 21:12:14 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fix when doing mount --move. patch taken from gentoo portage

---- Files affected:
SOURCES:
   util-linux-2.12q-update-mtab-when-moving.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/util-linux-2.12q-update-mtab-when-moving.patch
diff -u /dev/null SOURCES/util-linux-2.12q-update-mtab-when-moving.patch:1.1
--- /dev/null   Mon Sep 12 23:12:14 2005
+++ SOURCES/util-linux-2.12q-update-mtab-when-moving.patch      Mon Sep 12 
23:12:09 2005
@@ -0,0 +1,33 @@
+Running `mount --move /foo /bar` would leave the old /foo entry in /etc/mtab 
+and create a new /bar entry with wrong info.
+
+http://bugs.gentoo.org/104697
+
+--- mount/mount.c
++++ mount/mount.c
+@@ -665,6 +665,25 @@
+               else {
+                       mntFILE *mfp;
+ 
++                      /* when moving a mount point, we have to make sure the 
mtab
++                       * gets updated properly.  We get info about the old 
mount
++                       * point, copy it to the new mount point, and then 
delete
++                       * the old mount point. */
++                      if (flags & MS_MOVE) {
++                              const char *olddir = mnt.mnt_fsname;
++                              struct mntentchn *oldmc = oldmc = 
getmntfile(olddir);
++                              if (oldmc != NULL) {
++                                      mnt.mnt_fsname = 
strdup(oldmc->m.mnt_fsname);
++                                      mnt.mnt_type = oldmc->m.mnt_type;
++                                      mnt.mnt_opts = oldmc->m.mnt_opts;
++                                      mnt.mnt_freq = oldmc->m.mnt_freq;
++                                      mnt.mnt_passno = oldmc->m.mnt_passno;
++                              }
++                              update_mtab(olddir, NULL);
++                              if (oldmc != NULL)
++                                      my_free(olddir);
++                      }
++
+                       lock_mtab();
+                       mfp = my_setmntent(MOUNTED, "a+");
+                       if (mfp == NULL || mfp->mntent_fp == NULL) {
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to