[Ocfs2-tools-devel] [RESEND][PATCH] Improvement to tunefs.ocfs2 online resize to handle symbolic link
Jiaju Zhang
jjzhang.linux at gmail.com
Fri Mar 19 02:46:48 PDT 2010
On Thu, Mar 18, 2010 at 03:21:44PM -0700, Joel Becker wrote:
>
> I think you are on track, but you need to be more specific in
> your error checking. Each stat call should be checked for error and
> fill_error() called. If they both succeed, then you can compare the
> rdevs.
Many thanks for your comments;-)
Here is the improved patch.
Thanks,
Jiaju
---
ocfs2_controld/mount.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/ocfs2_controld/mount.c b/ocfs2_controld/mount.c
index 36459d1..40d7670 100644
--- a/ocfs2_controld/mount.c
+++ b/ocfs2_controld/mount.c
@@ -260,11 +260,22 @@ 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",
service, device, mg->mg_uuid);
- if (strcmp(mg->mg_device, device)) {
+ if (stat(mg->mg_device, &st1)) {
+ fill_error(mg, errno, "Failed to stat on device %s", mg->mg_device);
+ return;
+ }
+
+ if (stat(device, &st2)) {
+ fill_error(mg, errno, "Failed to stat on device %s", device);
+ 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",
mg->mg_uuid, device, mg->mg_device);
More information about the Ocfs2-tools-devel
mailing list