On Fri, Nov 22, 2019 at 09:15:34AM -0500, Alexander Aring wrote:
> This patch adds additional client specifications for the nfsroot mount.
> The default value is the same as it was hardcoded before. This offers to
> change this line without maintaining the whole file in a separate BSP.
> 
> The client specifications is part of the official export format which is
> set right after the directory which is exported, for more information
> lookup:
> 
> https://linux.die.net/man/8/unfsd
> 
> Signed-off-by: Alexander Aring <[email protected]>
> ---
>  config/boardsetup/Kconfig     | 17 +++++++++++++++++
>  scripts/lib/ptxd_make_nfsd.sh |  7 ++++++-
>  2 files changed, 23 insertions(+), 1 deletion(-)
> 
> diff --git a/config/boardsetup/Kconfig b/config/boardsetup/Kconfig
> index 8ffa27224..2d3791807 100644
> --- a/config/boardsetup/Kconfig
> +++ b/config/boardsetup/Kconfig
> @@ -39,6 +39,23 @@ config BOARDSETUP_NFSROOT_PATH
>         above given path is exported by nfs server. This field will be ignored
>         if you don't use nfsroot.
>  
> +config BOARDSETUP_NFSROOT_CLIENT_SPECIFICATIONS
> +     string
> +     prompt "nfsroot client specifications"
> +     default "(rw,no_root_squash)"
> +     help
> +       Specify the list of client specifications for the nfsroot export.
> +       Example: "1.2.3.4(rw) 192.168.2.0/24(ro,all_squash)"
> +
> +       Clients can be specified using either a hostname, an IP address, or 
> an IP
> +       network. Networks can be given by specifying the number of leading 1 
> bits
> +       in the netmask or by giving the full netmask. If the hostname is 
> empty, the
> +       directory is exported to everyone.
> +
> +       Options can follow a client specification and have to be enclosed in
> +       parenthesis, with the opening paren directly following the client 
> name or
> +       address. If no options are given, ro and root_squash are enabled by 
> default.
> +
>  config BOARDSETUP_TFTP_PATH
>       string
>       prompt "tftp path"
> diff --git a/scripts/lib/ptxd_make_nfsd.sh b/scripts/lib/ptxd_make_nfsd.sh
> index 0bc9c906b..f7d8136d0 100644
> --- a/scripts/lib/ptxd_make_nfsd.sh
> +++ b/scripts/lib/ptxd_make_nfsd.sh
> @@ -8,6 +8,7 @@
>  
>  ptxd_make_nfsd_exec() {
>      local port
> +    local client_specficiations

                       ^-- typo alert, but seems to be consistent
                           nevertheless :)

 - Roland

>      local root="/$(basename "${ptx_nfsroot}")"
>      local base="$(dirname "${ptx_nfsroot}")"
>  
> @@ -15,11 +16,15 @@ ptxd_make_nfsd_exec() {
>       port=2049
>      fi
>  
> +    if ! client_specficiations="$(ptxd_get_kconfig "${PTXDIST_BOARDSETUP}" 
> "PTXCONF_BOARDSETUP_NFSROOT_CLIENT_SPECIFICATIONS")"; then
> +     client_specficiations="(rw,no_root_squash)"
> +    fi
> +
>      echo
>      echo "Mount rootfs with 
> nfsroot=${root},v3,tcp,port=${port},mountport=${port}"
>      echo
>  
> -    echo "/ (rw,no_root_squash)" > "${PTXDIST_TEMPDIR}/exports" &&
> +    echo "/ ${client_specficiations}" > "${PTXDIST_TEMPDIR}/exports" &&
>      UNFS_BASE="${base}" unfsd -e "${PTXDIST_TEMPDIR}/exports" -n ${port} -m 
> ${port} -p -d
>  }
>  export -f ptxd_make_nfsd_exec
> -- 
> 2.20.1
> 
> 
> _______________________________________________
> ptxdist mailing list
> [email protected]
> 

-- 
Roland Hieber, Pengutronix e.K.          | [email protected]     |
Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to