[BACK]Return to ext2fs.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / lib / libsa

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/lib/libsa/ext2fs.c between version 1.13 and 1.13.2.1

version 1.13, 2012/05/21 21:34:16 version 1.13.2.1, 2013/02/25 00:29:58
Line 240  block_map(struct open_file *f, indp_t fi
Line 240  block_map(struct open_file *f, indp_t fi
         /*          /*
          * Index structure of an inode:           * Index structure of an inode:
          *           *
          * e2di_blocks[0..NDADDR-1]           * e2di_blocks[0..EXT2FS_NDADDR-1]
          *                      hold block numbers for blocks           *                      hold block numbers for blocks
          *                      0..NDADDR-1           *                      0..EXT2FS_NDADDR-1
          *           *
          * e2di_blocks[NDADDR+0]           * e2di_blocks[EXT2FS_NDADDR+0]
          *                      block NDADDR+0 is the single indirect block           *                      block EXT2FS_NDADDR+0 is the single indirect block
          *                      holds block numbers for blocks           *                      holds block numbers for blocks
          *                      NDADDR .. NDADDR + NINDIR(fs)-1           *                      EXT2FS_NDADDR .. EXT2FS_NDADDR + NINDIR(fs)-1
          *           *
          * e2di_blocks[NDADDR+1]           * e2di_blocks[EXT2FS_NDADDR+1]
          *                      block NDADDR+1 is the double indirect block           *                      block EXT2FS_NDADDR+1 is the double indirect block
          *                      holds block numbers for INDEX blocks for blocks           *                      holds block numbers for INDEX blocks for blocks
          *                      NDADDR + NINDIR(fs) ..           *                      EXT2FS_NDADDR + NINDIR(fs) ..
          *                      NDADDR + NINDIR(fs) + NINDIR(fs)**2 - 1           *                      EXT2FS_NDADDR + NINDIR(fs) + NINDIR(fs)**2 - 1
          *           *
          * e2di_blocks[NDADDR+2]           * e2di_blocks[EXT2FS_NDADDR+2]
          *                      block NDADDR+2 is the triple indirect block           *                      block EXT2FS_NDADDR+2 is the triple indirect block
          *                      holds block numbers for double-indirect           *                      holds block numbers for double-indirect
          *                      blocks for blocks           *                      blocks for blocks
          *                      NDADDR + NINDIR(fs) + NINDIR(fs)**2 ..           *                      EXT2FS_NDADDR + NINDIR(fs) + NINDIR(fs)**2 ..
          *                      NDADDR + NINDIR(fs) + NINDIR(fs)**2           *                      EXT2FS_NDADDR + NINDIR(fs) + NINDIR(fs)**2
          *                              + NINDIR(fs)**3 - 1           *                              + NINDIR(fs)**3 - 1
          */           */
   
         if (file_block < NDADDR) {          if (file_block < EXT2FS_NDADDR) {
                 /* Direct block. */                  /* Direct block. */
                 *disk_block_p = fs2h32(fp->f_di.e2di_blocks[file_block]);                  *disk_block_p = fs2h32(fp->f_di.e2di_blocks[file_block]);
                 return 0;                  return 0;
         }          }
   
         file_block -= NDADDR;          file_block -= EXT2FS_NDADDR;
   
         ind_cache = file_block >> LN2_IND_CACHE_SZ;          ind_cache = file_block >> LN2_IND_CACHE_SZ;
         if (ind_cache == fp->f_ind_cache_block) {          if (ind_cache == fp->f_ind_cache_block) {
Line 283  block_map(struct open_file *f, indp_t fi
Line 283  block_map(struct open_file *f, indp_t fi
                 level += fp->f_nishift;                  level += fp->f_nishift;
                 if (file_block < (indp_t)1 << level)                  if (file_block < (indp_t)1 << level)
                         break;                          break;
                 if (level > NIADDR * fp->f_nishift)                  if (level > EXT2FS_NIADDR * fp->f_nishift)
                         /* Block number too high */                          /* Block number too high */
                         return EFBIG;                          return EFBIG;
                 file_block -= (indp_t)1 << level;                  file_block -= (indp_t)1 << level;
         }          }
   
         ind_block_num =          ind_block_num =
             fs2h32(fp->f_di.e2di_blocks[NDADDR + (level / fp->f_nishift - 1)]);              fs2h32(fp->f_di.e2di_blocks[EXT2FS_NDADDR + (level / fp->f_nishift - 1)]);
   
         for (;;) {          for (;;) {
                 level -= fp->f_nishift;                  level -= fp->f_nishift;
Line 1000  void e2fs_i_bswap(struct ext2fs_dinode *
Line 1000  void e2fs_i_bswap(struct ext2fs_dinode *
         new->e2di_dacl          =       bswap32(old->e2di_dacl);          new->e2di_dacl          =       bswap32(old->e2di_dacl);
         new->e2di_faddr         =       bswap32(old->e2di_faddr);          new->e2di_faddr         =       bswap32(old->e2di_faddr);
         memcpy(&new->e2di_blocks[0], &old->e2di_blocks[0],          memcpy(&new->e2di_blocks[0], &old->e2di_blocks[0],
             (NDADDR + NIADDR) * sizeof(uint32_t));              (EXT2FS_NDADDR + EXT2FS_NIADDR) * sizeof(uint32_t));
 }  }
 #endif  #endif
   

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.13.2.1

CVSweb <webmaster@jp.NetBSD.org>