Lines Matching refs:ip

166 ufs_trans_iupdat(struct inode *ip, int waitfor)  in ufs_trans_iupdat()  argument
171 rw_enter(&ip->i_contents, RW_READER); in ufs_trans_iupdat()
172 ufs_iupdat(ip, waitfor); in ufs_trans_iupdat()
173 rw_exit(&ip->i_contents); in ufs_trans_iupdat()
176 ufsvfsp = ip->i_ufsvfs; in ufs_trans_iupdat()
182 TRANS_BEGIN_ASYNC(ufsvfsp, TOP_IUPDAT, TOP_IUPDAT_SIZE(ip)); in ufs_trans_iupdat()
183 rw_enter(&ip->i_contents, RW_READER); in ufs_trans_iupdat()
184 ufs_iupdat(ip, waitfor); in ufs_trans_iupdat()
185 rw_exit(&ip->i_contents); in ufs_trans_iupdat()
186 TRANS_END_ASYNC(ufsvfsp, TOP_IUPDAT, TOP_IUPDAT_SIZE(ip)); in ufs_trans_iupdat()
268 struct inode *ip; in ufs_trans_push_inode() local
277 error = ufs_iget(ufsvfsp->vfs_vfs, ino, &ip, kcred); in ufs_trans_push_inode()
284 if (ip->i_flag & (IUPD|IACC|ICHG|IMOD|IMODACC|IATTCHG)) { in ufs_trans_push_inode()
285 rw_enter(&ip->i_contents, RW_READER); in ufs_trans_push_inode()
286 ufs_iupdat(ip, 1); in ufs_trans_push_inode()
287 rw_exit(&ip->i_contents); in ufs_trans_push_inode()
288 VN_RELE(ITOV(ip)); in ufs_trans_push_inode()
291 VN_RELE(ITOV(ip)); in ufs_trans_push_inode()
304 ufs_trans_mata_mount_scan(struct inode *ip, void *arg) in ufs_trans_mata_mount_scan() argument
309 if (ip->i_ufsvfs != (struct ufsvfs *)arg) in ufs_trans_mata_mount_scan()
315 rw_enter(&ip->i_contents, RW_WRITER); in ufs_trans_mata_mount_scan()
316 ufs_trans_mata_iget(ip); in ufs_trans_mata_mount_scan()
317 rw_exit(&ip->i_contents); in ufs_trans_mata_mount_scan()
371 struct inode *ip, in ufs_trans_mata_direct() argument
379 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in ufs_trans_mata_direct()
400 struct inode *ip, in ufs_trans_mata_indir() argument
405 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in ufs_trans_mata_indir()
411 o_mode_t ifmt = ip->i_mode & IFMT; in ufs_trans_mata_indir()
413 bp = UFS_BREAD(ufsvfsp, ip->i_dev, fsbtodb(fs, frag), fs->fs_bsize); in ufs_trans_mata_indir()
421 (ifmt == IFATTRDIR) || (ip == ip->i_ufsvfs->vfs_qinod)) in ufs_trans_mata_indir()
422 ufs_trans_mata_direct(ip, fragsp, blkp, ne); in ufs_trans_mata_indir()
426 ufs_trans_mata_indir(ip, fragsp, *blkp, level-1); in ufs_trans_mata_indir()
434 ufs_trans_mata_iget(struct inode *ip) in ufs_trans_mata_iget() argument
437 daddr_t frags = dbtofsb(ip->i_fs, ip->i_blocks); in ufs_trans_mata_iget()
438 o_mode_t ifmt = ip->i_mode & IFMT; in ufs_trans_mata_iget()
441 (ifmt == IFATTRDIR) || (ip == ip->i_ufsvfs->vfs_qinod))) in ufs_trans_mata_iget()
442 ufs_trans_mata_direct(ip, &frags, &ip->i_db[0], NDADDR); in ufs_trans_mata_iget()
445 ufs_trans_mata_direct(ip, &frags, &ip->i_ib[0], NIADDR); in ufs_trans_mata_iget()
448 if (ip->i_ib[i]) in ufs_trans_mata_iget()
449 ufs_trans_mata_indir(ip, &frags, ip->i_ib[i], i); in ufs_trans_mata_iget()
468 struct inode *ip, in ufs_trans_mata_alloc() argument
474 o_mode_t ifmt = ip->i_mode & IFMT; in ufs_trans_mata_alloc()
477 (ifmt == IFATTRDIR) || (ip == ip->i_ufsvfs->vfs_qinod))) in ufs_trans_mata_alloc()
487 ufs_trans_dir(struct inode *ip, off_t offset) in ufs_trans_dir() argument
492 ASSERT(ip); in ufs_trans_dir()
493 ASSERT(RW_WRITE_HELD(&ip->i_contents)); in ufs_trans_dir()
494 error = bmap_read(ip, (u_offset_t)offset, &bn, &contig); in ufs_trans_dir()
502 TRANS_DELTA(ip->i_ufsvfs, ldbtob(bn), DIRBLKSIZ, DT_DIR, 0, 0); in ufs_trans_dir()
637 ufs_log_amt(struct inode *ip, offset_t offset, ssize_t resid, int trunc) in ufs_log_amt() argument
645 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in ufs_log_amt()
654 resv = SIZECG(ip) * 2 + INODESIZE + 1024; in ufs_log_amt()
670 nblk = MIN(nblk, ip->i_blocks); in ufs_log_amt()
730 resv += (ncg - 2) * SIZECG(ip); in ufs_log_amt()
742 struct inode *ip, in ufs_trans_trunc_resv() argument
757 if (length < ip->i_size) { in ufs_trans_trunc_resv()
758 size = ip->i_size - length; in ufs_trans_trunc_resv()
760 resv = SIZECG(ip) * 2 + INODESIZE + 1024; in ufs_trans_trunc_resv()
778 for (; (resv = ufs_log_amt(ip, offset, resid, 1)) > ufs_trans_max_resv; in ufs_trans_trunc_resv()
798 ufs_trans_itrunc(struct inode *ip, u_offset_t length, int flags, cred_t *cr) in ufs_trans_itrunc() argument
803 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in ufs_trans_itrunc()
811 rw_enter(&ip->i_contents, RW_WRITER); in ufs_trans_itrunc()
812 err = ufs_itrunc(ip, length, flags, cr); in ufs_trans_itrunc()
813 rw_exit(&ip->i_contents); in ufs_trans_itrunc()
828 ufs_trans_trunc_resv(ip, length, &resv, &resid); in ufs_trans_itrunc()
831 rw_enter(&ip->i_contents, RW_WRITER); in ufs_trans_itrunc()
836 ASSERT(length + resid < ip->i_size); in ufs_trans_itrunc()
848 err = ufs_itrunc(ip, blkroundup(fs, (ip->i_size - resid)), in ufs_trans_itrunc()
850 ASSERT(ip->i_size != length); in ufs_trans_itrunc()
852 err = ufs_itrunc(ip, length, flags, cr); in ufs_trans_itrunc()
855 rw_exit(&ip->i_contents); in ufs_trans_itrunc()
877 struct inode *ip, in ufs_trans_write_resv() argument
890 resv = ufs_log_amt(ip, offset, resid, 0); in ufs_trans_write_resv()
901 for (; (resv = ufs_log_amt(ip, offset, resid, 0)) > ufs_trans_max_resv; in ufs_trans_write_resv()
922 struct inode *ip, in ufs_trans_write() argument
931 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in ufs_trans_write()
948 err = wrip(ip, uio, ioflag, cr); in ufs_trans_write()
961 rw_exit(&ip->i_contents); in ufs_trans_write()
986 rw_enter(&ip->i_contents, RW_WRITER); in ufs_trans_write()