Re: [PATCH 11/11] defaultenv-2: add symbolic link support to boot/nfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 15:49 Sat 08 Sep     , Sascha Hauer wrote:
> On Fri, Sep 07, 2012 at 02:13:37PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > If the symlink is not find on barebox try on the host.
> > So we are back compatible with nfs command.
> > 
> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx>
> > ---
> >  defaultenv-2/base/boot/nfs |   64 +++++++++++++++++++++++++++++++++++++++++---
> >  1 file changed, 61 insertions(+), 3 deletions(-)
> > 
> > diff --git a/defaultenv-2/base/boot/nfs b/defaultenv-2/base/boot/nfs
> > index 892f103..bf27d38 100644
> > --- a/defaultenv-2/base/boot/nfs
> > +++ b/defaultenv-2/base/boot/nfs
> > @@ -5,6 +5,8 @@ if [ "$1" = menu ]; then
> >  	exit
> >  fi
> >  
> > +. /env/data/ansi-colors
> > +
> >  path="/mnt/tftp"
> >  
> >  # to get the dhcp info (global.dhcp.rootpath, global.dhcp.bootfile, global.dhcp.oftree_file)
> > @@ -44,6 +46,24 @@ if [ -n "${global.dhcp.bootfile}" ]; then
> >  	mount -t nfs "${eth0.serverip}:${mnt}" "${path}"
> >  
> >  	global.bootm.image="${path}/${bootfile}"
> > +
> > +	if [ -L "${global.bootm.image}" ]; then
> > +		readlink -f "${global.bootm.image}" bootfile_symlink
> > +
> > +		# if the file is not on barebox fs assume it's on the host
> > +		if [ ! -e "${bootfile_symlink}" ]; then
> > +			dirname "${bootfile_symlink}" mnt
> > +			basename "${bootfile_symlink}" bootfile
> > +
> > +			umount "${path}"
> > +			mount -t nfs "${eth0.serverip}:${mnt}" "${path}"
> > +
> > +			bootfile_symlink="${path}/${bootfile_symlink}"
> > +			global.bootm.image="${path}/${bootfile}"
> > +		else
> > +			global.bootm.image="${bootfile_symlink}"
> > +		fi
> 
> symbolic links either point to the target or not, but doing magic on
> them to try to interpret where they *could* point to is no option.
the issue with nfs is the mount path
you need to mount `dirname file`

but if the file is a symlink this is where it's complex you need to resolv it
and mount the real path

I'd prefer to avoid it but nfs is like this
as you may just be allow to see a part of the host tree via nfs and the host
have different mountpoint

I use this feature for years on U-Boot before and now on the defaultenv
The nfs symlink was managed via the nfs command now that we use the fs on defaultenv-2

I need to have it too or it's never switch to the defaultenv-2 for me.

Best Regards,
J.

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox


[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux