diff options
Diffstat (limited to 'lib/sqfs')
| -rw-r--r-- | lib/sqfs/dir_writer.c | 5 | ||||
| -rw-r--r-- | lib/sqfs/inode.c | 6 | 
2 files changed, 5 insertions, 6 deletions
diff --git a/lib/sqfs/dir_writer.c b/lib/sqfs/dir_writer.c index a02faa7..ce63a1e 100644 --- a/lib/sqfs/dir_writer.c +++ b/lib/sqfs/dir_writer.c @@ -21,6 +21,8 @@  #include <stdlib.h>  #include <string.h> +#define DIR_INDEX_THRESHOLD (256) +  typedef struct dir_entry_t {  	struct dir_entry_t *next;  	sqfs_u64 inode_ref; @@ -385,6 +387,9 @@ sqfs_inode_generic_t  		inode->base.type = SQFS_INODE_DIR;  	} +	if (writer->ent_count >= DIR_INDEX_THRESHOLD) +		inode->base.type = SQFS_INODE_EXT_DIR; +  	if (inode->base.type == SQFS_INODE_DIR) {  		inode->data.dir.start_block = start_block;  		inode->data.dir.nlink = writer->ent_count + hlinks + 2; diff --git a/lib/sqfs/inode.c b/lib/sqfs/inode.c index 0fb4809..ce51cf5 100644 --- a/lib/sqfs/inode.c +++ b/lib/sqfs/inode.c @@ -110,12 +110,6 @@ int sqfs_inode_set_xattr_index(sqfs_inode_generic_t *inode, sqfs_u32 index)  		return SQFS_ERROR_CORRUPTED;  	} -	if (index == 0xFFFFFFFF) { -		err = sqfs_inode_make_basic(inode); -		if (err) -			return err; -	} -  	return 0;  }  | 
