Lines Matching refs:ip

119 	struct gfs2_inode *ip;  in gfs2_inode_lookup()  local
128 ip = GFS2_I(inode); in gfs2_inode_lookup()
136 &ip->i_gl); in gfs2_inode_lookup()
156 &ip->i_iopen_gh); in gfs2_inode_lookup()
167 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, in gfs2_inode_lookup()
174 gfs2_inode_already_deleted(ip->i_gl, no_formal_ino)) in gfs2_inode_lookup()
185 set_bit(GLF_INSTANTIATE_NEEDED, &ip->i_gl->gl_flags); in gfs2_inode_lookup()
191 glock_set_object(ip->i_gl, ip); in gfs2_inode_lookup()
197 glock_clear_object(ip->i_gl, ip); in gfs2_inode_lookup()
201 ip->i_no_formal_ino = no_formal_ino; in gfs2_inode_lookup()
207 glock_set_object(ip->i_iopen_gh.gh_gl, ip); in gfs2_inode_lookup()
213 if (no_formal_ino && ip->i_no_formal_ino && in gfs2_inode_lookup()
214 no_formal_ino != ip->i_no_formal_ino) { in gfs2_inode_lookup()
224 if (gfs2_holder_initialized(&ip->i_iopen_gh)) in gfs2_inode_lookup()
225 gfs2_glock_dq_uninit(&ip->i_iopen_gh); in gfs2_inode_lookup()
228 if (ip->i_gl) { in gfs2_inode_lookup()
229 gfs2_glock_put(ip->i_gl); in gfs2_inode_lookup()
230 ip->i_gl = NULL; in gfs2_inode_lookup()
403 static int alloc_dinode(struct gfs2_inode *ip, u32 flags, unsigned *dblocks) in alloc_dinode() argument
405 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in alloc_dinode()
409 error = gfs2_quota_lock_check(ip, &ap); in alloc_dinode()
413 error = gfs2_inplace_reserve(ip, &ap); in alloc_dinode()
421 error = gfs2_alloc_blocks(ip, &ip->i_no_addr, dblocks, 1); in alloc_dinode()
425 ip->i_no_formal_ino = ip->i_generation; in alloc_dinode()
426 ip->i_inode.i_ino = ip->i_no_addr; in alloc_dinode()
427 ip->i_goal = ip->i_no_addr; in alloc_dinode()
429 ip->i_eattr = ip->i_no_addr + 1; in alloc_dinode()
434 gfs2_inplace_release(ip); in alloc_dinode()
436 gfs2_quota_unlock(ip); in alloc_dinode()
466 static void gfs2_init_xattr(struct gfs2_inode *ip) in gfs2_init_xattr() argument
468 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_init_xattr()
472 bh = gfs2_meta_new(ip->i_gl, ip->i_eattr); in gfs2_init_xattr()
473 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_init_xattr()
493 static void init_dinode(struct gfs2_inode *dip, struct gfs2_inode *ip, in init_dinode() argument
499 dibh = gfs2_meta_new(ip->i_gl, ip->i_no_addr); in init_dinode()
500 gfs2_trans_add_meta(ip->i_gl, dibh); in init_dinode()
502 gfs2_dinode_out(ip, di); in init_dinode()
504 di->di_major = cpu_to_be32(imajor(&ip->i_inode)); in init_dinode()
505 di->di_minor = cpu_to_be32(iminor(&ip->i_inode)); in init_dinode()
513 switch(ip->i_inode.i_mode & S_IFMT) { in init_dinode()
518 memcpy(dibh->b_data + sizeof(struct gfs2_dinode), symname, ip->i_inode.i_size); in init_dinode()
549 struct gfs2_inode *ip, struct gfs2_diradd *da) in link_dinode() argument
573 error = gfs2_dir_add(&dip->i_inode, name, ip, da); in link_dinode()
628 struct gfs2_inode *dip = GFS2_I(dir), *ip; in gfs2_create_inode() local
686 ip = GFS2_I(inode); in gfs2_create_inode()
692 error = gfs2_qa_get(ip); in gfs2_create_inode()
703 ip->i_goal = dip->i_goal; in gfs2_create_inode()
704 ip->i_diskflags = 0; in gfs2_create_inode()
705 ip->i_eattr = 0; in gfs2_create_inode()
706 ip->i_height = 0; in gfs2_create_inode()
707 ip->i_depth = 0; in gfs2_create_inode()
708 ip->i_entries = 0; in gfs2_create_inode()
709 ip->i_no_addr = 0; /* Temporarily zero until real addr is assigned */ in gfs2_create_inode()
715 ip->i_diskflags |= GFS2_DIF_JDATA; in gfs2_create_inode()
719 ip->i_diskflags |= (dip->i_diskflags & GFS2_DIF_INHERIT_JDATA); in gfs2_create_inode()
720 ip->i_diskflags |= GFS2_DIF_JDATA; in gfs2_create_inode()
721 ip->i_entries = 2; in gfs2_create_inode()
727 ip->i_diskflags |= GFS2_DIF_SYSTEM; in gfs2_create_inode()
738 error = alloc_dinode(ip, aflags, &blocks); in gfs2_create_inode()
744 error = gfs2_glock_get(sdp, ip->i_no_addr, &gfs2_inode_glops, CREATE, &ip->i_gl); in gfs2_create_inode()
748 error = gfs2_glock_get(sdp, ip->i_no_addr, &gfs2_iopen_glops, CREATE, &io_gl); in gfs2_create_inode()
754 error = insert_inode_locked4(inode, ip->i_no_addr, iget_test, &ip->i_no_addr); in gfs2_create_inode()
761 &ip->i_iopen_gh); in gfs2_create_inode()
765 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_SKIP, &gh); in gfs2_create_inode()
774 gfs2_init_xattr(ip); in gfs2_create_inode()
775 init_dinode(dip, ip, symname); in gfs2_create_inode()
778 glock_set_object(ip->i_gl, ip); in gfs2_create_inode()
779 glock_set_object(io_gl, ip); in gfs2_create_inode()
797 error = security_inode_init_security(&ip->i_inode, &dip->i_inode, name, in gfs2_create_inode()
802 error = link_dinode(dip, name, ip, &da); in gfs2_create_inode()
815 gfs2_qa_put(ip); in gfs2_create_inode()
823 glock_clear_object(ip->i_gl, ip); in gfs2_create_inode()
824 glock_clear_object(io_gl, ip); in gfs2_create_inode()
826 gfs2_glock_dq_uninit(&ip->i_iopen_gh); in gfs2_create_inode()
830 if (ip->i_gl) { in gfs2_create_inode()
831 gfs2_glock_put(ip->i_gl); in gfs2_create_inode()
832 ip->i_gl = NULL; in gfs2_create_inode()
834 gfs2_rs_deltree(&ip->i_res); in gfs2_create_inode()
835 gfs2_qa_put(ip); in gfs2_create_inode()
843 set_bit(GIF_ALLOC_FAILED, &ip->i_flags); in gfs2_create_inode()
845 if (ip->i_no_addr) in gfs2_create_inode()
950 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_link() local
964 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); in gfs2_link()
1003 if (ip->i_inode.i_nlink == (u32)-1) in gfs2_link()
1029 error = gfs2_meta_inode_buffer(ip, &dibh); in gfs2_link()
1033 error = gfs2_dir_add(dir, &dentry->d_name, ip, &da); in gfs2_link()
1037 gfs2_trans_add_meta(ip->i_gl, dibh); in gfs2_link()
1038 inc_nlink(&ip->i_inode); in gfs2_link()
1039 inode_set_ctime_current(&ip->i_inode); in gfs2_link()
1078 const struct gfs2_inode *ip) in gfs2_unlink_ok() argument
1082 if (IS_IMMUTABLE(&ip->i_inode) || IS_APPEND(&ip->i_inode)) in gfs2_unlink_ok()
1087 !uid_eq(ip->i_inode.i_uid, current_fsuid()) && !capable(CAP_FOWNER)) in gfs2_unlink_ok()
1098 return gfs2_dir_check(&dip->i_inode, name, ip); in gfs2_unlink_ok()
1116 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_unlink_inode() local
1123 ip->i_entries = 0; in gfs2_unlink_inode()
1152 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_unlink() local
1164 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); in gfs2_unlink()
1166 rgd = gfs2_blk2rgrpd(sdp, ip->i_no_addr, 1); in gfs2_unlink()
1187 if (ip->i_entries > 2 || inode->i_nlink > 2) in gfs2_unlink()
1195 error = gfs2_unlink_ok(dip, &dentry->d_name, ip); in gfs2_unlink()
1375 static int update_moved_ino(struct gfs2_inode *ip, struct gfs2_inode *ndip, in update_moved_ino() argument
1379 return gfs2_dir_mvino(ip, &gfs2_qdotdot, ndip, DT_DIR); in update_moved_ino()
1381 inode_set_ctime_current(&ip->i_inode); in update_moved_ino()
1382 mark_inode_dirty_sync(&ip->i_inode); in update_moved_ino()
1402 struct gfs2_inode *ip = GFS2_I(d_inode(odentry)); in gfs2_rename() local
1417 if (ip == nip) in gfs2_rename()
1435 if (S_ISDIR(ip->i_inode.i_mode)) { in gfs2_rename()
1438 error = gfs2_ok_to_move(ip, ndip); in gfs2_rename()
1451 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_ASYNC, ghs + num_gh); in gfs2_rename()
1486 if (ip->i_inode.i_nlink == 0) in gfs2_rename()
1491 error = gfs2_unlink_ok(odip, &odentry->d_name, ip); in gfs2_rename()
1545 if (S_ISDIR(ip->i_inode.i_mode) && in gfs2_rename()
1594 error = update_moved_ino(ip, ndip, dir_rename); in gfs2_rename()
1602 error = gfs2_dir_add(ndir, &ndentry->d_name, ip, &da); in gfs2_rename()
1811 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_get_link() local
1821 gfs2_holder_init(ip->i_gl, LM_ST_SHARED, 0, &i_gh); in gfs2_get_link()
1828 size = (unsigned int)i_size_read(&ip->i_inode); in gfs2_get_link()
1830 gfs2_consist_inode(ip); in gfs2_get_link()
1835 error = gfs2_meta_inode_buffer(ip, &dibh); in gfs2_get_link()
1871 struct gfs2_inode *ip; in gfs2_permission() local
1877 ip = GFS2_I(inode); in gfs2_permission()
1878 gl = rcu_dereference_check(ip->i_gl, !may_not_block); in gfs2_permission()
1927 struct gfs2_inode *ip = GFS2_I(inode); in setattr_chown() local
1943 error = gfs2_qa_get(ip); in setattr_chown()
1951 error = gfs2_quota_lock(ip, nuid, ngid); in setattr_chown()
1955 ap.target = gfs2_get_inode_blocks(&ip->i_inode); in setattr_chown()
1959 error = gfs2_quota_check(ip, nuid, ngid, &ap); in setattr_chown()
1974 gfs2_quota_change(ip, -(s64)ap.target, ouid, ogid); in setattr_chown()
1975 gfs2_quota_change(ip, ap.target, nuid, ngid); in setattr_chown()
1981 gfs2_quota_unlock(ip); in setattr_chown()
1983 gfs2_qa_put(ip); in setattr_chown()
2003 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_setattr() local
2007 error = gfs2_qa_get(ip); in gfs2_setattr()
2011 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &i_gh); in gfs2_setattr()
2039 gfs2_qa_put(ip); in gfs2_setattr()
2065 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_getattr() local
2071 if (gfs2_glock_is_locked_by_me(ip->i_gl) == NULL) { in gfs2_getattr()
2072 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); in gfs2_getattr()
2077 gfsflags = ip->i_diskflags; in gfs2_getattr()
2100 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_fiemap() local
2106 ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh); in gfs2_fiemap()
2122 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_seek_data() local
2127 ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh); in gfs2_seek_data()
2141 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_seek_hole() local
2146 ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh); in gfs2_seek_hole()
2159 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_update_time() local
2160 struct gfs2_glock *gl = ip->i_gl; in gfs2_update_time()