Lines Matching refs:inode

16 static int hpfs_file_release(struct inode *inode, struct file *file)
18 hpfs_lock(inode->i_sb);
19 hpfs_write_if_changed(inode);
20 hpfs_unlock(inode->i_sb);
26 struct inode *inode = file->f_mapping->host;
32 return sync_blockdev(inode->i_sb->s_bdev);
40 static secno hpfs_bmap(struct inode *inode, unsigned file_secno, unsigned *n_secs)
42 struct hpfs_inode_info *hpfs_inode = hpfs_i(inode);
46 if (BLOCKS(hpfs_i(inode)->mmu_private) <= file_secno) return 0;
52 if (!(fnode = hpfs_map_fnode(inode->i_sb, inode->i_ino, &bh))) return 0;
53 disk_secno = hpfs_bplus_lookup(inode->i_sb, inode, &fnode->btree, file_secno, bh);
55 if (hpfs_chk_sectors(inode->i_sb, disk_secno, 1, "bmap")) return 0;
65 void hpfs_truncate(struct inode *i)
78 static int hpfs_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create)
83 hpfs_lock(inode->i_sb);
84 s = hpfs_bmap(inode, iblock, &n_secs);
88 n_secs = hpfs_search_hotfix_map_for_range(inode->i_sb, s, n_secs);
90 s = hpfs_search_hotfix_map(inode->i_sb, s);
93 map_bh(bh_result, inode->i_sb, s);
98 if (iblock<<9 != hpfs_i(inode)->mmu_private) {
103 if ((s = hpfs_add_sector_to_btree(inode->i_sb, inode->i_ino, 1, inode->i_blocks - 1)) == -1) {
104 hpfs_truncate_btree(inode->i_sb, inode->i_ino, 1, inode->i_blocks - 1);
108 inode->i_blocks++;
109 hpfs_i(inode)->mmu_private += 512;
111 map_bh(bh_result, inode->i_sb, hpfs_search_hotfix_map(inode->i_sb, s));
115 hpfs_unlock(inode->i_sb);
142 struct inode *inode = mapping->host;
144 hpfs_lock(inode->i_sb);
146 if (to > inode->i_size) {
147 truncate_pagecache(inode, inode->i_size);
148 hpfs_truncate(inode);
151 hpfs_unlock(inode->i_sb);
174 struct inode *inode = mapping->host;
181 hpfs_lock(inode->i_sb);
182 hpfs_i(inode)->i_dirty = 1;
183 hpfs_unlock(inode->i_sb);
193 static int hpfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, u64 start, u64 len)
195 return generic_block_fiemap(inode, fieinfo, start, len, hpfs_get_block);