struct btrfs_trans_handle *trans;
        unsigned int fsflags;
        int ret;
-       umode_t mode;
        const char *comp = NULL;
        u32 binode_flags = binode->flags;
 
 
        inode_lock(inode);
 
-       mode = inode->i_mode;
-
        fsflags = btrfs_mask_fsflags_for_type(inode, fsflags);
        if ((fsflags ^ btrfs_inode_flags_to_fsflags(binode->flags)) &
            (FS_APPEND_FL | FS_IMMUTABLE_FL)) {
        else
                binode_flags &= ~BTRFS_INODE_DIRSYNC;
        if (fsflags & FS_NOCOW_FL) {
-               if (S_ISREG(mode)) {
+               if (S_ISREG(inode->i_mode)) {
                        /*
                         * It's safe to turn csums off here, no extents exist.
                         * Otherwise we want the flag to reflect the real COW
                /*
                 * Revert back under same assumptions as above
                 */
-               if (S_ISREG(mode)) {
+               if (S_ISREG(inode->i_mode)) {
                        if (inode->i_size == 0)
                                binode_flags &= ~(BTRFS_INODE_NODATACOW |
                                                  BTRFS_INODE_NODATASUM);