Date: Fri, 20 Aug 2010 11:31:51 GMT From: Kenneth Vestergaard <kvs@binarysolutions.dk> To: freebsd-gnats-submit@FreeBSD.org Subject: misc/149831: [PATCH] add support to /etc/rc.d/jail for delegating ZFS-filesystems to jails Message-ID: <201008201131.o7KBVpeB028062@www.freebsd.org> Resent-Message-ID: <201008201140.o7KBe11U080106@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 149831 >Category: misc >Synopsis: [PATCH] add support to /etc/rc.d/jail for delegating ZFS-filesystems to jails >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Fri Aug 20 11:40:01 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Kenneth Vestergaard >Release: 8.1-RELEASE >Organization: pil.dk >Environment: FreeBSD mckusick.pil.dk 8.1-RELEASE FreeBSD 8.1-RELEASE #12: Fri Aug 6 00:18:40 CEST 2010 root@mckusick.pil.dk:/usr/obj/dana/src/freebsd8/src/sys/MCKUSICK amd64 >Description: A simple patch adding an rc.conf-variable to make /etc/rc.d/jail run 'zfs jail $jid' on all filesystems with 'jailed=on' set beneath the path specified in jail_$name_delegate_path. >How-To-Repeat: >Fix: Patch attached with submission follows: # $PIL$ Add a jail_NAME_delegate_path-variable to rc.conf, which'll delegate all jailed zfs's under that path to the newly-started jail. --- src/etc/rc.d/jail.orig 2010-08-20 12:15:24.720731927 +0200 +++ src/etc/rc.d/jail 2010-08-20 13:16:24.744226221 +0200 @@ -41,6 +41,7 @@ eval _ip=\"\$jail_${_j}_ip\" eval _interface=\"\${jail_${_j}_interface:-${jail_interface}}\" eval _exec=\"\$jail_${_j}_exec\" + eval _delegate_path=\"\$jail_${_j}_delegate_path\" i=0 while : ; do @@ -132,6 +133,7 @@ debug "$_j procdir: $_procdir" debug "$_j ruleset: $_ruleset" debug "$_j fstab: $_fstab" + debug "$_j delegate_path: $_delegate_path" i=0 while : ; do @@ -640,6 +642,14 @@ if [ "$?" -eq 0 ] ; then _jail_id=$(head -1 ${_tmp_jail}) + + if [ ! -z "${_delegate_path}" ] ; then + /sbin/zfs get -s local -rH -o name,value jailed ${_delegate_path} | \ + /usr/bin/awk '$2 == "on" { print $1 }' | \ + /usr/bin/xargs -I % /sbin/zfs jail ${_jail_id} % + jail -m jid=${_jail_id} allow.mount=1 + fi + i=1 while : ; do eval out=\"\${_exec_afterstart${i}:-''}\" >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008201131.o7KBVpeB028062>