remove unnecesary while loop in ext2_xattr_get
Subsystems (2)
PATCH 1/1 remove unnecesary while loop in ext2_xattr_get
Hi,
In ext2_xattr_get, we'll check the xattr entry one
by one in the following loop:
entry = FIRST_ENTRY(bh);
while (!IS_LAST_ENTRY(entry)) {
struct ext2_xattr_entry *next =
EXT2_XATTR_NEXT(entry);
if ((char *)next >= end)
goto bad_block;
if (name_index == entry->e_name_index &&
name_len == entry->e_name_len &&
memcmp(name, entry->e_name, name_len) == 0)
goto found;
entry = next;
}We can only execute the code immediately following the loop when !IS_LAST_ENTRY(entry) is true. So the followed while loop seems unnecessary. I think we can remove it.
Following is my patch. It's against 2.6.35-rc4.
Please check it.
--- fs/ext2/xattr.c | 9 +-------- 1 files changed, 1 insertions(+), 8 deletions(-)
fs/ext2/xattr.c +1 -8
@@ -201,14 +201,7 @@ bad_block: ext2_error(inode->i_sb, "ext2_xattr_get", goto found; entry = next; } -/* Check the remaining name entries */ -while (!IS_LAST_ENTRY (entry)) { -struct ext2_xattr_entry *next = -EXT2_XATTR_NEXT (entry); -if ((char *)next >= end) - goto bad_block; - entry = next; - } +if (ext2_xattr_cache_insert (bh))ea_idebug (inode,"cache insert failed" ); error = -ENODATA ;
Signature · 1 line
1.7.1.1
Quoted 14 lines · crosslonelyover
Hi,
Inext2_xattr_get, we'll check the xattr entry one
by one in the following loop:entry = FIRST_ENTRY(bh); while (!IS_LAST_ENTRY(entry)) { struct ext2_xattr_entry *next > EXT2_XATTR_NEXT(entry); if ((char *)next >= end) goto bad_block; if (name_index = entry->e_name_index && name_len = entry->e_name_len && memcmp(name, entry->e_name, name_len) = 0) goto found; entry = next; }
Quoted 7 lines
We can only execute the code immediately following the loop when !IS_LAST_ENTRY(entry) is true. So the followed while loop seems unnecessary. I think we can remove it.
Following is my patch. It's against 2.6.35-rc4.
Please check it.
Yes. This is dead code. This stuff is from the days before git so we'll never know who to blame for it.
regards,
dan carpenter