2 扩展属性相关操作在ext4中的实现 前面介绍过,内核根据扩展属性所属的命名空间对扩展属性进行不同的处理,而每个命名空间对扩展属性的处理函数存放在一个名为xattr_handler的结构体中。在ext4中为了提供编码的效率,采用一个名为ext4_xattr_handler_map的指针数组存放了相应命名空间的处理函数集。 如上所示,对于各命名...
#endif struct xattr_handler **s_xattr; struct list_head s_inodes; /* all inodes */ struct list_head s_dirty; /* dirty inodes */ struct list_head s_io; /* parked for writeback */ struct list_head s_more_io; /* parked for more writeback */ struct hlist_head s_anon; /* anon...
return mount_pseudo_xattr(fs_type, "socket:", &sockfs_ops, sockfs_xattr_handlers, &sockfs_dentry_operations, SOCKFS_MAGIC); } struct dentry *mount_pseudo_xattr(struct file_system_type *fs_type, char *name, const struct super_operations *ops, const struct xattr_handler **xattr, const s...
const struct xattr_handler **s_xattr; const struct fscrypt_operations *s_cop; struct hlist_bl_head s_anon; /* anonymous dentries for (nfs) exporting */ struct list_head s_mounts; /* list of mounts; _not_ for fs use */ struct block_device *s_bdev; struct backing_dev_info *s_bdi...
1265#endif1266conststructxattr_handler**s_xattr;12671268structlist_heads_inodes;/* all inodes */1269structhlist_bl_heads_anon;/* anonymous dentries for (nfs) exporting */1270structlist_heads_mounts;/* list of mounts; _not_ for fs use */1271structblock_device*s_bdev;1272structbacking_dev_...
21#endif22conststructxattr_handler **s_xattr;2324structhlist_bl_head s_anon;/*anonymous dentries for (nfs) exporting*/25structlist_head s_mounts;/*list of mounts; _not_ for fs use*/26structblock_device *s_bdev;27structbacking_dev_info *s_bdi;28structmtd_info *s_mtd;29structhlist_...
1340 const struct xattr_handler **s_xattr; 1341 1342 struct list_head s_inodes; //把所有索引对象链接在一起,存放的是头结点 1343 struct hlist_head s_anon; //匿名目录项 1344#ifdef CONFIG_SMP 1345 struct list_head __percpu *s_files; ...
/struct xattr_handler **s_xattr;/* inodes 链表 */struct list_head s_inodes; /* all inodes *//* 匿名目录项 */struct hlist_head s_anon; /* anonymous dentries for (nfs) exporting *//* 被分配文件链表 */struct list_head s_files;/* s_dentry_lru and s_nr_dentry_unused are ...
static const struct xattr_handler * xattr_resolve_name(struct inode *inode, const char **name) { const struct xattr_handler **handlers = inode->i_sb->s_xattr; const struct xattr_handler *handler;if (!(inode->i_opflags & IOP_XATTR)) { ...
#endifconststructxattr_handler **s_xattr;structlist_head s_inodes;/*all inodes*/structhlist_bl_head s_anon;/*anonymous dentries for (nfs) exporting*/#ifdef CONFIG_SMPstructlist_head __percpu *s_files;#elsestructlist_head s_files;#endif/*s_dentry_lru, s_nr_dentry_unused protected by ...