update for new VM
[unix-history] / usr / src / sys / ufs / lfs / lfs_vnops.c
index 9ed00fd..6fe15c1 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)lfs_vnops.c 7.46 (Berkeley) %G%
+ *     @(#)lfs_vnops.c 7.47 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -471,7 +471,7 @@ chmod1(vp, mode, cred)
        ip->i_mode |= mode & 07777;
        ip->i_flag |= ICHG;
        if ((vp->v_flag & VTEXT) && (ip->i_mode & ISVTX) == 0)
        ip->i_mode |= mode & 07777;
        ip->i_flag |= ICHG;
        if ((vp->v_flag & VTEXT) && (ip->i_mode & ISVTX) == 0)
-               xrele(vp);
+               (void) vnode_pager_uncache(vp);
        return (0);
 }
 
        return (0);
 }
 
@@ -653,8 +653,8 @@ ufs_write(vp, uio, ioflag, cred)
        struct buf *bp;
        daddr_t lbn, bn;
        u_long osize;
        struct buf *bp;
        daddr_t lbn, bn;
        u_long osize;
-       int i, n, on, flags;
-       int count, size, resid, error = 0;
+       int n, on, flags;
+       int size, resid, error = 0;
 
        if (uio->uio_rw != UIO_WRITE)
                panic("ufs_write mode");
 
        if (uio->uio_rw != UIO_WRITE)
                panic("ufs_write mode");
@@ -705,12 +705,12 @@ ufs_write(vp, uio, ioflag, cred)
                if (error = balloc(ip, lbn, (int)(on + n), &bp, flags))
                        break;
                bn = bp->b_blkno;
                if (error = balloc(ip, lbn, (int)(on + n), &bp, flags))
                        break;
                bn = bp->b_blkno;
-               if (uio->uio_offset + n > ip->i_size)
+               if (uio->uio_offset + n > ip->i_size) {
                        ip->i_size = uio->uio_offset + n;
                        ip->i_size = uio->uio_offset + n;
+                       vnode_pager_setsize(vp, ip->i_size);
+               }
                size = blksize(fs, ip, lbn);
                size = blksize(fs, ip, lbn);
-               count = howmany(size, CLBYTES);
-               for (i = 0; i < count; i++)
-                       munhash(ip->i_devvp, bn + i * CLBYTES / DEV_BSIZE);
+               (void) vnode_pager_uncache(vp);
                n = MIN(n, size - bp->b_resid);
                error = uiomove(bp->b_un.b_addr + on, n, uio);
                if (ioflag & IO_SYNC)
                n = MIN(n, size - bp->b_resid);
                error = uiomove(bp->b_un.b_addr + on, n, uio);
                if (ioflag & IO_SYNC)