diff options
Diffstat (limited to 'bin/sqfs2tar/src/write_tree.c')
-rw-r--r-- | bin/sqfs2tar/src/write_tree.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bin/sqfs2tar/src/write_tree.c b/bin/sqfs2tar/src/write_tree.c index 71eb249..e578a9f 100644 --- a/bin/sqfs2tar/src/write_tree.c +++ b/bin/sqfs2tar/src/write_tree.c @@ -124,8 +124,15 @@ static int write_tree_dfs(const sqfs_tree_node_t *n) } } - if (!no_xattr) { - if (get_xattrs(name, n->inode, &xattr)) { + if (!no_xattr && xr != NULL) { + sqfs_u32 index; + int ret; + + sqfs_inode_get_xattr_index(n->inode, &index); + + ret = sqfs_xattr_reader_read_all(xr, index, &xattr); + if (ret) { + sqfs_perror(name, "resolving xattr index", ret); sqfs_free(name); return -1; } |