Lines Matching refs:inode
32 static int reiserfs_file_release(struct inode *inode, struct file *filp) in reiserfs_file_release() argument
39 BUG_ON(!S_ISREG(inode->i_mode)); in reiserfs_file_release()
41 if (atomic_add_unless(&REISERFS_I(inode)->openers, -1, 1)) in reiserfs_file_release()
44 mutex_lock(&REISERFS_I(inode)->tailpack); in reiserfs_file_release()
46 if (!atomic_dec_and_test(&REISERFS_I(inode)->openers)) { in reiserfs_file_release()
47 mutex_unlock(&REISERFS_I(inode)->tailpack); in reiserfs_file_release()
52 if ((!(REISERFS_I(inode)->i_flags & i_pack_on_close_mask) || in reiserfs_file_release()
53 !tail_has_to_be_packed(inode)) && in reiserfs_file_release()
54 REISERFS_I(inode)->i_prealloc_count <= 0) { in reiserfs_file_release()
55 mutex_unlock(&REISERFS_I(inode)->tailpack); in reiserfs_file_release()
59 reiserfs_write_lock(inode->i_sb); in reiserfs_file_release()
66 err = journal_begin(&th, inode->i_sb, 1); in reiserfs_file_release()
74 err = journal_join_abort(&th, inode->i_sb); in reiserfs_file_release()
86 igrab(inode); in reiserfs_file_release()
87 reiserfs_warning(inode->i_sb, "clm-9001", in reiserfs_file_release()
90 inode->i_ino); in reiserfs_file_release()
94 reiserfs_update_inode_transaction(inode); in reiserfs_file_release()
97 reiserfs_discard_prealloc(&th, inode); in reiserfs_file_release()
106 (REISERFS_I(inode)->i_flags & i_pack_on_close_mask) && in reiserfs_file_release()
107 tail_has_to_be_packed(inode)) { in reiserfs_file_release()
115 err = reiserfs_truncate_file(inode, 0); in reiserfs_file_release()
118 reiserfs_write_unlock(inode->i_sb); in reiserfs_file_release()
119 mutex_unlock(&REISERFS_I(inode)->tailpack); in reiserfs_file_release()
123 static int reiserfs_file_open(struct inode *inode, struct file *file) in reiserfs_file_open() argument
125 int err = dquot_file_open(inode, file); in reiserfs_file_open()
128 if (!atomic_inc_not_zero(&REISERFS_I(inode)->openers)) { in reiserfs_file_open()
129 mutex_lock(&REISERFS_I(inode)->tailpack); in reiserfs_file_open()
130 atomic_inc(&REISERFS_I(inode)->openers); in reiserfs_file_open()
131 mutex_unlock(&REISERFS_I(inode)->tailpack); in reiserfs_file_open()
136 void reiserfs_vfs_truncate_file(struct inode *inode) in reiserfs_vfs_truncate_file() argument
138 mutex_lock(&REISERFS_I(inode)->tailpack); in reiserfs_vfs_truncate_file()
139 reiserfs_truncate_file(inode, 1); in reiserfs_vfs_truncate_file()
140 mutex_unlock(&REISERFS_I(inode)->tailpack); in reiserfs_vfs_truncate_file()
153 struct inode *inode = filp->f_mapping->host; in reiserfs_sync_file() local
157 err = filemap_write_and_wait_range(inode->i_mapping, start, end); in reiserfs_sync_file()
161 mutex_lock(&inode->i_mutex); in reiserfs_sync_file()
162 BUG_ON(!S_ISREG(inode->i_mode)); in reiserfs_sync_file()
163 err = sync_mapping_buffers(inode->i_mapping); in reiserfs_sync_file()
164 reiserfs_write_lock(inode->i_sb); in reiserfs_sync_file()
165 barrier_done = reiserfs_commit_for_inode(inode); in reiserfs_sync_file()
166 reiserfs_write_unlock(inode->i_sb); in reiserfs_sync_file()
167 if (barrier_done != 1 && reiserfs_barrier_flush(inode->i_sb)) in reiserfs_sync_file()
168 blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL); in reiserfs_sync_file()
169 mutex_unlock(&inode->i_mutex); in reiserfs_sync_file()
176 int reiserfs_commit_page(struct inode *inode, struct page *page, in reiserfs_commit_page() argument
183 unsigned long i_size_index = inode->i_size >> PAGE_CACHE_SHIFT; in reiserfs_commit_page()
185 int logit = reiserfs_file_data_log(inode); in reiserfs_commit_page()
186 struct super_block *s = inode->i_sb; in reiserfs_commit_page()
192 blocksize = 1 << inode->i_blkbits; in reiserfs_commit_page()
199 reiserfs_update_inode_transaction(inode); in reiserfs_commit_page()
222 if (reiserfs_data_ordered(inode->i_sb) && in reiserfs_commit_page()
224 reiserfs_add_ordered_list(inode, bh); in reiserfs_commit_page()