struct lu_fid master_fid = op_data->op_fid1;
        struct obd_device *obd = exp->exp_obd;
        __u64 hash_offset = offset;
+       __u32 ldp_flags;
        struct page *min_ent_page = NULL;
        struct page *ent_page = NULL;
        struct lu_dirent *min_ent = NULL;
        dp = kmap(ent_page);
        memset(dp, 0, sizeof(*dp));
        dp->ldp_hash_start = cpu_to_le64(offset);
-       dp->ldp_flags |= LDF_COLLIDE;
+       ldp_flags = LDF_COLLIDE;
 
        area = dp + 1;
        left_bytes = PAGE_SIZE - sizeof(*dp);
                ent_page = NULL;
        } else {
                if (ent == area)
-                       dp->ldp_flags |= LDF_EMPTY;
-               dp->ldp_flags = cpu_to_le32(dp->ldp_flags);
+                       ldp_flags |= LDF_EMPTY;
+               dp->ldp_flags |= cpu_to_le32(ldp_flags);
                dp->ldp_hash_end = cpu_to_le64(hash_offset);
        }