mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 02:36:21 +00:00
ext2: introduce new helper for xattr entry comparison
Introduce new helper ext2_xattr_cmp_entry() for xattr entry comparison. Signed-off-by: Chengguang Xu <cgxu519@zoho.com.cn> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
9bb1d7a6bc
commit
d561d4dd4f
@ -166,6 +166,21 @@ ext2_xattr_entry_valid(struct ext2_xattr_entry *entry,
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
ext2_xattr_cmp_entry(int name_index, size_t name_len, const char *name,
|
||||
struct ext2_xattr_entry *entry)
|
||||
{
|
||||
int cmp;
|
||||
|
||||
cmp = name_index - entry->e_name_index;
|
||||
if (!cmp)
|
||||
cmp = name_len - entry->e_name_len;
|
||||
if (!cmp)
|
||||
cmp = memcmp(name, entry->e_name, name_len);
|
||||
|
||||
return cmp;
|
||||
}
|
||||
|
||||
/*
|
||||
* ext2_xattr_get()
|
||||
*
|
||||
@ -452,13 +467,9 @@ bad_block:
|
||||
min_offs = offs;
|
||||
}
|
||||
if (not_found > 0) {
|
||||
not_found = name_index - last->e_name_index;
|
||||
if (!not_found)
|
||||
not_found = name_len - last->e_name_len;
|
||||
if (!not_found) {
|
||||
not_found = memcmp(name, last->e_name,
|
||||
name_len);
|
||||
}
|
||||
not_found = ext2_xattr_cmp_entry(name_index,
|
||||
name_len,
|
||||
name, last);
|
||||
if (not_found <= 0)
|
||||
here = last;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user