[Ocfs2-tools-devel] [PATCH V2] Improvement to tunefs.ocfs2 online resize to handle symbolic link

Jiaju Zhang jjzhang.linux at gmail.com
Wed Apr 14 05:59:06 PDT 2010


Hi,

This is a reminder to avoid the following patch being missed in the
tree ;-) Per the disscussion we have had serveral weeks before, it
will be good to the cLVM/device-mapper users when they want to do
online resize. Can we agree on this patch? 

Thanks,
Jiaju

Signed-off-by: Jiaju Zhang <jjzhang at suse.de>
---
 ocfs2_controld/mount.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/ocfs2_controld/mount.c b/ocfs2_controld/mount.c
index 36459d1..797b66f 100644
--- a/ocfs2_controld/mount.c
+++ b/ocfs2_controld/mount.c
@@ -260,13 +260,27 @@ static void add_service(struct mountgroup *mg, const char *device,
 			   const char *service, int ci, int fd)
 {
 	struct service *ms;
+	struct stat st1, st2;
 
-	log_debug("Adding service %s to device %s uuid %s",
+	log_debug("Adding service \"%s\" to device \"%s\" uuid \"%s\"",
 		  service, device, mg->mg_uuid);
 
-	if (strcmp(mg->mg_device, device)) {
+	if (stat(mg->mg_device, &st1)) {
+		fill_error(mg, errno, "Failed to stat device \"%s\": %s",
+			   mg->mg_device, strerror(errno));
+		return;
+	}
+
+	if (stat(device, &st2)) {
+		fill_error(mg, errno, "Failed to stat device \"%s\": %s",
+			   device, strerror(errno));
+		return;
+	}
+
+	if (st1.st_rdev != st2.st_rdev) {
 		fill_error(mg, EINVAL,
-			   "Trying to mount fs %s on device %s, but it is already mounted from device %s",
+			   "Trying to mount fs \"%s\" on device \"%s\", "
+			   "but it is already mounted from device \"%s\"",
 			   mg->mg_uuid, device, mg->mg_device);
 		return;
 	}



More information about the Ocfs2-tools-devel mailing list