Gitweb:
http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=8bcc1da2f3f8e5...
Commit: 8bcc1da2f3f8e5f62af7b9e3a0967f7d1a60b582
Parent: 142c4bf9f04a46daf1c3d94581b43ec7c481ba59
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Jan 22 11:25:02 2013 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Jan 22 11:25:02 2013 +0100
locales: use higher prio LC_ALL variable
For reseting locale environment into significantly less memory
consuming version 'C' - use LC_ALL instead of LANG since it has
higher priority in locale settings.
Otherwise we may observe whole locale-archive which might be
over 100MB on i.e. Fedora systems locked in memory with
some daemons.
---
WHATS_NEW | 1 +
daemons/clvmd/clvmd.c | 4 ++--
daemons/dmeventd/dmeventd.c | 4 ++--
libdaemon/server/daemon-server.c | 4 ++--
scripts/fsadm.sh | 14 +++++++-------
5 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 987cefa..11afee7 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.99 -
===================================
+ Set locales with LC_ALL instead of lower priority LANG variable.
Fix a crash-inducing race condition in lvmetad.
Add log/debug_classes to lvm.conf to control debug log messages.
Synchronize with udev in pvscan --cache and fix dangling udev_sync cookies.
diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
index 398e1a4..54cf1ac 100644
--- a/daemons/clvmd/clvmd.c
+++ b/daemons/clvmd/clvmd.c
@@ -440,8 +440,8 @@ int main(int argc, char *argv[])
* used by some glibc (on some distributions it takes over 100MB).
* Daemon currently needs to use mlockall().
*/
- if (setenv("LANG", "C", 1))
- perror("Cannot set LANG to C");
+ if (setenv("LC_ALL", "C", 1))
+ perror("Cannot set LC_ALL to C");
/* Setting debug options on an existing clvmd */
if (debug_opt && !check_local_clvmd()) {
diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index 5f2339f..55b940f 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -1965,8 +1965,8 @@ int main(int argc, char *argv[])
* used by some glibc (on some distributions it takes over 100MB).
* Daemon currently needs to use mlockall().
*/
- if (setenv("LANG", "C", 1))
- perror("Cannot set LANG to C");
+ if (setenv("LC_ALL", "C", 1))
+ perror("Cannot set LC_ALL to C");
if (_restart)
restart();
diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c
index 0237465..735a0ea 100644
--- a/libdaemon/server/daemon-server.c
+++ b/libdaemon/server/daemon-server.c
@@ -456,8 +456,8 @@ void daemon_start(daemon_state s)
* some glibc (on some distributions it takes over 100MB). Some daemons
* need to use mlockall().
*/
- if (setenv("LANG", "C", 1))
- perror("Cannot set LANG to C");
+ if (setenv("LC_ALL", "C", 1))
+ perror("Cannot set LC_ALL to C");
#ifdef linux
_systemd_activation = _systemd_handover(&s);
diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh
index 4624a1c..1e8a22a 100755
--- a/scripts/fsadm.sh
+++ b/scripts/fsadm.sh
@@ -213,8 +213,8 @@ detect_mounted() {
# for systems with different device names - check also mount output
if test -z "$MOUNTED" ; then
- MOUNTED=$(LANG=C "$MOUNT" | "$GREP" "^$VOLUME[ \t]")
- test -z "$MOUNTED" && MOUNTED=$(LANG=C "$MOUNT" |
"$GREP" "^$RVOLUME[ \t]")
+ MOUNTED=$(LC_ALL=C "$MOUNT" | "$GREP" "^$VOLUME[ \t]")
+ test -z "$MOUNTED" && MOUNTED=$(LC_ALL=C "$MOUNT" |
"$GREP" "^$RVOLUME[ \t]")
MOUNTED=${MOUNTED##* on }
MOUNTED=${MOUNTED% type *} # allow type in the mount name
fi
@@ -283,7 +283,7 @@ validate_parsing() {
####################################
resize_ext() {
verbose "Parsing $TUNE_EXT -l \"$VOLUME\""
- for i in $(LANG=C "$TUNE_EXT" -l "$VOLUME"); do
+ for i in $(LC_ALL=C "$TUNE_EXT" -l "$VOLUME"); do
case "$i" in
"Block size"*) BLOCKSIZE=${i##* } ;;
"Block count"*) BLOCKCOUNT=${i##* } ;;
@@ -318,7 +318,7 @@ resize_reiser() {
detect_mounted && verbose "ReiserFS resizes only unmounted filesystem"
&& try_umount
REMOUNT=$MOUNTED
verbose "Parsing $TUNE_REISER \"$VOLUME\""
- for i in $(LANG=C "$TUNE_REISER" "$VOLUME"); do
+ for i in $(LC_ALL=C "$TUNE_REISER" "$VOLUME"); do
case "$i" in
"Blocksize"*) BLOCKSIZE=${i##*: } ;;
"Count of blocks"*) BLOCKCOUNT=${i##*: } ;;
@@ -347,7 +347,7 @@ resize_xfs() {
temp_mount || error "Cannot mount Xfs filesystem"
fi
verbose "Parsing $TUNE_XFS \"$MOUNTPOINT\""
- for i in $(LANG=C "$TUNE_XFS" "$MOUNTPOINT"); do
+ for i in $(LC_ALL=C "$TUNE_XFS" "$MOUNTPOINT"); do
case "$i" in
"data"*) BLOCKSIZE=${i##*bsize=} ; BLOCKCOUNT=${i##*blocks=} ;;
esac
@@ -389,7 +389,7 @@ resize() {
####################################
# Calclulate diff between two dates
-# LANG=C input is expected the
+# LC_ALL=C input is expected the
# only one supported
####################################
diff_dates() {
@@ -410,7 +410,7 @@ check() {
"ext2"|"ext3"|"ext4")
IFS_CHECK=$IFS
IFS=$NL
- for i in $(LANG=C "$TUNE_EXT" -l "$VOLUME"); do
+ for i in $(LC_ALL=C "$TUNE_EXT" -l "$VOLUME"); do
case "$i" in
"Last mount"*) LASTMOUNT=${i##*: } ;;
"Last checked"*) LASTCHECKED=${i##*: } ;;