Lines Matching refs:inode
30 int jffs2_do_setattr (struct inode *inode, struct iattr *iattr) in jffs2_do_setattr() argument
33 struct jffs2_inode_info *f = JFFS2_INODE_INFO(inode); in jffs2_do_setattr()
34 struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb); in jffs2_do_setattr()
44 jffs2_dbg(1, "%s(): ino #%lu\n", __func__, inode->i_ino); in jffs2_do_setattr()
51 if (S_ISBLK(inode->i_mode) || S_ISCHR(inode->i_mode)) { in jffs2_do_setattr()
53 mdatalen = jffs2_encode_dev(&dev, inode->i_rdev); in jffs2_do_setattr()
57 } else if (S_ISLNK(inode->i_mode)) { in jffs2_do_setattr()
78 if (S_ISLNK(inode->i_mode)) in jffs2_do_setattr()
87 if (S_ISLNK(inode->i_mode)) in jffs2_do_setattr()
99 ri->ino = cpu_to_je32(inode->i_ino); in jffs2_do_setattr()
103 from_kuid(&init_user_ns, iattr->ia_uid):i_uid_read(inode)); in jffs2_do_setattr()
105 from_kgid(&init_user_ns, iattr->ia_gid):i_gid_read(inode)); in jffs2_do_setattr()
110 ri->mode = cpu_to_jemode(inode->i_mode); in jffs2_do_setattr()
113 ri->isize = cpu_to_je32((ivalid & ATTR_SIZE)?iattr->ia_size:inode->i_size); in jffs2_do_setattr()
114 ri->atime = cpu_to_je32(I_SEC((ivalid & ATTR_ATIME)?iattr->ia_atime:inode->i_atime)); in jffs2_do_setattr()
115 ri->mtime = cpu_to_je32(I_SEC((ivalid & ATTR_MTIME)?iattr->ia_mtime:inode->i_mtime)); in jffs2_do_setattr()
116 ri->ctime = cpu_to_je32(I_SEC((ivalid & ATTR_CTIME)?iattr->ia_ctime:inode->i_ctime)); in jffs2_do_setattr()
121 if (ivalid & ATTR_SIZE && inode->i_size < iattr->ia_size) { in jffs2_do_setattr()
124 ri->dsize = cpu_to_je32(iattr->ia_size - inode->i_size); in jffs2_do_setattr()
125 ri->offset = cpu_to_je32(inode->i_size); in jffs2_do_setattr()
138 if (S_ISLNK(inode->i_mode)) in jffs2_do_setattr()
148 inode->i_atime = ITIME(je32_to_cpu(ri->atime)); in jffs2_do_setattr()
149 inode->i_ctime = ITIME(je32_to_cpu(ri->ctime)); in jffs2_do_setattr()
150 inode->i_mtime = ITIME(je32_to_cpu(ri->mtime)); in jffs2_do_setattr()
151 inode->i_mode = jemode_to_cpu(ri->mode); in jffs2_do_setattr()
152 i_uid_write(inode, je16_to_cpu(ri->uid)); in jffs2_do_setattr()
153 i_gid_write(inode, je16_to_cpu(ri->gid)); in jffs2_do_setattr()
158 if (ivalid & ATTR_SIZE && inode->i_size > iattr->ia_size) in jffs2_do_setattr()
161 if (ivalid & ATTR_SIZE && inode->i_size < iattr->ia_size) { in jffs2_do_setattr()
163 inode->i_size = iattr->ia_size; in jffs2_do_setattr()
164 inode->i_blocks = (inode->i_size + 511) >> 9; in jffs2_do_setattr()
183 if (ivalid & ATTR_SIZE && inode->i_size > iattr->ia_size) { in jffs2_do_setattr()
184 truncate_setsize(inode, iattr->ia_size); in jffs2_do_setattr()
185 inode->i_blocks = (inode->i_size + 511) >> 9; in jffs2_do_setattr()
193 struct inode *inode = d_inode(dentry); in jffs2_setattr() local
196 rc = inode_change_ok(inode, iattr); in jffs2_setattr()
200 rc = jffs2_do_setattr(inode, iattr); in jffs2_setattr()
202 rc = posix_acl_chmod(inode, inode->i_mode); in jffs2_setattr()
235 void jffs2_evict_inode (struct inode *inode) in jffs2_evict_inode() argument
240 struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb); in jffs2_evict_inode()
241 struct jffs2_inode_info *f = JFFS2_INODE_INFO(inode); in jffs2_evict_inode()
244 __func__, inode->i_ino, inode->i_mode); in jffs2_evict_inode()
245 truncate_inode_pages_final(&inode->i_data); in jffs2_evict_inode()
246 clear_inode(inode); in jffs2_evict_inode()
250 struct inode *jffs2_iget(struct super_block *sb, unsigned long ino) in jffs2_iget()
256 struct inode *inode; in jffs2_iget() local
262 inode = iget_locked(sb, ino); in jffs2_iget()
263 if (!inode) in jffs2_iget()
265 if (!(inode->i_state & I_NEW)) in jffs2_iget()
266 return inode; in jffs2_iget()
268 f = JFFS2_INODE_INFO(inode); in jffs2_iget()
269 c = JFFS2_SB_INFO(inode->i_sb); in jffs2_iget()
274 ret = jffs2_do_read_inode(c, f, inode->i_ino, &latest_node); in jffs2_iget()
278 iget_failed(inode); in jffs2_iget()
281 inode->i_mode = jemode_to_cpu(latest_node.mode); in jffs2_iget()
282 i_uid_write(inode, je16_to_cpu(latest_node.uid)); in jffs2_iget()
283 i_gid_write(inode, je16_to_cpu(latest_node.gid)); in jffs2_iget()
284 inode->i_size = je32_to_cpu(latest_node.isize); in jffs2_iget()
285 inode->i_atime = ITIME(je32_to_cpu(latest_node.atime)); in jffs2_iget()
286 inode->i_mtime = ITIME(je32_to_cpu(latest_node.mtime)); in jffs2_iget()
287 inode->i_ctime = ITIME(je32_to_cpu(latest_node.ctime)); in jffs2_iget()
289 set_nlink(inode, f->inocache->pino_nlink); in jffs2_iget()
291 inode->i_blocks = (inode->i_size + 511) >> 9; in jffs2_iget()
293 switch (inode->i_mode & S_IFMT) { in jffs2_iget()
296 inode->i_op = &jffs2_symlink_inode_operations; in jffs2_iget()
302 set_nlink(inode, 2); /* parent and '.' */ in jffs2_iget()
306 inc_nlink(inode); in jffs2_iget()
309 if (inode->i_ino == 1) in jffs2_iget()
310 inc_nlink(inode); in jffs2_iget()
312 inode->i_op = &jffs2_dir_inode_operations; in jffs2_iget()
313 inode->i_fop = &jffs2_dir_operations; in jffs2_iget()
317 inode->i_op = &jffs2_file_inode_operations; in jffs2_iget()
318 inode->i_fop = &jffs2_file_operations; in jffs2_iget()
319 inode->i_mapping->a_ops = &jffs2_file_address_operations; in jffs2_iget()
320 inode->i_mapping->nrpages = 0; in jffs2_iget()
337 (unsigned long)inode->i_ino); in jffs2_iget()
347 inode->i_op = &jffs2_file_inode_operations; in jffs2_iget()
348 init_special_inode(inode, inode->i_mode, rdev); in jffs2_iget()
353 __func__, inode->i_mode, (unsigned long)inode->i_ino); in jffs2_iget()
359 unlock_new_inode(inode); in jffs2_iget()
360 return inode; in jffs2_iget()
367 iget_failed(inode); in jffs2_iget()
371 void jffs2_dirty_inode(struct inode *inode, int flags) in jffs2_dirty_inode() argument
375 if (!(inode->i_state & I_DIRTY_DATASYNC)) { in jffs2_dirty_inode()
377 __func__, inode->i_ino); in jffs2_dirty_inode()
382 __func__, inode->i_ino); in jffs2_dirty_inode()
385 iattr.ia_mode = inode->i_mode; in jffs2_dirty_inode()
386 iattr.ia_uid = inode->i_uid; in jffs2_dirty_inode()
387 iattr.ia_gid = inode->i_gid; in jffs2_dirty_inode()
388 iattr.ia_atime = inode->i_atime; in jffs2_dirty_inode()
389 iattr.ia_mtime = inode->i_mtime; in jffs2_dirty_inode()
390 iattr.ia_ctime = inode->i_ctime; in jffs2_dirty_inode()
392 jffs2_do_setattr(inode, &iattr); in jffs2_dirty_inode()
422 struct inode *jffs2_new_inode (struct inode *dir_i, umode_t mode, struct jffs2_raw_inode *ri) in jffs2_new_inode()
424 struct inode *inode; in jffs2_new_inode() local
435 inode = new_inode(sb); in jffs2_new_inode()
437 if (!inode) in jffs2_new_inode()
440 f = JFFS2_INODE_INFO(inode); in jffs2_new_inode()
458 ret = jffs2_init_acl_pre(dir_i, inode, &mode); in jffs2_new_inode()
461 make_bad_inode(inode); in jffs2_new_inode()
462 iput(inode); in jffs2_new_inode()
468 make_bad_inode(inode); in jffs2_new_inode()
469 iput(inode); in jffs2_new_inode()
472 set_nlink(inode, 1); in jffs2_new_inode()
473 inode->i_ino = je32_to_cpu(ri->ino); in jffs2_new_inode()
474 inode->i_mode = jemode_to_cpu(ri->mode); in jffs2_new_inode()
475 i_gid_write(inode, je16_to_cpu(ri->gid)); in jffs2_new_inode()
476 i_uid_write(inode, je16_to_cpu(ri->uid)); in jffs2_new_inode()
477 inode->i_atime = inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC; in jffs2_new_inode()
478 ri->atime = ri->mtime = ri->ctime = cpu_to_je32(I_SEC(inode->i_mtime)); in jffs2_new_inode()
480 inode->i_blocks = 0; in jffs2_new_inode()
481 inode->i_size = 0; in jffs2_new_inode()
483 if (insert_inode_locked(inode) < 0) { in jffs2_new_inode()
485 make_bad_inode(inode); in jffs2_new_inode()
486 iput(inode); in jffs2_new_inode()
490 return inode; in jffs2_new_inode()
516 struct inode *root_i; in jffs2_do_fill_super()
623 struct inode *inode; in jffs2_gc_fetch_inode() local
641 inode = ilookup(OFNI_BS_2SFFJ(c), inum); in jffs2_gc_fetch_inode()
642 if (!inode) { in jffs2_gc_fetch_inode()
670 inode = jffs2_iget(OFNI_BS_2SFFJ(c), inum); in jffs2_gc_fetch_inode()
671 if (IS_ERR(inode)) in jffs2_gc_fetch_inode()
672 return ERR_CAST(inode); in jffs2_gc_fetch_inode()
674 if (is_bad_inode(inode)) { in jffs2_gc_fetch_inode()
678 iput(inode); in jffs2_gc_fetch_inode()
682 return JFFS2_INODE_INFO(inode); in jffs2_gc_fetch_inode()
690 struct inode *inode = OFNI_EDONI_2SFFJ(f); in jffs2_gc_fetch_page() local
693 pg = read_cache_page(inode->i_mapping, offset >> PAGE_CACHE_SHIFT, in jffs2_gc_fetch_page()
694 (void *)jffs2_do_readpage_unlock, inode); in jffs2_gc_fetch_page()