diff options
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/ops_fstype.c | 13 | ||||
-rw-r--r-- | fs/gfs2/super.c | 1 | ||||
-rw-r--r-- | 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 7bc3c45cd676..39021c020176 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) | |||
1133 | lm->lm_unmount(sdp); | 1133 | lm->lm_unmount(sdp); |
1134 | } | 1134 | } |
1135 | 1135 | ||
1136 | void gfs2_online_uevent(struct gfs2_sbd *sdp) | ||
1137 | { | ||
1138 | struct super_block *sb = sdp->sd_vfs; | ||
1139 | char ro[20]; | ||
1140 | char spectator[20]; | ||
1141 | char *envp[] = { ro, spectator, NULL }; | ||
1142 | sprintf(ro, "RDONLY=%d", (sb->s_flags & MS_RDONLY) ? 1 : 0); | ||
1143 | sprintf(spectator, "SPECTATOR=%d", sdp->sd_args.ar_spectator ? 1 : 0); | ||
1144 | kobject_uevent_env(&sdp->sd_kobj, KOBJ_ONLINE, envp); | ||
1145 | } | ||
1146 | |||
1136 | /** | 1147 | /** |
1137 | * fill_super - Read in superblock | 1148 | * fill_super - Read in superblock |
1138 | * @sb: The VFS superblock | 1149 | * @sb: The VFS superblock |
@@ -1236,7 +1247,7 @@ static int fill_super(struct super_block *sb, void *data, int silent) | |||
1236 | } | 1247 | } |
1237 | 1248 | ||
1238 | gfs2_glock_dq_uninit(&mount_gh); | 1249 | gfs2_glock_dq_uninit(&mount_gh); |
1239 | 1250 | gfs2_online_uevent(sdp); | |
1240 | return 0; | 1251 | return 0; |
1241 | 1252 | ||
1242 | fail_threads: | 1253 | fail_threads: |
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index f522bb017973..85bd2bc8c1de 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) | |||
1084 | gt->gt_log_flush_secs = args.ar_commit; | 1084 | gt->gt_log_flush_secs = args.ar_commit; |
1085 | spin_unlock(>->gt_spin); | 1085 | spin_unlock(>->gt_spin); |
1086 | 1086 | ||
1087 | gfs2_online_uevent(sdp); | ||
1087 | return 0; | 1088 | return 0; |
1088 | } | 1089 | } |
1089 | 1090 | ||
diff --git a/fs/gfs2/super.h b/fs/gfs2/super.h index 22e0417ed996..911c954cefbd 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) | |||
25 | return x; | 25 | return x; |
26 | } | 26 | } |
27 | 27 | ||
28 | void gfs2_jindex_free(struct gfs2_sbd *sdp); | 28 | extern void gfs2_jindex_free(struct gfs2_sbd *sdp); |
29 | 29 | ||
30 | extern int gfs2_mount_args(struct gfs2_sbd *sdp, struct gfs2_args *args, char *data); | 30 | extern int gfs2_mount_args(struct gfs2_sbd *sdp, struct gfs2_args *args, char *data); |
31 | 31 | ||
@@ -36,7 +36,7 @@ extern int gfs2_lookup_in_master_dir(struct gfs2_sbd *sdp, char *filename, | |||
36 | struct gfs2_inode **ipp); | 36 | struct gfs2_inode **ipp); |
37 | 37 | ||
38 | extern int gfs2_make_fs_rw(struct gfs2_sbd *sdp); | 38 | extern int gfs2_make_fs_rw(struct gfs2_sbd *sdp); |
39 | 39 | extern void gfs2_online_uevent(struct gfs2_sbd *sdp); | |
40 | extern int gfs2_statfs_init(struct gfs2_sbd *sdp); | 40 | extern int gfs2_statfs_init(struct gfs2_sbd *sdp); |
41 | extern void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free, | 41 | extern void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free, |
42 | s64 dinodes); | 42 | s64 dinodes); |