Lines Matching refs:inode
32 static int reiserfs_file_release(struct inode *inode, struct file *filp)
39 BUG_ON(!S_ISREG(inode->i_mode));
41 if (!atomic_dec_and_mutex_lock(&REISERFS_I(inode)->openers,
42 &REISERFS_I(inode)->tailpack))
46 if ((!(REISERFS_I(inode)->i_flags & i_pack_on_close_mask) ||
47 !tail_has_to_be_packed(inode)) &&
48 REISERFS_I(inode)->i_prealloc_count <= 0) {
49 mutex_unlock(&REISERFS_I(inode)->tailpack);
53 reiserfs_write_lock(inode->i_sb);
60 err = journal_begin(&th, inode->i_sb, 1);
63 * uh oh, we can't allow the inode to go away while there
68 err = journal_join_abort(&th, inode->i_sb);
73 * the inode which will disallow unmount from ever
77 * will leak blocks on disk. Lets pin the inode
80 igrab(inode);
81 reiserfs_warning(inode->i_sb, "clm-9001",
82 "pinning inode %lu because the "
84 inode->i_ino);
88 reiserfs_update_inode_transaction(inode);
91 reiserfs_discard_prealloc(&th, inode);
100 (REISERFS_I(inode)->i_flags & i_pack_on_close_mask) &&
101 tail_has_to_be_packed(inode)) {
109 err = reiserfs_truncate_file(inode, 0);
112 reiserfs_write_unlock(inode->i_sb);
113 mutex_unlock(&REISERFS_I(inode)->tailpack);
117 static int reiserfs_file_open(struct inode *inode, struct file *file)
119 int err = dquot_file_open(inode, file);
122 if (!atomic_inc_not_zero(&REISERFS_I(inode)->openers)) {
123 mutex_lock(&REISERFS_I(inode)->tailpack);
124 atomic_inc(&REISERFS_I(inode)->openers);
125 mutex_unlock(&REISERFS_I(inode)->tailpack);
130 void reiserfs_vfs_truncate_file(struct inode *inode)
132 mutex_lock(&REISERFS_I(inode)->tailpack);
133 reiserfs_truncate_file(inode, 1);
134 mutex_unlock(&REISERFS_I(inode)->tailpack);
147 struct inode *inode = filp->f_mapping->host;
155 inode_lock(inode);
156 BUG_ON(!S_ISREG(inode->i_mode));
157 err = sync_mapping_buffers(inode->i_mapping);
158 reiserfs_write_lock(inode->i_sb);
159 barrier_done = reiserfs_commit_for_inode(inode);
160 reiserfs_write_unlock(inode->i_sb);
161 if (barrier_done != 1 && reiserfs_barrier_flush(inode->i_sb))
162 blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL);
163 inode_unlock(inode);
170 int reiserfs_commit_page(struct inode *inode, struct page *page,
177 unsigned long i_size_index = inode->i_size >> PAGE_SHIFT;
179 int logit = reiserfs_file_data_log(inode);
180 struct super_block *s = inode->i_sb;
186 blocksize = i_blocksize(inode);
193 reiserfs_update_inode_transaction(inode);
216 if (reiserfs_data_ordered(inode->i_sb) &&
218 reiserfs_add_ordered_list(inode, bh);