Current mgsdevname() prints names of block devices (or files for loop
devices) regardless of MGS back end types. This is plainly a
violation of what the function is expected to do. If an MGS is
ZFS-based, mgsdevname() should print the dataset name instead of the
VDev names. This patch fixes the regression and makes sure that
mgsdevname() and mgsvdevname() work for both standalone and
MDT-combined MGSs.
Signed-off-by: Li Wei <wei.g.li@intel.com>
Change-Id: I5885af48e811fcd98aa00c5d901db30e5837b505
Signed-off-by: Li Wei <wei.g.li@intel.com>
Reviewed-on: http://review.whamcloud.com/4950
Tested-by: Hudson
Reviewed-by: Jian Yu <jian.yu@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: wangdi <di.wang@intel.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
+ if [[ $facet == mgs ]] && combined_mgs_mds; then
+ facet_fstype mds1
+ return
+ fi
+
- local DEVNAME=MGSDEV
- local MDSDEV1=$(mdsdevname 1)
-
- local fstype=$(facet_fstype mds1)
+ local DEVPTR
+ local fstype=$(facet_fstype mgs)
- ldiskfs|zfs )
- #if $MGSDEV isn't defined, default is $MDSDEV1
- #ZFS independent mgsdev should be ${FSNAME}-mgs/mgs
- eval DEVPTR=${!DEVNAME:=${MDSDEV1}};;
- * )
- error "unknown fstype!";;
+ ldiskfs )
+ if [ $(facet_host mgs) = $(facet_host mds1) ] &&
+ ( [ -z "$MGSDEV" ] || [ $MGSDEV = $(mdsdevname 1) ] ); then
+ DEVPTR=$(mdsdevname 1)
+ else
+ DEVPTR=$MGSDEV
+ fi;;
+ zfs )
+ if [ $(facet_host mgs) = $(facet_host mds1) ] &&
+ ( [ -z "$MGSDEV" ] || [ $MGSDEV = $(mdsvdevname 1) ] ); then
+ DEVPTR=$(mdsdevname 1)
+ else
+ DEVPTR=${FSNAME}-mgs/mgs
+ fi;;
+ * )
+ error "unknown fstype!";;
- local fstype=$(facet_fstype mds1)
+ local fstype=$(facet_fstype mgs)
- ldiskfs )
- # vdevs are not supported by ldiskfs
- eval VDEVPTR="";;
- zfs )
- #if $MGSDEV isn't defined, default is $MGSDEV1
- eval VDEVPTR=${!DEVNAME:=${MDSDEV1}};;
- * )
- error "unknown fstype!";;
+ ldiskfs )
+ # vdevs are not supported by ldiskfs
+ ;;
+ zfs )
+ if [ $(facet_host mgs) = $(facet_host mds1) ] &&
+ ( [ -z "$MGSDEV" ] || [ $MGSDEV = $(mdsvdevname 1) ] ); then
+ VDEVPTR=$(mdsvdevname 1)
+ else
+ VDEVPTR=$MGSDEV
+ fi;;
+ * )
+ error "unknown fstype!";;