[BACK]Return to ufs_readwrite.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / ufs / ufs

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

Diff for /src/sys/ufs/ufs/ufs_readwrite.c between version 1.81 and 1.81.6.1

version 1.81, 2007/07/27 10:00:42 version 1.81.6.1, 2007/11/06 23:35:25
Line 35 
Line 35 
 __KERNEL_RCSID(1, "$NetBSD$");  __KERNEL_RCSID(1, "$NetBSD$");
   
 #ifdef LFS_READWRITE  #ifdef LFS_READWRITE
 #define BLKSIZE(a, b, c)        blksize(a, b, c)  
 #define FS                      struct lfs  #define FS                      struct lfs
 #define I_FS                    i_lfs  #define I_FS                    i_lfs
 #define READ                    lfs_read  #define READ                    lfs_read
Line 45  __KERNEL_RCSID(1, "$NetBSD$");
Line 44  __KERNEL_RCSID(1, "$NetBSD$");
 #define fs_bsize                lfs_bsize  #define fs_bsize                lfs_bsize
 #define fs_bmask                lfs_bmask  #define fs_bmask                lfs_bmask
 #else  #else
 #define BLKSIZE(a, b, c)        blksize(a, b, c)  
 #define FS                      struct fs  #define FS                      struct fs
 #define I_FS                    i_fs  #define I_FS                    i_fs
 #define READ                    ffs_read  #define READ                    ffs_read
Line 140  READ(void *v)
Line 138  READ(void *v)
                         break;                          break;
                 lbn = lblkno(fs, uio->uio_offset);                  lbn = lblkno(fs, uio->uio_offset);
                 nextlbn = lbn + 1;                  nextlbn = lbn + 1;
                 size = BLKSIZE(fs, ip, lbn);                  size = blksize(fs, ip, lbn);
                 blkoffset = blkoff(fs, uio->uio_offset);                  blkoffset = blkoff(fs, uio->uio_offset);
                 xfersize = MIN(MIN(fs->fs_bsize - blkoffset, uio->uio_resid),                  xfersize = MIN(MIN(fs->fs_bsize - blkoffset, uio->uio_resid),
                     bytesinfile);                      bytesinfile);
Line 148  READ(void *v)
Line 146  READ(void *v)
                 if (lblktosize(fs, nextlbn) >= ip->i_size)                  if (lblktosize(fs, nextlbn) >= ip->i_size)
                         error = bread(vp, lbn, size, NOCRED, &bp);                          error = bread(vp, lbn, size, NOCRED, &bp);
                 else {                  else {
                         int nextsize = BLKSIZE(fs, ip, nextlbn);                          int nextsize = blksize(fs, ip, nextlbn);
                         error = breadn(vp, lbn,                          error = breadn(vp, lbn,
                             size, &nextlbn, &nextsize, 1, NOCRED, &bp);                              size, &nextlbn, &nextsize, 1, NOCRED, &bp);
                 }                  }
Line 171  READ(void *v)
Line 169  READ(void *v)
                 error = uiomove((char *)bp->b_data + blkoffset, xfersize, uio);                  error = uiomove((char *)bp->b_data + blkoffset, xfersize, uio);
                 if (error)                  if (error)
                         break;                          break;
                 brelse(bp);                  brelse(bp, 0);
         }          }
         if (bp != NULL)          if (bp != NULL)
                 brelse(bp);                  brelse(bp, 0);
   
  out:   out:
         if (!(vp->v_mount->mnt_flag & MNT_NOATIME)) {          if (!(vp->v_mount->mnt_flag & MNT_NOATIME)) {
Line 344  WRITE(void *v)
Line 342  WRITE(void *v)
                  */                   */
                 overwrite = uio->uio_offset >= preallocoff &&                  overwrite = uio->uio_offset >= preallocoff &&
                     uio->uio_offset < endallocoff;                      uio->uio_offset < endallocoff;
                 if (!overwrite && (vp->v_flag & VMAPPED) == 0 &&                  if (!overwrite && (vp->v_vflag & VV_MAPPED) == 0 &&
                     blkoff(fs, uio->uio_offset) == 0 &&                      blkoff(fs, uio->uio_offset) == 0 &&
                     (uio->uio_offset & PAGE_MASK) == 0) {                      (uio->uio_offset & PAGE_MASK) == 0) {
                         vsize_t len;                          vsize_t len;
Line 455  WRITE(void *v)
Line 453  WRITE(void *v)
                         uvm_vnp_setsize(vp, ip->i_size);                          uvm_vnp_setsize(vp, ip->i_size);
                         extended = 1;                          extended = 1;
                 }                  }
                 size = BLKSIZE(fs, ip, lbn) - bp->b_resid;                  size = blksize(fs, ip, lbn) - bp->b_resid;
                 if (xfersize > size)                  if (xfersize > size)
                         xfersize = size;                          xfersize = size;
   
Line 467  WRITE(void *v)
Line 465  WRITE(void *v)
                  * so we need to invalidate it.                   * so we need to invalidate it.
                  */                   */
                 if (error && (flags & B_CLRBUF) == 0) {                  if (error && (flags & B_CLRBUF) == 0) {
                         bp->b_flags |= B_INVAL;                          brelse(bp, BC_INVAL);
                         brelse(bp);  
                         break;                          break;
                 }                  }
 #ifdef LFS_READWRITE  #ifdef LFS_READWRITE

Legend:
Removed from v.1.81  
changed lines
  Added in v.1.81.6.1

CVSweb <webmaster@jp.NetBSD.org>