public inbox for lvm2-cvs@sourceware.org help / color / mirror / Atom feed
From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW scripts/fsadm.sh Date: Fri, 08 Oct 2010 14:55:00 -0000 [thread overview] Message-ID: <20101008145522.31858.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@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 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 \ --cc=lvm2-cvs@sourceware.org \ /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: linkBe 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 read-only IMAP folder(s) and NNTP newsgroup(s).