• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/gfs2/

Lines Matching defs:dip

534 struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
539 inode = gfs2_lookupi(dip, &qstr, 1);
571 struct gfs2_inode *dip = GFS2_I(dir);
587 if (gfs2_glock_is_locked_by_me(dip->i_gl) == NULL) {
588 error = gfs2_glock_nq_init(dip->i_gl, LM_ST_SHARED, 0, &d_gh);
613 * @dip: Directory in which dinode is to be created
620 static int create_ok(struct gfs2_inode *dip, const struct qstr *name,
625 error = gfs2_permission(&dip->i_inode, MAY_WRITE | MAY_EXEC);
630 if (!dip->i_inode.i_nlink)
633 error = gfs2_dir_check(&dip->i_inode, name, NULL);
644 if (dip->i_entries == (u32)-1)
646 if (S_ISDIR(mode) && dip->i_inode.i_nlink == (u32)-1)
652 static void munge_mode_uid_gid(struct gfs2_inode *dip, unsigned int *mode,
655 if (GFS2_SB(&dip->i_inode)->sd_args.ar_suiddir &&
656 (dip->i_inode.i_mode & S_ISUID) && dip->i_inode.i_uid) {
659 else if (dip->i_inode.i_uid != current_fsuid())
661 *uid = dip->i_inode.i_uid;
665 if (dip->i_inode.i_mode & S_ISGID) {
668 *gid = dip->i_inode.i_gid;
673 static int alloc_dinode(struct gfs2_inode *dip, u64 *no_addr, u64 *generation)
675 struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode);
678 if (gfs2_alloc_get(dip) == NULL)
681 dip->i_alloc->al_requested = RES_DINODE;
682 error = gfs2_inplace_reserve(dip);
690 error = gfs2_alloc_di(dip, no_addr, generation);
695 gfs2_inplace_release(dip);
697 gfs2_alloc_put(dip);
703 * @dip: the directory this inode is being created in
712 static void init_dinode(struct gfs2_inode *dip, struct gfs2_glock *gl,
717 struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode);
744 if ((dip->i_diskflags & GFS2_DIF_INHERIT_JDATA) ||
748 di->di_flags |= cpu_to_be32(dip->i_diskflags &
771 static int make_dinode(struct gfs2_inode *dip, struct gfs2_glock *gl,
775 struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode);
779 munge_mode_uid_gid(dip, &mode, &uid, &gid);
780 if (!gfs2_alloc_get(dip))
783 error = gfs2_quota_lock(dip, uid, gid);
787 error = gfs2_quota_check(dip, uid, gid);
795 init_dinode(dip, gl, inum, mode, uid, gid, generation, dev, bhp);
796 gfs2_quota_change(dip, +1, uid, gid);
800 gfs2_quota_unlock(dip);
802 gfs2_alloc_put(dip);
806 static int link_dinode(struct gfs2_inode *dip, const struct qstr *name,
809 struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode);
815 al = gfs2_alloc_get(dip);
819 error = gfs2_quota_lock(dip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
823 error = alloc_required = gfs2_diradd_alloc_required(&dip->i_inode, name);
827 error = gfs2_quota_check(dip, dip->i_inode.i_uid, dip->i_inode.i_gid);
833 error = gfs2_inplace_reserve(dip);
849 error = gfs2_dir_add(&dip->i_inode, name, ip, IF2DT(ip->i_inode.i_mode));
866 if (dip->i_alloc->al_rgd)
867 gfs2_inplace_release(dip);
870 gfs2_quota_unlock(dip);
873 gfs2_alloc_put(dip);
877 static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip)
884 err = security_inode_init_security(&ip->i_inode, &dip->i_inode,
921 struct gfs2_inode *dip = ghs->gh_gl->gl_object;
922 struct inode *dir = &dip->i_inode;
923 struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode);
937 error = create_ok(dip, name, mode);
941 error = alloc_dinode(dip, &inum.no_addr, &generation);
951 error = make_dinode(dip, ghs[1].gh_gl, mode, &inum, &generation, dev, &bh);
964 error = gfs2_acl_create(dip, inode);
968 error = gfs2_security_init(dip, GFS2_I(inode));
972 error = link_dinode(dip, name, GFS2_I(inode));