]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/gfs2/bmap.c
[GFS2] Remove uneeded endian conversion
[karo-tx-linux.git] / fs / gfs2 / bmap.c
index 92eef825167d5bd5b4b4464c844b9d17c23ad463..cc57f2ecd21974a7121ccaaf35b184c148711558 100644 (file)
@@ -121,6 +121,7 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, struct buffer_head *dibh,
 int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page)
 {
        struct buffer_head *bh, *dibh;
+       struct gfs2_dinode *di;
        u64 block = 0;
        int isdir = gfs2_is_dir(ip);
        int error;
@@ -141,8 +142,7 @@ int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page)
                        error = gfs2_dir_get_new_buffer(ip, block, &bh);
                        if (error)
                                goto out_brelse;
-                       gfs2_buffer_copy_tail(bh,
-                                             sizeof(struct gfs2_meta_header),
+                       gfs2_buffer_copy_tail(bh, sizeof(struct gfs2_meta_header),
                                              dibh, sizeof(struct gfs2_dinode));
                        brelse(bh);
                } else {
@@ -157,18 +157,17 @@ int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page)
        /*  Set up the pointer to the new block  */
 
        gfs2_trans_add_bh(ip->i_gl, dibh, 1);
-
+       di = (struct gfs2_dinode *)dibh->b_data;
        gfs2_buffer_clear_tail(dibh, sizeof(struct gfs2_dinode));
 
        if (ip->i_di.di_size) {
-               *(u64 *)(dibh->b_data + sizeof(struct gfs2_dinode)) =
-                       cpu_to_be64(block);
+               *(__be64 *)(di + 1) = cpu_to_be64(block);
                ip->i_di.di_blocks++;
+               di->di_blocks = cpu_to_be64(ip->i_di.di_blocks);
        }
 
        ip->i_di.di_height = 1;
-
-       gfs2_dinode_out(&ip->i_di, dibh->b_data);
+       di->di_height = cpu_to_be16(1);
 
 out_brelse:
        brelse(dibh);
@@ -229,6 +228,7 @@ static int build_height(struct inode *inode, unsigned height)
        unsigned new_height = height - ip->i_di.di_height;
        struct buffer_head *dibh;
        struct buffer_head *blocks[GFS2_MAX_META_HEIGHT];
+       struct gfs2_dinode *di;
        int error;
        u64 *bp;
        u64 bn;
@@ -267,12 +267,13 @@ static int build_height(struct inode *inode, unsigned height)
                              dibh, sizeof(struct gfs2_dinode));
        brelse(blocks[n]);
        gfs2_trans_add_bh(ip->i_gl, dibh, 1);
+       di = (struct gfs2_dinode *)dibh->b_data;
        gfs2_buffer_clear_tail(dibh, sizeof(struct gfs2_dinode));
-       bp = (u64 *)(dibh->b_data + sizeof(struct gfs2_dinode));
-       *bp = cpu_to_be64(bn);
+       *(__be64 *)(di + 1) = cpu_to_be64(bn);
        ip->i_di.di_height += new_height;
        ip->i_di.di_blocks += new_height;
-       gfs2_dinode_out(&ip->i_di, dibh->b_data);
+       di->di_height = cpu_to_be16(ip->i_di.di_height);
+       di->di_blocks = cpu_to_be64(ip->i_di.di_blocks);
        brelse(dibh);
        return error;
 }