Lines Matching refs:ip
48 struct gfs2_inode *ip = GFS2_I(inode); in iget_test() local
51 if (ip->i_no_addr == data->no_addr) { in iget_test()
64 struct gfs2_inode *ip = GFS2_I(inode); in iget_set() local
70 ip->i_no_addr = data->no_addr; in iget_set()
144 struct gfs2_inode *ip; in gfs2_inode_lookup() local
149 ip = GFS2_I(inode); in gfs2_inode_lookup()
156 ip->i_no_formal_ino = no_formal_ino; in gfs2_inode_lookup()
158 error = gfs2_glock_get(sdp, no_addr, &gfs2_inode_glops, CREATE, &ip->i_gl); in gfs2_inode_lookup()
161 ip->i_gl->gl_object = ip; in gfs2_inode_lookup()
167 set_bit(GIF_INVALID, &ip->i_flags); in gfs2_inode_lookup()
168 error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh); in gfs2_inode_lookup()
172 ip->i_iopen_gh.gh_gl->gl_object = ip; in gfs2_inode_lookup()
192 ip->i_iopen_gh.gh_flags |= GL_NOCACHE; in gfs2_inode_lookup()
193 ip->i_iopen_gh.gh_gl->gl_object = NULL; in gfs2_inode_lookup()
194 gfs2_glock_dq_uninit(&ip->i_iopen_gh); in gfs2_inode_lookup()
199 ip->i_gl->gl_object = NULL; in gfs2_inode_lookup()
200 gfs2_glock_put(ip->i_gl); in gfs2_inode_lookup()
379 static int alloc_dinode(struct gfs2_inode *ip, u32 flags, unsigned *dblocks) in alloc_dinode() argument
381 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in alloc_dinode()
385 error = gfs2_quota_lock_check(ip, &ap); in alloc_dinode()
389 error = gfs2_inplace_reserve(ip, &ap); in alloc_dinode()
397 error = gfs2_alloc_blocks(ip, &ip->i_no_addr, dblocks, 1, &ip->i_generation); in alloc_dinode()
398 ip->i_no_formal_ino = ip->i_generation; in alloc_dinode()
399 ip->i_inode.i_ino = ip->i_no_addr; in alloc_dinode()
400 ip->i_goal = ip->i_no_addr; in alloc_dinode()
405 gfs2_inplace_release(ip); in alloc_dinode()
407 gfs2_quota_unlock(ip); in alloc_dinode()
437 static void gfs2_init_xattr(struct gfs2_inode *ip) in gfs2_init_xattr() argument
439 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_init_xattr()
443 bh = gfs2_meta_new(ip->i_gl, ip->i_eattr); in gfs2_init_xattr()
444 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_init_xattr()
465 static void init_dinode(struct gfs2_inode *dip, struct gfs2_inode *ip, in init_dinode() argument
471 dibh = gfs2_meta_new(ip->i_gl, ip->i_no_addr); in init_dinode()
472 gfs2_trans_add_meta(ip->i_gl, dibh); in init_dinode()
474 gfs2_dinode_out(ip, di); in init_dinode()
476 di->di_major = cpu_to_be32(MAJOR(ip->i_inode.i_rdev)); in init_dinode()
477 di->di_minor = cpu_to_be32(MINOR(ip->i_inode.i_rdev)); in init_dinode()
485 switch(ip->i_inode.i_mode & S_IFMT) { in init_dinode()
490 memcpy(dibh->b_data + sizeof(struct gfs2_dinode), symname, ip->i_inode.i_size); in init_dinode()
521 struct gfs2_inode *ip, struct gfs2_diradd *da) in link_dinode() argument
545 error = gfs2_dir_add(&dip->i_inode, name, ip, da); in link_dinode()
593 struct gfs2_inode *dip = GFS2_I(dir), *ip; in gfs2_create_inode() local
655 ip = GFS2_I(inode); in gfs2_create_inode()
656 error = gfs2_rs_alloc(ip); in gfs2_create_inode()
668 ip->i_goal = dip->i_goal; in gfs2_create_inode()
669 ip->i_diskflags = 0; in gfs2_create_inode()
670 ip->i_eattr = 0; in gfs2_create_inode()
671 ip->i_height = 0; in gfs2_create_inode()
672 ip->i_depth = 0; in gfs2_create_inode()
673 ip->i_entries = 0; in gfs2_create_inode()
679 ip->i_diskflags |= GFS2_DIF_JDATA; in gfs2_create_inode()
683 ip->i_diskflags |= (dip->i_diskflags & GFS2_DIF_INHERIT_JDATA); in gfs2_create_inode()
684 ip->i_diskflags |= GFS2_DIF_JDATA; in gfs2_create_inode()
685 ip->i_entries = 2; in gfs2_create_inode()
697 error = alloc_dinode(ip, aflags, &blocks); in gfs2_create_inode()
703 error = gfs2_glock_get(sdp, ip->i_no_addr, &gfs2_inode_glops, CREATE, &ip->i_gl); in gfs2_create_inode()
707 ip->i_gl->gl_object = ip; in gfs2_create_inode()
708 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_SKIP, ghs + 1); in gfs2_create_inode()
717 ip->i_eattr = ip->i_no_addr + 1; in gfs2_create_inode()
718 gfs2_init_xattr(ip); in gfs2_create_inode()
720 init_dinode(dip, ip, symname); in gfs2_create_inode()
723 error = gfs2_glock_get(sdp, ip->i_no_addr, &gfs2_iopen_glops, CREATE, &io_gl); in gfs2_create_inode()
727 error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh); in gfs2_create_inode()
731 ip->i_iopen_gh.gh_gl->gl_object = ip; in gfs2_create_inode()
749 error = security_inode_init_security(&ip->i_inode, &dip->i_inode, name, in gfs2_create_inode()
754 error = link_dinode(dip, name, ip, &da); in gfs2_create_inode()
770 if (ip->i_gl) in gfs2_create_inode()
771 gfs2_glock_put(ip->i_gl); in gfs2_create_inode()
777 if (ip->i_gl) in gfs2_create_inode()
778 gfs2_glock_put(ip->i_gl); in gfs2_create_inode()
779 gfs2_rs_delete(ip, NULL); in gfs2_create_inode()
892 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_link() local
906 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + 1); in gfs2_link()
944 if (!ip->i_inode.i_nlink) in gfs2_link()
947 if (ip->i_inode.i_nlink == (u32)-1) in gfs2_link()
973 error = gfs2_meta_inode_buffer(ip, &dibh); in gfs2_link()
977 error = gfs2_dir_add(dir, &dentry->d_name, ip, &da); in gfs2_link()
981 gfs2_trans_add_meta(ip->i_gl, dibh); in gfs2_link()
982 inc_nlink(&ip->i_inode); in gfs2_link()
983 ip->i_inode.i_ctime = CURRENT_TIME; in gfs2_link()
1021 const struct gfs2_inode *ip) in gfs2_unlink_ok() argument
1025 if (IS_IMMUTABLE(&ip->i_inode) || IS_APPEND(&ip->i_inode)) in gfs2_unlink_ok()
1030 !uid_eq(ip->i_inode.i_uid, current_fsuid()) && !capable(CAP_FOWNER)) in gfs2_unlink_ok()
1040 return gfs2_dir_check(&dip->i_inode, name, ip); in gfs2_unlink_ok()
1059 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_unlink_inode() local
1066 ip->i_entries = 0; in gfs2_unlink_inode()
1095 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_unlink() local
1107 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + 1); in gfs2_unlink()
1109 rgd = gfs2_blk2rgrpd(sdp, ip->i_no_addr, 1); in gfs2_unlink()
1130 if (ip->i_entries > 2 || inode->i_nlink > 2) in gfs2_unlink()
1138 error = gfs2_unlink_ok(dip, &dentry->d_name, ip); in gfs2_unlink()
1318 static int update_moved_ino(struct gfs2_inode *ip, struct gfs2_inode *ndip, in update_moved_ino() argument
1325 return gfs2_dir_mvino(ip, &gfs2_qdotdot, ndip, DT_DIR); in update_moved_ino()
1327 error = gfs2_meta_inode_buffer(ip, &dibh); in update_moved_ino()
1330 ip->i_inode.i_ctime = CURRENT_TIME; in update_moved_ino()
1331 gfs2_trans_add_meta(ip->i_gl, dibh); in update_moved_ino()
1332 gfs2_dinode_out(ip, dibh->b_data); in update_moved_ino()
1353 struct gfs2_inode *ip = GFS2_I(d_inode(odentry)); in gfs2_rename() local
1366 if (ip == nip) in gfs2_rename()
1384 if (S_ISDIR(ip->i_inode.i_mode)) { in gfs2_rename()
1387 error = gfs2_ok_to_move(ip, ndip); in gfs2_rename()
1399 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + num_gh); in gfs2_rename()
1421 if (ip->i_inode.i_nlink == 0) in gfs2_rename()
1426 error = gfs2_unlink_ok(odip, &odentry->d_name, ip); in gfs2_rename()
1478 if (S_ISDIR(ip->i_inode.i_mode) && in gfs2_rename()
1526 error = update_moved_ino(ip, ndip, dir_rename); in gfs2_rename()
1534 error = gfs2_dir_add(ndir, &ndentry->d_name, ip, &da); in gfs2_rename()
1726 struct gfs2_inode *ip = GFS2_I(d_inode(dentry)); in gfs2_follow_link() local
1733 gfs2_holder_init(ip->i_gl, LM_ST_SHARED, 0, &i_gh); in gfs2_follow_link()
1740 size = (unsigned int)i_size_read(&ip->i_inode); in gfs2_follow_link()
1742 gfs2_consist_inode(ip); in gfs2_follow_link()
1747 error = gfs2_meta_inode_buffer(ip, &dibh); in gfs2_follow_link()
1781 struct gfs2_inode *ip; in gfs2_permission() local
1787 ip = GFS2_I(inode); in gfs2_permission()
1788 if (gfs2_glock_is_locked_by_me(ip->i_gl) == NULL) { in gfs2_permission()
1791 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &i_gh); in gfs2_permission()
1840 struct gfs2_inode *ip = GFS2_I(inode); in setattr_chown() local
1861 error = gfs2_rs_alloc(ip); in setattr_chown()
1869 error = gfs2_quota_lock(ip, nuid, ngid); in setattr_chown()
1873 ap.target = gfs2_get_inode_blocks(&ip->i_inode); in setattr_chown()
1877 error = gfs2_quota_check(ip, nuid, ngid, &ap); in setattr_chown()
1892 gfs2_quota_change(ip, -(s64)ap.target, ouid, ogid); in setattr_chown()
1893 gfs2_quota_change(ip, ap.target, nuid, ngid); in setattr_chown()
1899 gfs2_quota_unlock(ip); in setattr_chown()
1919 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_setattr() local
1923 error = gfs2_rs_alloc(ip); in gfs2_setattr()
1927 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &i_gh); in gfs2_setattr()
1975 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_getattr() local
1980 if (gfs2_glock_is_locked_by_me(ip->i_gl) == NULL) { in gfs2_getattr()
1981 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); in gfs2_getattr()
1998 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_setxattr() local
2002 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); in gfs2_setxattr()
2005 ret = gfs2_rs_alloc(ip); in gfs2_setxattr()
2018 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_getxattr() local
2023 if (gfs2_glock_is_locked_by_me(ip->i_gl)) in gfs2_getxattr()
2026 gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); in gfs2_getxattr()
2039 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_removexattr() local
2043 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); in gfs2_removexattr()
2046 ret = gfs2_rs_alloc(ip); in gfs2_removexattr()
2058 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_fiemap() local
2068 ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh); in gfs2_fiemap()
2072 if (gfs2_is_stuffed(ip)) { in gfs2_fiemap()
2073 u64 phys = ip->i_no_addr << inode->i_blkbits; in gfs2_fiemap()