ptr = kaddr + bh_offset(bh);
        if (*ptr == cpu_to_be32(GFS2_MAGIC))
                rv = 1;
-       kunmap_atomic(page, KM_USER0);
+       kunmap_atomic(kaddr, KM_USER0);
 
        return rv;
 }
                                memcpy(bh->b_data,
                                       kaddr + bh_offset(bd2->bd_bh),
                                       sdp->sd_sb.sb_bsize);
-                               kunmap_atomic(page, KM_USER0);
+                               kunmap_atomic(kaddr, KM_USER0);
                                *(__be32 *)bh->b_data = 0;
                        } else {
                                bh = gfs2_log_fake_buf(sdp, bd2->bd_bh);
 
 
        kaddr = kmap_atomic(page, KM_USER0);
        memset(kaddr, 0, PAGE_CACHE_SIZE);
-       kunmap_atomic(page, KM_USER0);
+       kunmap_atomic(kaddr, KM_USER0);
 
        SetPageUptodate(page);
 
        memcpy(kaddr, dibh->b_data + sizeof(struct gfs2_dinode),
               ip->i_di.di_size);
        memset(kaddr + ip->i_di.di_size, 0, PAGE_CACHE_SIZE - ip->i_di.di_size);
-       kunmap_atomic(page, KM_USER0);
+       kunmap_atomic(kaddr, KM_USER0);
 
        brelse(dibh);
 
                kaddr = kmap_atomic(page, KM_USER0);
                memcpy(dibh->b_data + sizeof(struct gfs2_dinode) + from,
                       kaddr + from, to - from);
-               kunmap_atomic(page, KM_USER0);
+               kunmap_atomic(kaddr, KM_USER0);
 
                SetPageUptodate(page);