Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[pandora-kernel.git] / fs / hfsplus / unicode.c
index a3f0bfc..a32998f 100644 (file)
@@ -142,7 +142,11 @@ int hfsplus_uni2asc(struct super_block *sb,
                /* search for single decomposed char */
                if (likely(compose))
                        ce1 = hfsplus_compose_lookup(hfsplus_compose_table, c0);
-               if (ce1 && (cc = ce1[0])) {
+               if (ce1)
+                       cc = ce1[0];
+               else
+                       cc = 0;
+               if (cc) {
                        /* start of a possibly decomposed Hangul char */
                        if (cc != 0xffff)
                                goto done;
@@ -209,7 +213,8 @@ int hfsplus_uni2asc(struct super_block *sb,
                                i++;
                                ce2 = ce1;
                        }
-                       if ((cc = ce2[0])) {
+                       cc = ce2[0];
+                       if (cc) {
                                ip += i;
                                ustrlen -= i;
                                goto done;
@@ -301,7 +306,11 @@ int hfsplus_asc2uni(struct super_block *sb, struct hfsplus_unistr *ustr,
        while (outlen < HFSPLUS_MAX_STRLEN && len > 0) {
                size = asc2unichar(sb, astr, len, &c);
 
-               if (decompose && (dstr = decompose_unichar(c, &dsize))) {
+               if (decompose)
+                       dstr = decompose_unichar(c, &dsize);
+               else
+                       dstr = NULL;
+               if (dstr) {
                        if (outlen + dsize > HFSPLUS_MAX_STRLEN)
                                break;
                        do {
@@ -346,15 +355,23 @@ int hfsplus_hash_dentry(const struct dentry *dentry, const struct inode *inode,
                astr += size;
                len -= size;
 
-               if (decompose && (dstr = decompose_unichar(c, &dsize))) {
+               if (decompose)
+                       dstr = decompose_unichar(c, &dsize);
+               else
+                       dstr = NULL;
+               if (dstr) {
                        do {
                                c2 = *dstr++;
-                               if (!casefold || (c2 = case_fold(c2)))
+                               if (casefold)
+                                       c2 = case_fold(c2);
+                               if (!casefold || c2)
                                        hash = partial_name_hash(c2, hash);
                        } while (--dsize > 0);
                } else {
                        c2 = c;
-                       if (!casefold || (c2 = case_fold(c2)))
+                       if (casefold)
+                               c2 = case_fold(c2);
+                       if (!casefold || c2)
                                hash = partial_name_hash(c2, hash);
                }
        }
@@ -422,12 +439,14 @@ int hfsplus_compare_dentry(const struct dentry *parent,
                c1 = *dstr1;
                c2 = *dstr2;
                if (casefold) {
-                       if  (!(c1 = case_fold(c1))) {
+                       c1 = case_fold(c1);
+                       if (!c1) {
                                dstr1++;
                                dsize1--;
                                continue;
                        }
-                       if (!(c2 = case_fold(c2))) {
+                       c2 = case_fold(c2);
+                       if (!c2) {
                                dstr2++;
                                dsize2--;
                                continue;