Lines Matching refs:ip

348 	struct gfs2_inode *ip = GFS2_I(jd->jd_inode);  in gfs2_jdesc_check()  local
357 if (gfs2_write_alloc_required(ip, 0, size)) { in gfs2_jdesc_check()
358 gfs2_consist_inode(ip); in gfs2_jdesc_check()
401 struct gfs2_inode *ip = GFS2_I(sdp->sd_jdesc->jd_inode); in gfs2_make_fs_rw() local
402 struct gfs2_glock *j_gl = ip->i_gl; in gfs2_make_fs_rw()
645 struct gfs2_inode *ip; in gfs2_lock_fs_check_clean() local
658 ip = GFS2_I(jd->jd_inode); in gfs2_lock_fs_check_clean()
659 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &lfcc->gh); in gfs2_lock_fs_check_clean()
696 void gfs2_dinode_out(const struct gfs2_inode *ip, void *buf) in gfs2_dinode_out() argument
703 str->di_num.no_addr = cpu_to_be64(ip->i_no_addr); in gfs2_dinode_out()
704 str->di_num.no_formal_ino = cpu_to_be64(ip->i_no_formal_ino); in gfs2_dinode_out()
705 str->di_mode = cpu_to_be32(ip->i_inode.i_mode); in gfs2_dinode_out()
706 str->di_uid = cpu_to_be32(i_uid_read(&ip->i_inode)); in gfs2_dinode_out()
707 str->di_gid = cpu_to_be32(i_gid_read(&ip->i_inode)); in gfs2_dinode_out()
708 str->di_nlink = cpu_to_be32(ip->i_inode.i_nlink); in gfs2_dinode_out()
709 str->di_size = cpu_to_be64(i_size_read(&ip->i_inode)); in gfs2_dinode_out()
710 str->di_blocks = cpu_to_be64(gfs2_get_inode_blocks(&ip->i_inode)); in gfs2_dinode_out()
711 str->di_atime = cpu_to_be64(ip->i_inode.i_atime.tv_sec); in gfs2_dinode_out()
712 str->di_mtime = cpu_to_be64(ip->i_inode.i_mtime.tv_sec); in gfs2_dinode_out()
713 str->di_ctime = cpu_to_be64(ip->i_inode.i_ctime.tv_sec); in gfs2_dinode_out()
715 str->di_goal_meta = cpu_to_be64(ip->i_goal); in gfs2_dinode_out()
716 str->di_goal_data = cpu_to_be64(ip->i_goal); in gfs2_dinode_out()
717 str->di_generation = cpu_to_be64(ip->i_generation); in gfs2_dinode_out()
719 str->di_flags = cpu_to_be32(ip->i_diskflags); in gfs2_dinode_out()
720 str->di_height = cpu_to_be16(ip->i_height); in gfs2_dinode_out()
721 str->di_payload_format = cpu_to_be32(S_ISDIR(ip->i_inode.i_mode) && in gfs2_dinode_out()
722 !(ip->i_diskflags & GFS2_DIF_EXHASH) ? in gfs2_dinode_out()
724 str->di_depth = cpu_to_be16(ip->i_depth); in gfs2_dinode_out()
725 str->di_entries = cpu_to_be32(ip->i_entries); in gfs2_dinode_out()
727 str->di_eattr = cpu_to_be64(ip->i_eattr); in gfs2_dinode_out()
728 str->di_atime_nsec = cpu_to_be32(ip->i_inode.i_atime.tv_nsec); in gfs2_dinode_out()
729 str->di_mtime_nsec = cpu_to_be32(ip->i_inode.i_mtime.tv_nsec); in gfs2_dinode_out()
730 str->di_ctime_nsec = cpu_to_be32(ip->i_inode.i_ctime.tv_nsec); in gfs2_dinode_out()
743 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_write_inode() local
745 struct address_space *metamapping = gfs2_glock2aspace(ip->i_gl); in gfs2_write_inode()
750 gfs2_log_flush(GFS2_SB(inode), ip->i_gl, NORMAL_FLUSH); in gfs2_write_inode()
777 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_dirty_inode() local
788 if (!gfs2_glock_is_locked_by_me(ip->i_gl)) { in gfs2_dirty_inode()
789 ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); in gfs2_dirty_inode()
795 } else if (WARN_ON_ONCE(ip->i_gl->gl_state != LM_ST_EXCLUSIVE)) in gfs2_dirty_inode()
807 ret = gfs2_meta_inode_buffer(ip, &bh); in gfs2_dirty_inode()
809 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_dirty_inode()
810 gfs2_dinode_out(ip, bh->b_data); in gfs2_dirty_inode()
1300 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_drop_inode() local
1302 if (!test_bit(GIF_FREE_VFS_INODE, &ip->i_flags) && inode->i_nlink) { in gfs2_drop_inode()
1303 struct gfs2_glock *gl = ip->i_iopen_gh.gh_gl; in gfs2_drop_inode()
1425 static void gfs2_final_release_pages(struct gfs2_inode *ip) in gfs2_final_release_pages() argument
1427 struct inode *inode = &ip->i_inode; in gfs2_final_release_pages()
1428 struct gfs2_glock *gl = ip->i_gl; in gfs2_final_release_pages()
1430 truncate_inode_pages(gfs2_glock2aspace(ip->i_gl), 0); in gfs2_final_release_pages()
1439 static int gfs2_dinode_dealloc(struct gfs2_inode *ip) in gfs2_dinode_dealloc() argument
1441 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_dinode_dealloc()
1446 if (gfs2_get_inode_blocks(&ip->i_inode) != 1) { in gfs2_dinode_dealloc()
1447 gfs2_consist_inode(ip); in gfs2_dinode_dealloc()
1455 error = gfs2_quota_hold(ip, NO_UID_QUOTA_CHANGE, NO_GID_QUOTA_CHANGE); in gfs2_dinode_dealloc()
1459 rgd = gfs2_blk2rgrpd(sdp, ip->i_no_addr, 1); in gfs2_dinode_dealloc()
1461 gfs2_consist_inode(ip); in gfs2_dinode_dealloc()
1475 gfs2_free_di(rgd, ip); in gfs2_dinode_dealloc()
1477 gfs2_final_release_pages(ip); in gfs2_dinode_dealloc()
1484 gfs2_quota_unhold(ip); in gfs2_dinode_dealloc()
1513 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_evict_inode() local
1517 if (test_bit(GIF_FREE_VFS_INODE, &ip->i_flags)) { in gfs2_evict_inode()
1526 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_SKIP, &gh); in gfs2_evict_inode()
1528 ip->i_iopen_gh.gh_flags |= GL_NOCACHE; in gfs2_evict_inode()
1529 gfs2_glock_dq_uninit(&ip->i_iopen_gh); in gfs2_evict_inode()
1533 if (!test_bit(GIF_ALLOC_FAILED, &ip->i_flags)) { in gfs2_evict_inode()
1534 error = gfs2_check_blk_type(sdp, ip->i_no_addr, GFS2_BLKST_UNLINKED); in gfs2_evict_inode()
1539 if (test_bit(GIF_INVALID, &ip->i_flags)) { in gfs2_evict_inode()
1540 error = gfs2_inode_refresh(ip); in gfs2_evict_inode()
1545 ip->i_iopen_gh.gh_flags |= GL_NOCACHE; in gfs2_evict_inode()
1546 gfs2_glock_dq_wait(&ip->i_iopen_gh); in gfs2_evict_inode()
1547 gfs2_holder_reinit(LM_ST_EXCLUSIVE, LM_FLAG_TRY_1CB | GL_NOCACHE, &ip->i_iopen_gh); in gfs2_evict_inode()
1548 error = gfs2_glock_nq(&ip->i_iopen_gh); in gfs2_evict_inode()
1555 (ip->i_diskflags & GFS2_DIF_EXHASH)) { in gfs2_evict_inode()
1556 error = gfs2_dir_exhash_dealloc(ip); in gfs2_evict_inode()
1561 if (ip->i_eattr) { in gfs2_evict_inode()
1562 error = gfs2_ea_dealloc(ip); in gfs2_evict_inode()
1567 if (!gfs2_is_stuffed(ip)) { in gfs2_evict_inode()
1568 error = gfs2_file_dealloc(ip); in gfs2_evict_inode()
1573 error = gfs2_dinode_dealloc(ip); in gfs2_evict_inode()
1577 gfs2_log_flush(sdp, ip->i_gl, NORMAL_FLUSH); in gfs2_evict_inode()
1578 if (test_bit(GLF_DIRTY, &ip->i_gl->gl_flags)) { in gfs2_evict_inode()
1579 struct address_space *metamapping = gfs2_glock2aspace(ip->i_gl); in gfs2_evict_inode()
1584 gfs2_ail_flush(ip->i_gl, 0); in gfs2_evict_inode()
1596 if (gfs2_rs_active(ip->i_res)) in gfs2_evict_inode()
1597 gfs2_rs_deltree(ip->i_res); in gfs2_evict_inode()
1599 if (test_bit(HIF_HOLDER, &ip->i_iopen_gh.gh_iflags)) { in gfs2_evict_inode()
1600 ip->i_iopen_gh.gh_flags |= GL_NOCACHE; in gfs2_evict_inode()
1601 gfs2_glock_dq(&ip->i_iopen_gh); in gfs2_evict_inode()
1603 gfs2_holder_uninit(&ip->i_iopen_gh); in gfs2_evict_inode()
1610 gfs2_rs_delete(ip, NULL); in gfs2_evict_inode()
1611 gfs2_ordered_del_inode(ip); in gfs2_evict_inode()
1613 gfs2_dir_hash_inval(ip); in gfs2_evict_inode()
1614 ip->i_gl->gl_object = NULL; in gfs2_evict_inode()
1615 flush_delayed_work(&ip->i_gl->gl_work); in gfs2_evict_inode()
1616 gfs2_glock_add_to_lru(ip->i_gl); in gfs2_evict_inode()
1617 gfs2_glock_put(ip->i_gl); in gfs2_evict_inode()
1618 ip->i_gl = NULL; in gfs2_evict_inode()
1619 if (ip->i_iopen_gh.gh_gl) { in gfs2_evict_inode()
1620 ip->i_iopen_gh.gh_gl->gl_object = NULL; in gfs2_evict_inode()
1621 ip->i_iopen_gh.gh_flags |= GL_NOCACHE; in gfs2_evict_inode()
1622 gfs2_glock_dq_uninit(&ip->i_iopen_gh); in gfs2_evict_inode()
1628 struct gfs2_inode *ip; in gfs2_alloc_inode() local
1630 ip = kmem_cache_alloc(gfs2_inode_cachep, GFP_KERNEL); in gfs2_alloc_inode()
1631 if (ip) { in gfs2_alloc_inode()
1632 ip->i_flags = 0; in gfs2_alloc_inode()
1633 ip->i_gl = NULL; in gfs2_alloc_inode()
1634 ip->i_rgd = NULL; in gfs2_alloc_inode()
1635 ip->i_res = NULL; in gfs2_alloc_inode()
1637 return &ip->i_inode; in gfs2_alloc_inode()