summaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorChristian Zoffoli <xmerlin@gentoo.org>2005-03-25 02:19:14 +0000
committerChristian Zoffoli <xmerlin@gentoo.org>2005-03-25 02:19:14 +0000
commite0ccd33cfcfa4a4b67a76e266a3c366c3391e68b (patch)
tree1f739b8f40d57ce21dd60372271a9f1b211c80f6 /sys-fs
parentimproved init script (diff)
downloadhistorical-e0ccd33cfcfa4a4b67a76e266a3c366c3391e68b.tar.gz
historical-e0ccd33cfcfa4a4b67a76e266a3c366c3391e68b.tar.bz2
historical-e0ccd33cfcfa4a4b67a76e266a3c366c3391e68b.zip
improved init script
Package-Manager: portage-2.0.51.19
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/gfs/ChangeLog5
-rw-r--r--sys-fs/gfs/Manifest10
-rwxr-xr-xsys-fs/gfs/files/gfs.rc179
3 files changed, 121 insertions, 73 deletions
diff --git a/sys-fs/gfs/ChangeLog b/sys-fs/gfs/ChangeLog
index e4861ca2732c..70cc1ccf11bd 100644
--- a/sys-fs/gfs/ChangeLog
+++ b/sys-fs/gfs/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for sys-fs/gfs
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/gfs/ChangeLog,v 1.6 2005/03/23 14:35:55 xmerlin Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/gfs/ChangeLog,v 1.7 2005/03/25 02:19:14 xmerlin Exp $
+
+ 25 Mar 2005; Christian Zoffoli <xmerlin@gentoo.org> files/gfs.rc:
+ improved init script
23 Mar 2005; Christian Zoffoli <xmerlin@gentoo.org> files/gfs.rc:
added lock_harness module remove in init
diff --git a/sys-fs/gfs/Manifest b/sys-fs/gfs/Manifest
index 78eee15e4434..5fc919235d24 100644
--- a/sys-fs/gfs/Manifest
+++ b/sys-fs/gfs/Manifest
@@ -1,15 +1,15 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 2879068892d9e95d06a77f99dcd0eb0f ChangeLog 1128
+MD5 7933e2ddeecadeb5716d65efb2817180 ChangeLog 1220
MD5 816e1b389a361d9c9f0e2f405a3d2876 gfs-6.1_pre21.ebuild 1602
MD5 a64b9a1937a5cfc2fbaf373521f65d47 metadata.xml 223
MD5 8b61a396206c23d7fb8e1adad649f8b7 files/digest-gfs-6.1_pre21 65
-MD5 69c3fbab0dd277c7503f6bf2fb79d4e4 files/gfs.rc 2898
+MD5 a56e0428f812cc0b9a1967358124706e files/gfs.rc 4260
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
-iD8DBQFCQYblgMUyd/cdjWsRAr35AJwIt0YuuSYTCaJxcrItK9JBXcdPUgCdE8s+
-nzOZZl4aW3T/Ib89H06tx3Y=
-=8nad
+iD8DBQFCQ3U6gMUyd/cdjWsRAnT7AKCNGMR1F/uHqPPSzh8+SjMJOnsRXQCZAf9Q
+j0F+1zH9tqnF83y3JgVebCw=
+=bqzz
-----END PGP SIGNATURE-----
diff --git a/sys-fs/gfs/files/gfs.rc b/sys-fs/gfs/files/gfs.rc
index 7dc350e0f4c6..07130d2b3531 100755
--- a/sys-fs/gfs/files/gfs.rc
+++ b/sys-fs/gfs/files/gfs.rc
@@ -1,77 +1,71 @@
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/gfs/files/gfs.rc,v 1.3 2005/03/23 14:35:55 xmerlin Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/gfs/files/gfs.rc,v 1.4 2005/03/25 02:19:14 xmerlin Exp $
+
+opts="${opts} mountall"
depend() {
use dns logger
use net
+ after gnbd-client clvmd
need cluster-manager cluster-locking-manager fenced
provide cluster
}
-start() {
- einfo "Starting gfs cluster:"
-
- if [ ! -f /etc/ntp.conf ] ; then
- eerror "Please create /etc/ntp.conf"
- eerror "Sample conf: /usr/share/ntp/ntp.conf"
- eend 1
- fi
+mount_gfs_filesystems() {
+ local remaining=""
+ remaining="$(awk '!/^#/ && $3 ~ /gfs/ { if ($4 !~ "noauto") print $1 }' /etc/fstab)"
- local module
-
- # detect cluster/locking manager cman+dlm or gulm ?
- if [ -d /proc/cluster/config/cman ]; then
- if [ ! -d /proc/cluster/lock_dlm ]; then
- modules="${modules} lock_dlm"
- fi
- else
- if [ ! -d /proc/cluster/lock_gulm ]; then
- modules="${modules} lock_gulm"
- fi
- fi
-
- if [ ! -f /proc/fs/gfs ]; then
- modules="${modules} gfs"
- fi
+ if [ -n "${remaining}" ]; then
- for module in ${modules}; do
- ebegin "Loading ${module} kernel module"
- modprobe ${module}
+ local device=""
+ local remaining_verified=""
- if [ "$?" -ne 0 ]
- then
- ewend 1 "Failed to load ${module} kernel module"
+ for device in ${remaining}; do
+ if [ -b ${device} ]; then
+ remaining_verified="${remaining_verified} ${device}"
+ else
+ if [ $(echo "${device}" | awk '$1 ~ /\/dev\/gnbd/') ]; then
+ ewarn "Please start /etc/init.d/gnbd-client before trying to mount GNBDs devices"
+ else
+ if [ $(echo "${device}" | awk '$1 ~ /\/dev\/vg/') ]; then
+ ewarn "Please start /etc/init.d/clvmd before trying to mount LVM volumes"
+ fi
+ fi
+ fi
+ done
+
+ if [ -n "${remaining_verified}" ]; then
+ einfo "Mounting GFS filesystems"
+ device=""
+ for device in ${remaining_verified}; do
+ local target="$(awk '!/^#/ && $3 ~ /gfs/ { if ("$1" -eq "${device}" ) print $2 }' /etc/fstab)"
+ local mounted="$(awk '$3 ~ /gfs/ { if ("$1" -eq "${device}" ) print $2 }' /proc/mounts)"
+
+ # mount only filesystems not already mounted
+ if [ -z "${mounted}" ]; then
+ ebegin "--> mounting ${device} on ${target}"
+ mount -t gfs ${device} ${target} >/dev/null
+ eend $?
+ else
+ einfo "--> ${device} already mounted on ${target}"
+ eend 0
+ fi
+ done
else
- eend 0
+ einfo "No GFS filesystems to automount"
fi
- done
-
- ebegin "Mounting GFS filesystems"
- mount -at gfs >/dev/null
-
- if [ "$?" -ne 0 ]
- then
- ewend 1 "Could not mount all GFS filesystems!"
- else
- eend 0
fi
-
- return 0
}
-stop() {
- einfo "Stopping gfs cluster:"
-
+
+umount_gfs_filesystems() {
local sig retry
- local remaining="$(awk '$3 ~ /gfs/ { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"
+ local remaining="$(awk '$3 ~ /gfs/ { print $2 }' /proc/mounts | sort -r)"
- if [ -z "${remaining}" ]
+ if [ -n "${remaining}" ]
then
- ebegin "Unmounting GFS filesystems"
- eend 0
- else
sig=
retry=3
while [ -n "${remaining}" -a "${retry}" -gt 0 ]
@@ -94,12 +88,52 @@ stop() {
sig=-9
done
fi
+}
+
+load_modules() {
+ local module modules
+ modules=$1
+
+ for module in ${modules}; do
+ ebegin "Loading ${module} kernel module"
+ modprobe ${module}
+ eend $? "Failed to load ${module} kernel module"
+ done
+}
+unload_modules() {
local module modules
+ modules=$1
+
+ for module in ${modules}; do
+ ebegin "Unloading ${module} kernel module"
+ modprobe -r ${module}
+ eend $? "Failed to unload ${module} kernel module"
+ done
+}
+
+load_gfs_modules() {
+ local modules
+ # detect cluster/locking manager cman+dlm or gulm ?
+ if [ -d /proc/cluster/config/cman ]; then
+ if [ ! -d /proc/cluster/lock_dlm ]; then
+ modules="${modules} lock_dlm"
+ fi
+ else
+ if [ ! -d /proc/cluster/lock_gulm ]; then
+ modules="${modules} lock_gulm"
+ fi
+ fi
+ if [ ! -f /proc/fs/gfs ]; then
+ modules="${modules} gfs"
+ fi
+ load_modules ${modules}
+}
+
+unload_gfs_modules() {
if [ -f /proc/fs/gfs ]; then
- modules="gfs"
- modules="${modules} lock_harness"
+ modules="gfs lock_harness"
fi
if [ -d /proc/cluster/lock_dlm ]; then
modules="${modules} lock_dlm"
@@ -107,19 +141,30 @@ stop() {
if [ -d /proc/cluster/lock_gulm ]; then
modules="${modules} lock_gulm"
fi
+ unload_modules ${modules}
+}
+
+mountall() {
+ mount_gfs_filesystems
+}
+
+start() {
+ einfo "Starting gfs cluster:"
- local module
- for module in ${modules}; do
- ebegin "Unloading ${module} kernel module"
- modprobe -r ${module}
-
- if [ "$?" -ne 0 ]
- then
- ewend 1 "Failed to unload ${module} kernel module"
- else
- eend 0
- fi
- done
+ if [ ! -f /etc/ntp.conf ] ; then
+ eerror "Please create /etc/ntp.conf"
+ eerror "Sample conf: /usr/share/ntp/ntp.conf"
+ eend 1
+ fi
- return 0
+ load_gfs_modules
+ mount_gfs_filesystems
}
+
+stop() {
+ einfo "Stopping gfs cluster:"
+
+ umount_gfs_filesystems
+ unload_gfs_modules
+}
+