diff options
Diffstat (limited to 'fs/ceph/xattr.c')
| -rw-r--r-- | fs/ceph/xattr.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c index 6e12a6ba5f7..8c9eba6ef9d 100644 --- a/fs/ceph/xattr.c +++ b/fs/ceph/xattr.c | |||
| @@ -219,6 +219,7 @@ static struct ceph_inode_xattr *__get_xattr(struct ceph_inode_info *ci, | |||
| 219 | struct rb_node **p; | 219 | struct rb_node **p; |
| 220 | struct rb_node *parent = NULL; | 220 | struct rb_node *parent = NULL; |
| 221 | struct ceph_inode_xattr *xattr = NULL; | 221 | struct ceph_inode_xattr *xattr = NULL; |
| 222 | int name_len = strlen(name); | ||
| 222 | int c; | 223 | int c; |
| 223 | 224 | ||
| 224 | p = &ci->i_xattrs.index.rb_node; | 225 | p = &ci->i_xattrs.index.rb_node; |
| @@ -226,6 +227,8 @@ static struct ceph_inode_xattr *__get_xattr(struct ceph_inode_info *ci, | |||
| 226 | parent = *p; | 227 | parent = *p; |
| 227 | xattr = rb_entry(parent, struct ceph_inode_xattr, node); | 228 | xattr = rb_entry(parent, struct ceph_inode_xattr, node); |
| 228 | c = strncmp(name, xattr->name, xattr->name_len); | 229 | c = strncmp(name, xattr->name, xattr->name_len); |
| 230 | if (c == 0 && name_len > xattr->name_len) | ||
| 231 | c = 1; | ||
| 229 | if (c < 0) | 232 | if (c < 0) |
| 230 | p = &(*p)->rb_left; | 233 | p = &(*p)->rb_left; |
| 231 | else if (c > 0) | 234 | else if (c > 0) |
