From: Steven Whitehouse <swhiteho@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH 01/15] GFS2: Add online uevent to GFS2
Date: Thu, 10 Sep 2009 12:27:53 +0100 [thread overview]
Message-ID: <1252582087-10007-2-git-send-email-swhiteho@redhat.com> (raw)
In-Reply-To: <1252582087-10007-1-git-send-email-swhiteho@redhat.com>
We already have an offline uevent (used when a withdraw occurs)
but no online uevent. This adds an online uevent so that userspace
will be able to detect a successful mount by means other than
not receiving a remove event after the add & recovery (change)
uevents.
It has also been added to the remount path as well - we can't use
a change uevent there as older GFS2 userspace acts on change uevents
according to the state that it thinks the fs is in, so we can't
easily add any new ones.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
---
fs/gfs2/ops_fstype.c | 13 ++++++++++++-
fs/gfs2/super.c | 1 +
fs/gfs2/super.h | 4 ++--
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 7bc3c45..39021c0 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -1133,6 +1133,17 @@ void gfs2_lm_unmount(struct gfs2_sbd *sdp)
lm->lm_unmount(sdp);
}
+void gfs2_online_uevent(struct gfs2_sbd *sdp)
+{
+ struct super_block *sb = sdp->sd_vfs;
+ char ro[20];
+ char spectator[20];
+ char *envp[] = { ro, spectator, NULL };
+ sprintf(ro, "RDONLY=%d", (sb->s_flags & MS_RDONLY) ? 1 : 0);
+ sprintf(spectator, "SPECTATOR=%d", sdp->sd_args.ar_spectator ? 1 : 0);
+ kobject_uevent_env(&sdp->sd_kobj, KOBJ_ONLINE, envp);
+}
+
/**
* fill_super - Read in superblock
* @sb: The VFS superblock
@@ -1236,7 +1247,7 @@ static int fill_super(struct super_block *sb, void *data, int silent)
}
gfs2_glock_dq_uninit(&mount_gh);
-
+ gfs2_online_uevent(sdp);
return 0;
fail_threads:
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index f522bb0..85bd2bc 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -1084,6 +1084,7 @@ static int gfs2_remount_fs(struct super_block *sb, int *flags, char *data)
gt->gt_log_flush_secs = args.ar_commit;
spin_unlock(>->gt_spin);
+ gfs2_online_uevent(sdp);
return 0;
}
diff --git a/fs/gfs2/super.h b/fs/gfs2/super.h
index 22e0417..911c954 100644
--- a/fs/gfs2/super.h
+++ b/fs/gfs2/super.h
@@ -25,7 +25,7 @@ static inline unsigned int gfs2_jindex_size(struct gfs2_sbd *sdp)
return x;
}
-void gfs2_jindex_free(struct gfs2_sbd *sdp);
+extern void gfs2_jindex_free(struct gfs2_sbd *sdp);
extern int gfs2_mount_args(struct gfs2_sbd *sdp, struct gfs2_args *args, char *data);
@@ -36,7 +36,7 @@ extern int gfs2_lookup_in_master_dir(struct gfs2_sbd *sdp, char *filename,
struct gfs2_inode **ipp);
extern int gfs2_make_fs_rw(struct gfs2_sbd *sdp);
-
+extern void gfs2_online_uevent(struct gfs2_sbd *sdp);
extern int gfs2_statfs_init(struct gfs2_sbd *sdp);
extern void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free,
s64 dinodes);
--
1.6.2.5
next prev parent reply other threads:[~2009-09-10 11:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-10 11:27 [Cluster-devel] GFS2: Pre-pull patch posting Steven Whitehouse
2009-09-10 11:27 ` Steven Whitehouse [this message]
2009-09-10 11:27 ` [Cluster-devel] [PATCH 02/15] GFS2: Add some more info to uevents Steven Whitehouse
2009-09-10 11:27 ` [Cluster-devel] [PATCH 03/15] GFS2: Improve error handling in inode allocation Steven Whitehouse
2009-09-10 11:27 ` [Cluster-devel] [PATCH 04/15] GFS2: Replace assertion with proper error handling Steven Whitehouse
2009-09-10 11:27 ` [Cluster-devel] [PATCH 05/15] GFS2: Add sysfs link to device Steven Whitehouse
2009-09-10 11:27 ` [Cluster-devel] [PATCH 06/15] GFS2: Add a document explaining GFS2's uevents Steven Whitehouse
2009-09-10 11:27 ` [Cluster-devel] [PATCH 07/15] GFS2: free disk inode which is deleted by remote node -V2 Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 08/15] GFS2: jumping to wrong label? Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 09/15] GFS2: Add "-o errors=panic|withdraw" mount options Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 10/15] GFS2: Add explanation of extended attr on-disk format Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 11/15] GFS2: Clean up of extended attribute support Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 12/15] GFS2: Rename eattr.[ch] as xattr.[ch] Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 13/15] GFS2: Remove no_formal_ino generating code Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 14/15] GFS2: Be extra careful about deallocating inodes Steven Whitehouse
2009-09-10 11:28 ` [Cluster-devel] [PATCH 15/15] GFS2: Remove unused sysfs file Steven Whitehouse
[not found] ` <1252593990.30578.180.camel@desktop>
2009-09-14 7:57 ` [Cluster-devel] Re: GFS2: Pre-pull patch posting Steven Whitehouse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1252582087-10007-2-git-send-email-swhiteho@redhat.com \
--to=swhiteho@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).