From: zkabelac@sourceware.org <zkabelac@sourceware.org>
To: lvm-devel@redhat.com
Subject: LVM2 ./WHATS_NEW scripts/fsadm.sh
Date: 8 Oct 2010 14:55:22 -0000 [thread overview]
Message-ID: <20101008145522.31858.qmail@sourceware.org> (raw)
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac at sourceware.org 2010-10-08 14:55:20
Modified files:
. : WHATS_NEW
scripts : fsadm.sh
Log message:
Fix detection of mounted filesystem.
Update the way how fsadm detects mounted filesystem.
With udev /dev/dm-XXX paths are now returned - but mount or /proc/mounts
prints names in form of /dev/mapper/vg-lv - so the match was not found.
Fixex RHBZ #638050.
Current solution uses same trick as mount and detects vg-lv name through
/sys where available - this should be reasonable safe.
Instead of calling mount without parameter to get actual mount table,
switch to use /proc/mounts directly.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1751&r2=1.1752
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/scripts/fsadm.sh.diff?cvsroot=lvm2&r1=1.17&r2=1.18
--- LVM2/WHATS_NEW 2010/10/08 14:49:25 1.1751
+++ LVM2/WHATS_NEW 2010/10/08 14:55:19 1.1752
@@ -1,5 +1,6 @@
Version 2.02.75 -
=====================================
+ Fix detection of mounted filesystems for fsadm when udev is used.
Fix assignment of default value to LVM variable is fsadm.
Fix support for --yes flag for fsadm.
Do not execute lvresize with --dry-run option for fsadm.
--- LVM2/scripts/fsadm.sh 2010/10/08 14:49:26 1.17
+++ LVM2/scripts/fsadm.sh 2010/10/08 14:55:20 1.18
@@ -65,6 +65,7 @@
MOUNTPOINT=
MOUNTED=
REMOUNT=
+PROCMOUNTS="/proc/mounts"
IFS_OLD=$IFS
# without bash $'\n'
@@ -164,10 +165,15 @@
# detect filesystem on the given device
# dereference device name if it is symbolic link
detect_fs() {
- VOLUME=${1#/dev/}
+ VOLUME_ORIG=$1
+ VOLUME=${1#/dev/}
VOLUME=$($READLINK $READLINK_E "/dev/$VOLUME") || error "Cannot get readlink $1"
- # strip newline from volume name
- VOLUME=${VOLUME%%$NL}
+ RVOLUME=$VOLUME
+ case "$RVOLUME" in
+ /dev/dm-[0-9]*)
+ read </sys/block/${RVOLUME#/dev/}/dm/name SYSVOLUME 2>&1 && VOLUME="/dev/mapper/$SYSVOLUME"
+ ;;
+ esac
# use /dev/null as cache file to be sure about the result
# not using option '-o value' to be compatible with older version of blkid
FSTYPE=$($BLKID -c /dev/null -s TYPE "$VOLUME") || error "Cannot get FSTYPE of \"$VOLUME\""
@@ -177,11 +183,19 @@
}
# check if the given device is already mounted and where
+# FIXME: resolve swap usage and device stacking
detect_mounted() {
- $MOUNT >/dev/null || error "Cannot detect mounted device $VOLUME"
- MOUNTED=$($MOUNT | $GREP "$VOLUME")
- MOUNTED=${MOUNTED##* on }
- MOUNTED=${MOUNTED% type *} # allow type in the mount name
+ test -e $PROCMOUNTS || error "Cannot detect mounted device $VOLUME"
+
+ MOUNTED=$($GREP ^"$VOLUME" $PROCMOUNTS)
+
+ # for empty string try again with real volume name
+ test -z "$MOUNTED" && MOUNTED=$($GREP ^"$RVOLUME" $PROCMOUNTS)
+
+ # cut device name prefix and trim everything past mountpoint
+ # echo translates \040 to spaces
+ MOUNTED=${MOUNTED#* }
+ MOUNTED=$(echo -n -e ${MOUNTED%% *})
test -n "$MOUNTED"
}
next reply other threads:[~2010-10-08 14:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-08 14:55 zkabelac [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-03-16 12:53 LVM2 ./WHATS_NEW scripts/fsadm.sh zkabelac
2011-09-19 14:52 zkabelac
2011-09-19 13:51 zkabelac
2011-09-19 13:47 zkabelac
2011-09-19 13:43 zkabelac
2010-11-10 16:14 zkabelac
2010-11-01 14:08 zkabelac
2010-10-08 15:02 zkabelac
2010-10-08 15:00 zkabelac
2010-10-08 14:49 zkabelac
2010-10-08 13:49 zkabelac
2010-10-08 13:47 zkabelac
2010-10-08 12:36 zkabelac
2009-06-09 15:31 zkabelac
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=20101008145522.31858.qmail@sourceware.org \
--to=zkabelac@sourceware.org \
--cc=lvm-devel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.