The negative case check logic with XOR operation between the
two variables with negated values is really hard to comprehend.
Change it to positive case check with == instead of XOR.

Signed-off-by: Andriy Tkachuk <andriy.tkac...@seagate.com>
---
 fs/xattr.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/xattr.c b/fs/xattr.c
index b3444e06cd..531562535d 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -66,13 +66,13 @@ xattr_resolve_name(struct inode *inode, const char **name)
 
                n = strcmp_prefix(*name, xattr_prefix(handler));
                if (n) {
-                       if (!handler->prefix ^ !*n) {
-                               if (*n)
-                                       continue;
-                               return ERR_PTR(-EINVAL);
+                       if (!handler->prefix == !*n) {
+                               *name = n;
+                               return handler;
                        }
-                       *name = n;
-                       return handler;
+                       if (*n)
+                               continue;
+                       return ERR_PTR(-EINVAL);
                }
        }
        return ERR_PTR(-EOPNOTSUPP);
-- 
2.27.0

Reply via email to