From 78e4d186cfa7b2db94cbe2090bb004c4da05056f Mon Sep 17 00:00:00 2001 From: Jiffin Tony Thottan Date: Mon, 28 Nov 2016 19:18:51 +0530 Subject: ganesha/scripts : avoid incrementing Export Id value for already exported volumes Currently a volume will unexport when it stops and reexport it during volume start using hook script. And also it increments the value for export id for each reexport. Since a hook script is called from every node parallely which may led inconsistency for export id value. Upstream reference : >Change-Id: Ib9f19a3172b2ade29a3b4edc908b3267c68c0b20 >BUG: 1399186 >Signed-off-by: Jiffin Tony Thottan >Reviewed-on: http://review.gluster.org/15948 >Smoke: Gluster Build System >NetBSD-regression: NetBSD Build System >CentOS-regression: Gluster Build System >Reviewed-by: soumya k >Reviewed-by: Kaleb KEITHLEY >(cherry picked from commit 76eef16d762f500df500de0d3187aff23dc39ac6) Change-Id: Ib9f19a3172b2ade29a3b4edc908b3267c68c0b20 BUG: 1401011 Signed-off-by: Jiffin Tony Thottan Reviewed-on: http://review.gluster.org/16013 Smoke: Gluster Build System CentOS-regression: Gluster Build System Reviewed-by: Kaleb KEITHLEY NetBSD-regression: NetBSD Build System --- extras/hook-scripts/start/post/S31ganesha-start.sh | 42 ++++++---------------- 1 file changed, 10 insertions(+), 32 deletions(-) (limited to 'extras') diff --git a/extras/hook-scripts/start/post/S31ganesha-start.sh b/extras/hook-scripts/start/post/S31ganesha-start.sh index 1bbeeab9567..0e98ec24d19 100755 --- a/extras/hook-scripts/start/post/S31ganesha-start.sh +++ b/extras/hook-scripts/start/post/S31ganesha-start.sh @@ -60,45 +60,15 @@ echo " SecType = \"sys\";" echo "}" } -#This function keeps track of export IDs and increments it with every new entry -#Also it adds the export dynamically by sending dbus signals +#It adds the export dynamically by sending dbus signals function export_add() { - count=`ls -l $GANESHA_DIR/exports/*.conf | wc -l` - if [ "$count" = "1" ] ; - then - EXPORT_ID=2 - else - #if [ -s /var/lib/ganesha/export_removed ]; - # then - # EXPORT_ID=`head -1 /var/lib/ganesha/export_removed` - # sed -i -e "1d" /var/lib/ganesha/export_removed - # else - - EXPORT_ID=`cat $GANESHA_DIR/.export_added` - EXPORT_ID=EXPORT_ID+1 - #fi - fi - echo $EXPORT_ID > $GANESHA_DIR/.export_added - sed -i s/Export_Id.*/"Export_Id=$EXPORT_ID;"/ \ -$GANESHA_DIR/exports/export.$VOL.conf - echo "%include \"$GANESHA_DIR/exports/export.$VOL.conf\"" >> $CONF1 - dbus-send --print-reply --system --dest=org.ganesha.nfsd \ /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.AddExport \ string:$GANESHA_DIR/exports/export.$VOL.conf string:"EXPORT(Export_Id=$EXPORT_ID)" } -function start_ganesha() -{ - #Remove export entry from nfs-ganesha.conf - sed -i /$VOL.conf/d $CONF1 - #Create a new export entry - export_add $VOL - -} - # based on src/scripts/ganeshactl/Ganesha/export_mgr.py function is_exported() { @@ -133,9 +103,17 @@ if ganesha_enabled ${VOL} && ! is_exported ${VOL} then if [ ! -e ${GANESHA_DIR}/exports/export.${VOL}.conf ] then + #Remove export entry from nfs-ganesha.conf + sed -i /$VOL.conf/d $CONF1 write_conf ${VOL} > ${GANESHA_DIR}/exports/export.${VOL}.conf + EXPORT_ID=`cat $GANESHA_DIR/.export_added` + EXPORT_ID=EXPORT_ID+1 + echo $EXPORT_ID > $GANESHA_DIR/.export_added + sed -i s/Export_Id.*/"Export_Id=$EXPORT_ID;"/ \ + $GANESHA_DIR/exports/export.$VOL.conf + echo "%include \"$GANESHA_DIR/exports/export.$VOL.conf\"" >> $CONF1 fi - start_ganesha ${VOL} + export_add $VOL fi exit 0 -- cgit