getxattr field not initialized when trying to execute /init during boot

Peter Teoh htmldeveloper at gmail.com
Wed Sep 26 11:57:40 EDT 2012


On Thu, Sep 13, 2012 at 5:08 PM, stl <st.lambert02 at gmail.com> wrote:
>
> Hello all,
> I am facing a problem when trying to boot linux 2.6.37 on a new architecture.
>
> At the end of the boot, it tries to launch /init by executing a sys_execve()
>
> Here is the what it does:
>
> sys_execve()
>   |-> do_execve()
>          |-> prepare_binprm()
>                  |->security_bprm_set_creds()
>                         |->cap_bprm_set_creds()
>                              |->get_file_caps()
>                                    |->get_vfs_caps_from_disk()
>
>
> In the get_vfs_caps_from_disk(), these is a verification to know if    inode->i_op->getxattr
> has been initialized.
>
> In my case, it returns and error value, because this field is not initialized.
>
> So I am wondering by who and where this field is initialized?
> And what is the aim of getxattr?
>

it is called extended attributes for filesystem:

http://lwn.net/2000/1026/a/extended-attributes.php3
http://lwn.net/Articles/12060/
http://lwn.net/Articles/12061/

(there is a detail explanation in above link as I copied it here):

+/*
+ * Extended attributes are stored on disk blocks allocated outside of
+ * any inode. The i_file_acl field is then made to point to this allocated
+ * block. If all extended attributes of an inode are identical, these
+ * inodes may share the same extended attribute block. Such situations
+ * are automatically detected by keeping a cache of recent attribute block
+ * numbers and hashes over the block's contents in memory.
+ *
+ *

and for security modules:

http://lwn.net/Articles/28223/

> Thanks in advance!
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



--
Regards,
Peter Teoh



More information about the Kernelnewbies mailing list