- if (ls->name && ((dirent->name_len & 0xFF) != ls->namelen))
- return 0;
- if (ls->name && strncmp(ls->name, dirent->name,
- dirent->name_len & 0xFF))
- return 0;
- if (ls->inode && (dirent->inode != ls->inode))
- return 0;
+ if (ls->name) {
+ if (ext2fs_dirent_name_len(dirent) != ls->namelen)
+ return 0;
+ if (strncmp(ls->name, dirent->name, ext2fs_dirent_name_len(dirent)))
+ return 0;
+ }
+ if (!(ls->flags & EXT2FS_UNLINK_FORCE) && ls->inode) {
+ if (dirent->inode != ls->inode)
+ return 0;
+ } else {
+ if (!dirent->inode)
+ return 0;
+ }