diff mbox

ceph: fix xattr search while getxattr

Message ID 201101140107.02627.sakib@meta.ua (mailing list archive)
State New, archived
Headers show

Commit Message

Sergiy Kibrik Jan. 13, 2011, 11:07 p.m. UTC
None
diff mbox

Patch

diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index 6e12a6b..3d1d1d5 100644
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@ -219,13 +219,15 @@  static struct ceph_inode_xattr *__get_xattr(struct ceph_inode_info *ci,
 	struct rb_node **p;
 	struct rb_node *parent = NULL;
 	struct ceph_inode_xattr *xattr = NULL;
-	int c;
+	int c, name_len = strlen(name);
 
 	p = &ci->i_xattrs.index.rb_node;
 	while (*p) {
 		parent = *p;
 		xattr = rb_entry(parent, struct ceph_inode_xattr, node);
-		c = strncmp(name, xattr->name, xattr->name_len);
+		c = name_len - xattr->name_len;
+		if (!c)
+			c = strncmp(name, xattr->name, xattr->name_len);
 		if (c < 0)
 			p = &(*p)->rb_left;
 		else if (c > 0)