From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH] libxl, hotplug/Linux: default to phy backend for raw format file Date: Thu, 12 Sep 2013 16:23:07 +0100 Message-ID: <20130912152307.GD934@zion.uk.xensource.com> References: <1378390291-24368-1-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VK8zk-0002jr-Hh for xen-devel@lists.xenproject.org; Thu, 12 Sep 2013 15:39:48 +0000 Content-Disposition: inline In-Reply-To: <1378390291-24368-1-git-send-email-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Ian Jackson , Stefano Stabellini , Wei Liu , Roger Pau =?iso-8859-1?Q?Monn=E9?= List-Id: xen-devel@lists.xenproject.org Ping? On Thu, Sep 05, 2013 at 03:11:31PM +0100, Wei Liu wrote: > Modify libxl to allow raw format file to use phy backend. > = > For the hotplug script part, learn from NetBSD's block hotplug script -- > test the path and determine the actual type of file (block device or > regular file) then use the actual type to determine which branch to run. > = > With these changes, plus the current ordering of backend preference > (phy > qdisk > tap), we will use phy backend for raw format file by > default. > = > Signed-off-by: Wei Liu > Cc: Ian Jackson > Cc: Roger Pau Monn=E9 > Cc: Stefano Stabellini > --- > tools/hotplug/Linux/block | 16 +++++++++------- > tools/libxl/libxl_linux.c | 6 +++--- > 2 files changed, 12 insertions(+), 10 deletions(-) > = > diff --git a/tools/hotplug/Linux/block b/tools/hotplug/Linux/block > index da26e22..8d2ee9d 100644 > --- a/tools/hotplug/Linux/block > +++ b/tools/hotplug/Linux/block > @@ -206,6 +206,13 @@ and so cannot be mounted ${m2}${when}." > = > = > t=3D$(xenstore_read_default "$XENBUS_PATH/type" 'MISSING') > +p=3D$(xenstore_read "$XENBUS_PATH/params") > +mode=3D$(xenstore_read "$XENBUS_PATH/mode") > +if [ -b "$p" ]; then > + truetype=3D"phy" > +elif [ -f "$p" ]; then > + truetype=3D"file" > +fi > = > case "$command" in > add) > @@ -217,16 +224,11 @@ case "$command" in > exit 0 > fi > = > - if [ -n "$t" ] > - then > - p=3D$(xenstore_read "$XENBUS_PATH/params") > - mode=3D$(xenstore_read "$XENBUS_PATH/mode") > - fi > FRONTEND_ID=3D$(xenstore_read "$XENBUS_PATH/frontend-id") > FRONTEND_UUID=3D$(xenstore_read_default \ > "/local/domain/$FRONTEND_ID/vm" 'unknown') > = > - case $t in = > + case $truetype in > phy) > dev=3D$(expand_dev $p) > = > @@ -319,7 +321,7 @@ mount it read-write in a guest domain." > ;; > = > remove) > - case $t in = > + case $truetype in > phy) > exit 0 > ;; > diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c > index 37815eb..3cfa6da 100644 > --- a/tools/libxl/libxl_linux.c > +++ b/tools/libxl/libxl_linux.c > @@ -19,11 +19,11 @@ > = > int libxl__try_phy_backend(mode_t st_mode) > { > - if (!S_ISBLK(st_mode)) { > - return 0; > + if (S_ISBLK(st_mode) || S_ISREG(st_mode)) { > + return 1; > } > = > - return 1; > + return 0; > } > = > #define EXT_SHIFT 28 > -- = > 1.7.10.4