【发布时间】:2018-09-17 16:14:46
【问题描述】:
如何添加像命令行函数setfattr -n user.custom_attrib -v 99 ex1.txt 这样的扩展属性,但在自定义系统调用中从内核内部完成。我查看了linux/xattrib.h,但我没有运气尝试从内核空间设置任何东西。每当我使用vfs_setxattr(struct dentry *, const char *, const void *, size_t, int); 时,它都会重新启动整个虚拟机。最后,我试图将一个新的整数类型作为扩展属性添加到文件中,并且我还需要检索该扩展属性。我需要使用内核空间中允许的功能。
【问题讨论】:
-
根据
setxattr系统调用的implementation,它将对vfs_setxattr(通过setxattr())的调用包装到mnt_want_write()/mnt_drop_write()守卫中。因此,您只需要获取与您的dentry对应的vfsmount对象,并使用给定的守卫。
标签: linux linux-kernel filesystems