{
struct fileIdentDesc *fi=NULL;
loff_t f_pos;
- int block, namelen;
- char name[UDF_NAME_LEN], fname[UDF_NAME_LEN];
+ int block, flen;
+ char fname[UDF_NAME_LEN];
char *nameptr;
uint8_t lfi;
uint16_t liu;
if (!dir)
return NULL;
- if ( !(namelen = udf_put_filename(dir->i_sb, dentry->d_name.name, name, dentry->d_name.len)))
- return NULL;
-
f_pos = (udf_ext0_offset(dir) >> 2);
fibh->soffset = fibh->eoffset = (f_pos & ((dir->i_sb->s_blocksize - 1) >> 2)) << 2;
if (!lfi)
continue;
- if (udf_match(namelen, name, lfi, nameptr))
+ if ((flen = udf_get_filename(dir->i_sb, nameptr, fname, lfi)))
{
- udf_release_data(bh);
- return fi;
+ if (udf_match(flen, fname, dentry->d_name.len, dentry->d_name.name))
+ {
+ udf_release_data(bh);
+ return fi;
+ }
}
}
if (fibh->sbh != fibh->ebh)
char name[UDF_NAME_LEN], fname[UDF_NAME_LEN];
int namelen;
loff_t f_pos;
+ int flen;
char *nameptr;
loff_t size = (udf_ext0_offset(dir) + dir->i_size) >> 2;
int nfidlen;
if (!lfi || !dentry)
continue;
- if (udf_match(namelen, name, lfi, nameptr))
+ if ((flen = udf_get_filename(dir->i_sb, nameptr, fname, lfi)) &&
+ udf_match(flen, fname, dentry->d_name.len, dentry->d_name.name))
{
if (fibh->sbh != fibh->ebh)
udf_release_data(fibh->ebh);