Hello community,
here is the log from the commit of package cifs-utils for openSUSE:11.4
checked in at Thu Mar 15 21:50:53 CET 2012.
--- old-versions/11.4/UPDATES/all/cifs-utils/cifs-utils.changes 2012-02-22
14:42:06.0 +0100
+++ 11.4/cifs-utils/cifs-utils.changes 2012-03-09 10:05:03.0 +0100
@@ -1,0 +2,5 @@
+Thu Mar 8 20:12:19 CET 2012 - sjayara...@suse.de
+
+- mount.cifs: Properly update mtab during remount; (bnc#747906).
+
+---
calling whatdependson for 11.4-i586
New:
mount.cifs-handle-errors-in-del_mtab.patch
mount.cifs-properly-update-mtab.patch
Other differences:
--
++ cifs-utils.spec ++
--- /var/tmp/diff_new_pack.ebBGPV/_old 2012-03-15 21:50:32.0 +0100
+++ /var/tmp/diff_new_pack.ebBGPV/_new 2012-03-15 21:50:32.0 +0100
@@ -20,7 +20,7 @@
Name: cifs-utils
Version:4.9
-Release:1.
+Release:1.
License:GPLv3+
Group: System/Filesystems
Url:http://www.samba.org/linux-cifs/cifs-utils/
@@ -28,6 +28,8 @@
Source1:cifs.init
Source2:mkinitrd_scripts_boot-cifs.sh
Source3:mkinitrd_scripts_setup-cifs.sh
+Patch1: mount.cifs-properly-update-mtab.patch
+Patch2: mount.cifs-handle-errors-in-del_mtab.patch
%if 0%{?suse_version}
PreReq: insserv %{?fillup_prereq} mkinitrd
%else
@@ -53,6 +55,8 @@
%prep
%setup -q
+%patch1 -p0
+%patch2 -p0
%build
%{?suse_update_config:%{suse_update_config -f}}
++ mount.cifs-handle-errors-in-del_mtab.patch ++
commit 92be8b6775958814d39fb19247ff85947a2e4f9e
Author: Jeff Layton
Date: Mon Jan 16 13:22:28 2012 -0500
mount.cifs: handle errors from rename() in del_mtab
The new del_mtab code ignored errors from rename(). Make it handle that
error as well like it does other errors.
Fixes bnc#747906.
Cc: Carlos Maiolino
Signed-off-by: Jeff Layton
---
mount.cifs.c |6 +-
1 files changed, 5 insertions(+), 1 deletions(-)
Index: mount.cifs.c
===
--- mount.cifs.c.orig
+++ mount.cifs.c
@@ -1592,7 +1592,11 @@ del_mtab(char *mountpoint)
endmntent(mntmtab);
- rename(mtabtmpfile, MOUNTED);
+ if (rename(mtabtmpfile, MOUNTED)) {
+ fprintf(stderr, "del_mtab: error %d when renaming mtab in
place\n", errno);
+ rc = EX_FILEIO;
+ goto del_mtab_error;
+ }
del_mtab_exit:
unlock_mtab();
++ mount.cifs-properly-update-mtab.patch ++
commit f46dd7661cfb87257c95081fc2071c934bfbbb16
Author: Carlos Maiolino
Date: Mon, 16 Jan 2012 12:29:49 -0500
mount.cifs: Properly update mtab during remount
During a remount of a cifs filesystem, the mtab file is not properly
updated, which leads to a doubled entry of the same filesystem in the
/etc/mtab file. This patch adds a new function del_mtab() which is
called before the add_mtab() in case the fs is being remounted.
The del_mtab() function will delete from the mtab, the old entry from
the filesystem which is being remounted, and then, calls add_mtab() to
add an updated entry to the mtab file.
Fixes bnc#747906.
Signed-off-by: Carlos Maiolino
---
mount.cifs.c | 99 +-
1 files changed, 98 insertions(+), 1 deletions(-)
Index: mount.cifs.c
===
--- mount.cifs.c.orig
+++ mount.cifs.c
@@ -42,6 +42,7 @@
#include
#include
#include
+#include
#include
#include
#ifdef HAVE_LIBCAP_NG
@@ -159,6 +160,7 @@
#define OPT_NOMAND 28
#define OPT_CRUID 29
+#define MNT_TMP_FILE "/.mtab.cifs.XX"
/* struct for holding parsed mount info for use by privleged process */
struct parsed_mount_info {
@@ -1523,6 +1525,87 @@ add_mtab_exit:
return rc;
}
+static int
+del_mtab(char *mountpoint)
+{
+ int tmprc, rc = 0;
+ FILE *mnttmp, *mntmtab;
+ struct mntent *mountent;
+ char *mtabfile, *mtabdir, *mtabtmpfile;
+
+ mtabfile = strdup(MOUNTED);
+ mtabdir = dirname(mtabfile);
+ mtabdir = realloc(mtabdir, strlen(mtabdir) + strlen(MNT_TMP_FILE) + 2);
+ if (!mtabdir) {
+ fprintf(stderr, "del_mtab: cannot determine current mtab path");
+ rc = EX_FILEIO;
+ goto del_mtab_exit;
+ }
+
+ mtabtmpfile = strcat(mtabdir, MNT_TMP_FILE);
+ if (!mtabtmpfile) {
+ fprintf(stderr, "del_mtab: cannot allocate memory to tmp file");
+ rc = EX_FILEIO;
+ goto del_mtab_exit;
+ }
+
+ atexit(unlock_mtab);
+ rc = lock_mtab();
+ if (rc) {
+ fprintf(stderr, "del_mtab: cannot lock mtab");
+ rc = EX_FILEIO;
+ goto del_mtab_exit;
+ }
+
+