ufs_vnops.c (100207) | ufs_vnops.c (100344) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1989, 1993, 1995 3 * The Regents of the University of California. All rights reserved. 4 * (c) UNIX System Laboratories, Inc. 5 * All or some portions of this file are derived from material licensed 6 * to the University of California by American Telephone and Telegraph 7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8 * the permission of UNIX System Laboratories, Inc. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95 | 1/* 2 * Copyright (c) 1982, 1986, 1989, 1993, 1995 3 * The Regents of the University of California. All rights reserved. 4 * (c) UNIX System Laboratories, Inc. 5 * All or some portions of this file are derived from material licensed 6 * to the University of California by American Telephone and Telegraph 7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8 * the permission of UNIX System Laboratories, Inc. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95 |
39 * $FreeBSD: head/sys/ufs/ufs/ufs_vnops.c 100207 2002-07-17 02:03:19Z mckusick $ | 39 * $FreeBSD: head/sys/ufs/ufs/ufs_vnops.c 100344 2002-07-19 07:29:39Z mckusick $ |
40 */ 41 42#include "opt_quota.h" 43#include "opt_suiddir.h" 44#include "opt_ufs.h" 45 46#include <sys/param.h> 47#include <sys/systm.h> --- 502 unchanged lines hidden (view full) --- 550 if (vp->v_mount->mnt_flag & MNT_RDONLY) 551 return (EROFS); 552 if ((ip->i_flags & SF_SNAPSHOT) != 0) 553 return (EPERM); 554 break; 555 default: 556 break; 557 } | 40 */ 41 42#include "opt_quota.h" 43#include "opt_suiddir.h" 44#include "opt_ufs.h" 45 46#include <sys/param.h> 47#include <sys/systm.h> --- 502 unchanged lines hidden (view full) --- 550 if (vp->v_mount->mnt_flag & MNT_RDONLY) 551 return (EROFS); 552 if ((ip->i_flags & SF_SNAPSHOT) != 0) 553 return (EPERM); 554 break; 555 default: 556 break; 557 } |
558 if ((error = UFS_TRUNCATE(vp, vap->va_size, 0, cred, td)) != 0) | 558 if ((error = UFS_TRUNCATE(vp, vap->va_size, IO_NORMAL, 559 cred, td)) != 0) |
559 return (error); 560 } 561 if (vap->va_atime.tv_sec != VNOVAL || 562 vap->va_mtime.tv_sec != VNOVAL || 563 vap->va_birthtime.tv_sec != VNOVAL) { 564 if (vp->v_mount->mnt_flag & MNT_RDONLY) 565 return (EROFS); 566 if ((ip->i_flags & SF_SNAPSHOT) != 0) --- 696 unchanged lines hidden (view full) --- 1263 if (!newparent) { 1264 dp->i_nlink--; 1265 DIP(dp, i_nlink) = dp->i_nlink; 1266 dp->i_flag |= IN_CHANGE; 1267 } 1268 xp->i_nlink--; 1269 DIP(xp, i_nlink) = xp->i_nlink; 1270 xp->i_flag |= IN_CHANGE; | 560 return (error); 561 } 562 if (vap->va_atime.tv_sec != VNOVAL || 563 vap->va_mtime.tv_sec != VNOVAL || 564 vap->va_birthtime.tv_sec != VNOVAL) { 565 if (vp->v_mount->mnt_flag & MNT_RDONLY) 566 return (EROFS); 567 if ((ip->i_flags & SF_SNAPSHOT) != 0) --- 696 unchanged lines hidden (view full) --- 1264 if (!newparent) { 1265 dp->i_nlink--; 1266 DIP(dp, i_nlink) = dp->i_nlink; 1267 dp->i_flag |= IN_CHANGE; 1268 } 1269 xp->i_nlink--; 1270 DIP(xp, i_nlink) = xp->i_nlink; 1271 xp->i_flag |= IN_CHANGE; |
1271 ioflag = DOINGASYNC(tvp) ? 0 : IO_SYNC; | 1272 ioflag = IO_NORMAL; 1273 if (DOINGASYNC(tvp)) 1274 ioflag |= IO_SYNC; |
1272 if ((error = UFS_TRUNCATE(tvp, (off_t)0, ioflag, 1273 tcnp->cn_cred, tcnp->cn_thread)) != 0) 1274 goto bad; 1275 } 1276 VN_KNOTE(tdvp, NOTE_WRITE); 1277 vput(tdvp); 1278 VN_KNOTE(tvp, NOTE_DELETE); 1279 vput(tvp); --- 477 unchanged lines hidden (view full) --- 1757 */ 1758 if (!DOINGSOFTDEP(vp)) { 1759 dp->i_nlink--; 1760 DIP(dp, i_nlink) = dp->i_nlink; 1761 dp->i_flag |= IN_CHANGE; 1762 ip->i_nlink--; 1763 DIP(ip, i_nlink) = ip->i_nlink; 1764 ip->i_flag |= IN_CHANGE; | 1275 if ((error = UFS_TRUNCATE(tvp, (off_t)0, ioflag, 1276 tcnp->cn_cred, tcnp->cn_thread)) != 0) 1277 goto bad; 1278 } 1279 VN_KNOTE(tdvp, NOTE_WRITE); 1280 vput(tdvp); 1281 VN_KNOTE(tvp, NOTE_DELETE); 1282 vput(tvp); --- 477 unchanged lines hidden (view full) --- 1760 */ 1761 if (!DOINGSOFTDEP(vp)) { 1762 dp->i_nlink--; 1763 DIP(dp, i_nlink) = dp->i_nlink; 1764 dp->i_flag |= IN_CHANGE; 1765 ip->i_nlink--; 1766 DIP(ip, i_nlink) = ip->i_nlink; 1767 ip->i_flag |= IN_CHANGE; |
1765 ioflag = DOINGASYNC(vp) ? 0 : IO_SYNC; | 1768 ioflag = IO_NORMAL; 1769 if (DOINGASYNC(vp)) 1770 ioflag |= IO_SYNC; |
1766 error = UFS_TRUNCATE(vp, (off_t)0, ioflag, cnp->cn_cred, 1767 cnp->cn_thread); 1768 } 1769 cache_purge(vp); 1770#ifdef UFS_DIRHASH 1771 /* Kill any active hash; i_effnlink == 0, so it will not come back. */ 1772 if (ip->i_dirhash != NULL) 1773 ufsdirhash_free(ip); --- 201 unchanged lines hidden (view full) --- 1975 struct inode *ip; 1976 ufs2_daddr_t blkno; 1977 int error; 1978 1979 ip = VTOI(vp); 1980 if (vp->v_type == VBLK || vp->v_type == VCHR) 1981 panic("ufs_strategy: spec"); 1982 if (bp->b_blkno == bp->b_lblkno) { | 1771 error = UFS_TRUNCATE(vp, (off_t)0, ioflag, cnp->cn_cred, 1772 cnp->cn_thread); 1773 } 1774 cache_purge(vp); 1775#ifdef UFS_DIRHASH 1776 /* Kill any active hash; i_effnlink == 0, so it will not come back. */ 1777 if (ip->i_dirhash != NULL) 1778 ufsdirhash_free(ip); --- 201 unchanged lines hidden (view full) --- 1980 struct inode *ip; 1981 ufs2_daddr_t blkno; 1982 int error; 1983 1984 ip = VTOI(vp); 1985 if (vp->v_type == VBLK || vp->v_type == VCHR) 1986 panic("ufs_strategy: spec"); 1987 if (bp->b_blkno == bp->b_lblkno) { |
1983 error = ufs_bmaparray(vp, bp->b_lblkno, &blkno, NULL, NULL); | 1988 error = ufs_bmaparray(vp, bp->b_lblkno, &blkno, bp, NULL, NULL); |
1984 bp->b_blkno = blkno; 1985 if (error) { 1986 bp->b_error = error; 1987 bp->b_ioflags |= BIO_ERROR; 1988 bufdone(bp); 1989 return (error); 1990 } 1991 if ((long)bp->b_blkno == -1) --- 762 unchanged lines hidden --- | 1989 bp->b_blkno = blkno; 1990 if (error) { 1991 bp->b_error = error; 1992 bp->b_ioflags |= BIO_ERROR; 1993 bufdone(bp); 1994 return (error); 1995 } 1996 if ((long)bp->b_blkno == -1) --- 762 unchanged lines hidden --- |