vserver 1.9.3
[linux-2.6.git] / fs / hfs / super.c
index 3456519..c773aa7 100644 (file)
@@ -152,8 +152,7 @@ static int parse_options(char *options, struct hfs_sb_info *hsb)
        hsb->s_gid = current->gid;
        hsb->s_file_umask = 0644;
        hsb->s_dir_umask = 0755;
-       hsb->s_type = 0x3f3f3f3f;       /* == '????' */
-       hsb->s_creator = 0x3f3f3f3f;    /* == '????' */
+       hsb->s_type = hsb->s_creator = cpu_to_be32(0x3f3f3f3f); /* == '????' */
        hsb->s_quiet = 0;
        hsb->part = -1;
        hsb->session = -1;
@@ -216,11 +215,11 @@ static int parse_options(char *options, struct hfs_sb_info *hsb)
                } else if (!strcmp(this_char, "type") && value) {
                        if (strlen(value) != 4)
                                return 0;
-                       hsb->s_type = *(u32 *)value;
+                       memcpy(&hsb->s_type, value, 4);
                } else if (!strcmp(this_char, "creator") && value) {
                        if (strlen(value) != 4)
                                return 0;
-                       hsb->s_creator = *(u32 *)value;
+                       memcpy(&hsb->s_creator, value, 4);
        /* Boolean-valued options */
                } else if (!strcmp(this_char, "quiet")) {
                        if (value)