Lines Matching defs:ip
199 int jfs_get_block(struct inode *ip, sector_t lblock,
207 s32 xlen = bh_result->b_size >> ip->i_blkbits;
213 IWRITE_LOCK(ip, RDWRLOCK_NORMAL);
215 IREAD_LOCK(ip, RDWRLOCK_NORMAL);
217 if (((lblock64 << ip->i_sb->s_blocksize_bits) < ip->i_size) &&
218 (!xtLookup(ip, lblock64, xlen, &xflag, &xaddr, &xlen, 0)) &&
230 rc = extRecord(ip, &xad);
236 map_bh(bh_result, ip->i_sb, xaddr);
237 bh_result->b_size = xlen << ip->i_blkbits;
246 if ((rc = extHint(ip, lblock64 << ip->i_sb->s_blocksize_bits, &xad)))
248 rc = extAlloc(ip, xlen, lblock64, &xad, false);
253 map_bh(bh_result, ip->i_sb, addressXAD(&xad));
254 bh_result->b_size = lengthXAD(&xad) << ip->i_blkbits;
261 IWRITE_UNLOCK(ip);
263 IREAD_UNLOCK(ip);
365 void jfs_truncate_nolock(struct inode *ip, loff_t length)
372 if (test_cflag(COMMIT_Nolink, ip)) {
373 xtTruncate(0, ip, length, COMMIT_WMAP);
378 tid = txBegin(ip->i_sb, 0);
386 mutex_lock(&JFS_IP(ip)->commit_mutex);
388 newsize = xtTruncate(tid, ip, length,
392 mutex_unlock(&JFS_IP(ip)->commit_mutex);
396 inode_set_mtime_to_ts(ip, inode_set_ctime_current(ip));
397 mark_inode_dirty(ip);
399 txCommit(tid, 1, &ip, 0);
401 mutex_unlock(&JFS_IP(ip)->commit_mutex);
405 void jfs_truncate(struct inode *ip)
407 jfs_info("jfs_truncate: size = 0x%lx", (ulong) ip->i_size);
409 block_truncate_page(ip->i_mapping, ip->i_size, jfs_get_block);
411 IWRITE_LOCK(ip, RDWRLOCK_NORMAL);
412 jfs_truncate_nolock(ip, ip->i_size);
413 IWRITE_UNLOCK(ip);