Linux Kernel readlink equivalent

Aruna Hewapathirane aruna.hewapathirane at gmail.com
Fri Jan 30 01:07:50 EST 2015


>>

> Hello,
>
> I'm working on some linux kernel driver stuff and I have a fake path
> called /dev/blah/whatever that points to /dev/block/real_device.
>
> The issue is that lookup_bdev will fail to follow the symlink so I'd like
> to massage the path upfront by getting the real path
> (/dev/block/real_device) so I can hand that off to lookup_bdev so it
> returns successfully instead of an error.
>
> Or any other kernel call that would correctly retrieve the block_device
> information given the initial path which is a symlink.
>
> Note: I saw that the tomoyo module has something like that but I was
> looking for the generic implementation of the kernel if one exists.
>
> Thanks
>
> David
>
> David,

1 - Please read through: *man 2 readlink* ( yes please read it *all* very
carefully !

2 - There is a system call readlink study it...

     declared here: http://code.woboq.org/linux/include/unistd.h.html#809
     exported here:
http://code.woboq.org/linux/linux/arch/um/os-Linux/user_syms.c.html#83

3  grep through the kernel and see where and how readlink is used.

    Try :   find . -name "*.[ch]" | xargs grep "readlink"

    and :   find . -name "*.[ch]" | xargs grep " readlink("

    and :   find . -name "*.[ch]" | xargs grep ">readlink"

4 - This will help you figure how to work things out
<http://www.informit.com/articles/article.aspx?p=23618&seqNum=12> use at
your own risk :)

Good luck - Aruna
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150130/be9e6b61/attachment.html 


More information about the Kernelnewbies mailing list